{"schemaVersion":2,"builtAt":"2026-08-20T05:54:11.139Z","embeddingModel":"openai/text-embedding-3-small","neighborsPerPage":5,"relatedPolicy":"related-v2.0","relatedPerPage":12,"sites":{"ai-sdk":{"baseUrl":"https://ai-sdk.dev","pages":514},"chat-sdk":{"baseUrl":"https://chat-sdk.dev","pages":45},"eve":{"baseUrl":"https://eve.dev","pages":81},"flags-sdk":{"baseUrl":"https://flags-sdk.dev","pages":52},"nextjs":{"baseUrl":"https://nextjs.org","pages":447},"streamdown":{"baseUrl":"https://streamdown.ai","pages":25},"swr":{"baseUrl":"https://swr.vercel.app","pages":30},"turborepo":{"baseUrl":"https://turborepo.dev","pages":101},"v0":{"baseUrl":"https://v0.app","pages":181},"vercel-docs":{"baseUrl":"https://vercel.com","pages":1241},"vercel-kb":{"baseUrl":"https://vercel.com","pages":556},"vercel-shop":{"baseUrl":"https://docs.vercel.shop","pages":37},"workflow":{"baseUrl":"https://workflow-sdk.dev","pages":142}},"pages":[{"site":"ai-sdk","path":"/cookbook/api-servers","title":"API Servers","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[],"related":[]},{"site":"ai-sdk","path":"/cookbook/api-servers/express","title":"Express","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-not-working-when-proxied"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/build-with-a-express-starter-template"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/api-servers/node-http-server","distance":0.1043},{"site":"ai-sdk","path":"/cookbook/api-servers/fastify","distance":0.1182},{"site":"ai-sdk","path":"/cookbook/api-servers/hono","distance":0.1525},{"site":"ai-sdk","path":"/cookbook/api-servers/nest","distance":0.166},{"site":"ai-sdk","path":"/docs/ai-sdk-core/testing","distance":0.2595}],"related":[{"site":"vercel-kb","path":"/kb/guide/build-with-a-express-starter-template","via":"inbound"},{"site":"ai-sdk","path":"/cookbook/api-servers/node-http-server","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/streaming-from-llm","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/api-servers/fastify","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/api-servers/hono","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/api-servers/nest","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/text","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-streaming","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/testing","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/api-servers/fastify","title":"Fastify","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-not-working-when-proxied"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/api-servers/express","distance":0.1182},{"site":"ai-sdk","path":"/cookbook/api-servers/node-http-server","distance":0.1613},{"site":"ai-sdk","path":"/cookbook/api-servers/hono","distance":0.1732},{"site":"ai-sdk","path":"/cookbook/api-servers/nest","distance":0.2185},{"site":"ai-sdk","path":"/cookbook/next/custom-stream-format","distance":0.2791}],"related":[{"site":"ai-sdk","path":"/cookbook/api-servers/express","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/streaming-from-llm","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/api-servers/node-http-server","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/api-servers/hono","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-streaming","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/api-servers/nest","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/custom-stream-format","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/api-servers/hono","title":"Hono","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-not-working-when-proxied"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/api-servers/express","distance":0.1525},{"site":"ai-sdk","path":"/cookbook/api-servers/node-http-server","distance":0.1603},{"site":"ai-sdk","path":"/cookbook/api-servers/fastify","distance":0.1732},{"site":"ai-sdk","path":"/cookbook/api-servers/nest","distance":0.2484},{"site":"vercel-kb","path":"/kb/guide/streaming-from-llm","distance":0.2963}],"related":[{"site":"vercel-kb","path":"/kb/guide/streaming-from-llm","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/api-servers/express","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/api-servers/node-http-server","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/api-servers/fastify","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/hono","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-hono-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-streaming","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/api-servers/nest","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/testing","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/api-servers/nest","title":"Nest.js","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-not-working-when-proxied"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/api-servers/express","distance":0.166},{"site":"ai-sdk","path":"/cookbook/api-servers/node-http-server","distance":0.1744},{"site":"ai-sdk","path":"/cookbook/api-servers/fastify","distance":0.2185},{"site":"ai-sdk","path":"/cookbook/api-servers/hono","distance":0.2484},{"site":"vercel-kb","path":"/kb/guide/streaming-from-llm","distance":0.2969}],"related":[{"site":"vercel-kb","path":"/kb/guide/streaming-from-llm","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/api-servers/express","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/api-servers/node-http-server","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/api-servers/fastify","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/api-servers/hono","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/custom-stream-format","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/api-servers/node-http-server","title":"Node.js HTTP Server","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-not-working-when-proxied"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/api-servers/express","distance":0.1043},{"site":"ai-sdk","path":"/cookbook/api-servers/hono","distance":0.1603},{"site":"ai-sdk","path":"/cookbook/api-servers/fastify","distance":0.1613},{"site":"ai-sdk","path":"/cookbook/api-servers/nest","distance":0.1744},{"site":"vercel-kb","path":"/kb/guide/streaming-from-llm","distance":0.2838}],"related":[{"site":"ai-sdk","path":"/cookbook/api-servers/express","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/streaming-from-llm","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/api-servers/hono","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/api-servers/fastify","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/api-servers/nest","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-streaming","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/custom-stream-format","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/guides","title":"Guides","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/claude-4"},{"site":"ai-sdk","path":"/cookbook/guides/deepseek-v3-2"},{"site":"ai-sdk","path":"/cookbook/guides/gemini"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5"},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1"},{"site":"ai-sdk","path":"/cookbook/guides/o1"},{"site":"ai-sdk","path":"/cookbook/guides/o3"},{"site":"ai-sdk","path":"/cookbook/guides/openai-responses"},{"site":"ai-sdk","path":"/cookbook/guides/r1"},{"site":"ai-sdk","path":"/cookbook/guides/sonnet-3-7"},{"site":"vercel-docs","path":"/docs/ai-sdk"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core","distance":0.255},{"site":"ai-sdk","path":"/docs/agents","distance":0.2657},{"site":"ai-sdk","path":"/docs/ai-sdk-ui","distance":0.2757},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.2804},{"site":"ai-sdk","path":"/docs/getting-started/coding-agents","distance":0.2927}],"related":[{"site":"vercel-docs","path":"/docs/ai-sdk","via":"inbound"},{"site":"nextjs","path":"/docs/app/guides/ai-agents","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/coding-agents","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/guides/agent-context-compaction","title":"Compact Agent Context","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/agents/loop-control"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/prune-messages"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/agents/loop-control","distance":0.2623},{"site":"ai-sdk","path":"/cookbook/next/track-agent-token-usage","distance":0.2961},{"site":"ai-sdk","path":"/cookbook/node/manual-agent-loop","distance":0.308},{"site":"ai-sdk","path":"/docs/agents/building-agents","distance":0.3219},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","distance":0.3389}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","via":"neighbor"},{"site":"workflow","path":"/docs/ai/message-queueing","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-runtime-and-tool-context","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/track-agent-token-usage","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/manual-agent-loop","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/building-agents","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/configuring-call-options","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/guides/agent-skills","title":"Add Skills to Your Agent","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/getting-started/coding-agents"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/skills","distance":0.1515},{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","distance":0.1733},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-skills","distance":0.2148},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-skill-uploads","distance":0.2183},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/skills","distance":0.2604}],"related":[{"site":"eve","path":"/docs/skills","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-skills","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-skill-uploads","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/tanstack-intent-vs-skills","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started/extending-with-agents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/skills","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/skills","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/coding-agents","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/building-agents","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/guides/claude-4","title":"Get started with Claude 4","summary":null,"outbound":[{"site":"ai-sdk","path":"/cookbook/guides"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/overview"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-completion"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-object"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/guides/sonnet-3-7","distance":0.0662},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.2167},{"site":"ai-sdk","path":"/cookbook/guides/o1","distance":0.2234},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","distance":0.2348},{"site":"ai-sdk","path":"/cookbook/guides/o3","distance":0.2481}],"related":[{"site":"ai-sdk","path":"/cookbook/guides/sonnet-3-7","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/claude-code","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agents-chat-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/o1","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/o3","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/guides/computer-use","title":"Get started with Computer Use","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/foundations/prompts"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/guides/claude-4","distance":0.3055},{"site":"ai-sdk","path":"/cookbook/guides/sonnet-3-7","distance":0.3145},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","distance":0.3451},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/amazon-bedrock","distance":0.3623},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.3662}],"related":[{"site":"vercel-kb","path":"/kb/guide/python-ai-sdk-vercel-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agents-chat-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/claude-code","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/claude-4","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/sonnet-3-7","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/amazon-bedrock","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/guides/custom-memory-tool","title":"Build a Custom Memory Tool","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/agents/memory"}],"requires":[],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","distance":0.3624},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai","distance":0.3636},{"site":"ai-sdk","path":"/docs/agents/memory","distance":0.366},{"site":"vercel-kb","path":"/kb/guide/building-community-moderation-agents-using-ai-sdk","distance":0.3731},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot","distance":0.3825}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-community-moderation-agents-using-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot","via":"neighbor"},{"site":"eve","path":"/docs/tools","via":"neighbor"},{"site":"eve","path":"/docs/concepts/built-in-tools","via":"neighbor"},{"site":"eve","path":"/docs/patterns/multi-tenant-memory","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/get-message","via":"neighbor"},{"site":"eve","path":"/docs/evals/assertions","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/memory","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/amazon-bedrock","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/guides/deepseek-v3-2","title":"Get started with DeepSeek V3.2","summary":null,"outbound":[{"site":"ai-sdk","path":"/cookbook/guides"},{"site":"ai-sdk","path":"/docs/agents/loop-control"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/overview"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-completion"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-object"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/guides/r1","distance":0.0988},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.1683},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","distance":0.1797},{"site":"ai-sdk","path":"/cookbook/guides/o3","distance":0.1932},{"site":"ai-sdk","path":"/cookbook/guides/gemini","distance":0.1936}],"related":[{"site":"ai-sdk","path":"/cookbook/guides/r1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/o3","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gemini","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/guides/gemini","title":"Get started with Gemini 3","summary":null,"outbound":[{"site":"ai-sdk","path":"/cookbook/guides"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/overview"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-completion"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-object"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.1614},{"site":"ai-sdk","path":"/cookbook/guides/deepseek-v3-2","distance":0.1936},{"site":"ai-sdk","path":"/cookbook/guides/o3","distance":0.2149},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","distance":0.2186},{"site":"ai-sdk","path":"/cookbook/guides/o1","distance":0.2444}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/google","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/deepseek-v3-2","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/o3","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/o1","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/guides/google-gemini-image-generation","title":"Google Gemini Image Generation","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/image","distance":0.278},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk","distance":0.2881},{"site":"ai-sdk","path":"/cookbook/guides/gemini","distance":0.3129},{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-image-prompt","distance":0.3467},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/image-generation","distance":0.354}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/image","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/image-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/openai","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gemini","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-image-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/gemini-cli","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools-with-image-prompt","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","title":"Get started with GPT-5","summary":null,"outbound":[{"site":"ai-sdk","path":"/cookbook/guides"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/overview"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-completion"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-object"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/guides/o1","distance":0.1256},{"site":"ai-sdk","path":"/cookbook/guides/openai-responses","distance":0.1371},{"site":"ai-sdk","path":"/cookbook/guides/o3","distance":0.1391},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","distance":0.1521},{"site":"ai-sdk","path":"/cookbook/guides/gemini","distance":0.1614}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/openai-function-calling","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/nextjs-langchain-vercel-ai","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/o1","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/openai-responses","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/o3","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gemini","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","title":"Get started with Llama 3.1","summary":null,"outbound":[{"site":"ai-sdk","path":"/cookbook/guides"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/overview"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/stream-ui"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-completion"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-object"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/amazon-bedrock"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/baseten"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fireworks"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.1521},{"site":"ai-sdk","path":"/cookbook/guides/o1","distance":0.1743},{"site":"ai-sdk","path":"/cookbook/guides/openai-responses","distance":0.1773},{"site":"ai-sdk","path":"/cookbook/guides/deepseek-v3-2","distance":0.1797},{"site":"ai-sdk","path":"/cookbook/guides/o3","distance":0.1928}],"related":[{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-ai-sdk-vs-tanstack-ai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/nextjs-langchain-vercel-ai","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/o1","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/openai-responses","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/deepseek-v3-2","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/o3","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/guides/multi-modal-chatbot","title":"Multi-Modal Agent","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/settings"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-pages-router"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers"},{"site":"ai-sdk","path":"/providers/community-providers/custom-providers"}],"inbound":[{"site":"ai-sdk","path":"/docs/getting-started/expo"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-router"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-pages-router"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs"},{"site":"ai-sdk","path":"/docs/getting-started/nuxt"},{"site":"ai-sdk","path":"/docs/getting-started/svelte"},{"site":"ai-sdk","path":"/docs/getting-started/tanstack-start"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/getting-started/nodejs","distance":0.1934},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.2114},{"site":"vercel-kb","path":"/kb/guide/build-ai-agent-weather-api","distance":0.2571},{"site":"ai-sdk","path":"/cookbook/guides/openai-responses","distance":0.2585},{"site":"ai-sdk","path":"/cookbook/guides/deepseek-v3-2","distance":0.2629}],"related":[{"site":"vercel-kb","path":"/kb/guide/build-ai-agent-weather-api","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/nextjs-langchain-vercel-ai","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/openai-responses","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/deepseek-v3-2","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/guides/natural-language-postgres","title":"Natural Language Postgres","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-react-components","distance":0.3405},{"site":"ai-sdk","path":"/docs/getting-started/expo","distance":0.3476},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/multistep-interfaces","distance":0.3575},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.359},{"site":"ai-sdk","path":"/cookbook/guides/rag-chatbot","distance":0.3603}],"related":[{"site":"eve","path":"/docs/tutorial/query-sample-data","via":"neighbor"},{"site":"v0","path":"/docs/text-prompting","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-react-components","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/expo","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/multistep-interfaces","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/rag-chatbot","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/guides/o1","title":"Get started with OpenAI o1","summary":null,"outbound":[{"site":"ai-sdk","path":"/cookbook/guides"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/overview"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview"},{"site":"ai-sdk","path":"/docs/foundations/tools"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-completion"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-object"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/guides/o3","distance":0.0781},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.1256},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","distance":0.1743},{"site":"ai-sdk","path":"/cookbook/guides/r1","distance":0.1832},{"site":"ai-sdk","path":"/cookbook/guides/openai-responses","distance":0.1881}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/o3","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/r1","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/openai-responses","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/guides/o3","title":"Get started with OpenAI o3-mini","summary":null,"outbound":[{"site":"ai-sdk","path":"/cookbook/guides"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/overview"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-completion"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-object"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/guides/o1","distance":0.0781},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.1391},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","distance":0.1928},{"site":"ai-sdk","path":"/cookbook/guides/deepseek-v3-2","distance":0.1932},{"site":"ai-sdk","path":"/cookbook/guides/openai-responses","distance":0.2101}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/o1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/deepseek-v3-2","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/openai-responses","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/guides/openai-responses","title":"OpenAI Responses API","summary":null,"outbound":[{"site":"ai-sdk","path":"/cookbook/guides"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/overview"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai"}],"inbound":[{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-5-0"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.1371},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","distance":0.1773},{"site":"ai-sdk","path":"/cookbook/guides/o1","distance":0.1881},{"site":"ai-sdk","path":"/cookbook/guides/o3","distance":0.2101},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","distance":0.2113}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/text","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/o1","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/o3","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/guides/r1","title":"Get started with DeepSeek R1","summary":null,"outbound":[{"site":"ai-sdk","path":"/cookbook/guides"},{"site":"ai-sdk","path":"/cookbook/node/generate-object-reasoning"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/overview"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-completion"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-object"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/azure"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepseek"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fireworks"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/groq"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai"},{"site":"ai-sdk","path":"/providers/community-providers/friendliai"},{"site":"ai-sdk","path":"/providers/community-providers/langdb"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/guides/deepseek-v3-2","distance":0.0988},{"site":"ai-sdk","path":"/cookbook/guides/o1","distance":0.1832},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.2023},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","distance":0.2066},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepseek","distance":0.211}],"related":[{"site":"ai-sdk","path":"/cookbook/guides/deepseek-v3-2","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/o1","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/o3","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/guides/rag-chatbot","title":"RAG Agent","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"},{"site":"ai-sdk","path":"/docs/foundations/tools"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/embed-many"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway"},{"site":"ai-sdk","path":"/providers/community-providers/custom-providers"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/node/knowledge-base-agent"},{"site":"ai-sdk","path":"/cookbook/node/retrieval-augmented-generation"},{"site":"ai-sdk","path":"/docs/getting-started/expo"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-router"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-pages-router"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs"},{"site":"ai-sdk","path":"/docs/getting-started/nuxt"},{"site":"ai-sdk","path":"/docs/getting-started/svelte"},{"site":"ai-sdk","path":"/docs/getting-started/tanstack-start"},{"site":"vercel-kb","path":"/kb/guide/what-is-rag"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-router","distance":0.2665},{"site":"ai-sdk","path":"/docs/getting-started/expo","distance":0.2695},{"site":"vercel-kb","path":"/kb/guide/nextjs-prisma-postgres","distance":0.2705},{"site":"ai-sdk","path":"/docs/getting-started/nuxt","distance":0.2881},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-pages-router","distance":0.2895}],"related":[{"site":"vercel-kb","path":"/kb/guide/what-is-rag","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/nextjs-prisma-postgres","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/run-claude-managed-agent-tools-with-vercel-sandbox","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/expo","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nuxt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/multi-modal-chatbot","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/call-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/guides/slackbot","title":"Slackbot Agent Guide","summary":null,"outbound":[{"site":"eve","path":"/docs/channels/slack"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","distance":0.1898},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect","distance":0.1899},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","distance":0.2139},{"site":"vercel-kb","path":"/kb/guide/slack-bot-vercel-blob","distance":0.2212},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-slack-bot-with-next-js-and-redis","distance":0.2352}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/slack-bot-vercel-blob","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-slack-bot-with-next-js-and-redis","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/liveblocks-chat-sdk-ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/multi-modal-chatbot","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/guides/sonnet-3-7","title":"Get started with Claude 3.7 Sonnet","summary":null,"outbound":[{"site":"ai-sdk","path":"/cookbook/guides"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/overview"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-completion"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-object"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/guides/claude-4","distance":0.0662},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.2098},{"site":"ai-sdk","path":"/cookbook/guides/o1","distance":0.2113},{"site":"ai-sdk","path":"/cookbook/guides/o3","distance":0.2291},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","distance":0.2299}],"related":[{"site":"ai-sdk","path":"/cookbook/guides/claude-4","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/claude-code","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/nextjs-langchain-vercel-ai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/anthropic","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/o1","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/o3","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/next","title":"Next.js","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[],"related":[]},{"site":"ai-sdk","path":"/cookbook/next/caching-middleware","title":"Caching Middleware","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/simulate-readable-stream"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"}],"inbound":[{"site":"ai-sdk","path":"/docs/advanced/caching"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/advanced/caching","distance":0.1972},{"site":"ai-sdk","path":"/cookbook/node/local-caching-middleware","distance":0.2559},{"site":"ai-sdk","path":"/cookbook/next/call-tools","distance":0.2639},{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps","distance":0.267},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","distance":0.2673}],"related":[{"site":"ai-sdk","path":"/docs/advanced/caching","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/local-caching-middleware","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/call-tools","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/next/call-tools","title":"Call Tools","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps","distance":0.0784},{"site":"ai-sdk","path":"/cookbook/next/render-visual-interface-in-chat","distance":0.1344},{"site":"ai-sdk","path":"/cookbook/rsc/call-tools","distance":0.1738},{"site":"ai-sdk","path":"/cookbook/rsc/call-tools-in-parallel","distance":0.188},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","distance":0.1924}],"related":[{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/render-visual-interface-in-chat","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/call-tools","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/call-tools-in-parallel","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps","title":"Call Tools in Multiple Steps","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/next/call-tools","distance":0.0784},{"site":"ai-sdk","path":"/cookbook/next/render-visual-interface-in-chat","distance":0.1462},{"site":"ai-sdk","path":"/cookbook/rsc/call-tools-in-parallel","distance":0.1895},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/generative-user-interfaces","distance":0.2026},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-router","distance":0.2213}],"related":[{"site":"ai-sdk","path":"/cookbook/next/call-tools","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/render-visual-interface-in-chat","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/call-tools-in-parallel","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/generative-user-interfaces","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-router","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/next/chat-with-pdf","title":"Chat with PDFs","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/guides/multi-modal-chatbot","distance":0.2731},{"site":"ai-sdk","path":"/cookbook/next/generate-object-with-file-prompt","distance":0.2871},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-image-prompt","distance":0.3141},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","distance":0.3287},{"site":"ai-sdk","path":"/cookbook/next/generate-text-with-chat-prompt","distance":0.3411}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/images","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/multi-modal-chatbot","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-object-with-file-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-image-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-text-with-chat-prompt","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/next/custom-stream-format","title":"Streaming with Custom Format","summary":null,"outbound":[{"site":"ai-sdk","path":"/cookbook/node/manual-agent-loop"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/next/stream-text-multistep","distance":0.2095},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","distance":0.2431},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream-response","distance":0.262},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-react-components","distance":0.2673},{"site":"ai-sdk","path":"/cookbook/api-servers/express","distance":0.2728}],"related":[{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text-multistep","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream-response","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-react-components","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/api-servers/express","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/next/generate-image-with-chat-prompt","title":"Generate Image with Chat Prompt","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-image"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/next/generate-text-with-chat-prompt","distance":0.2193},{"site":"ai-sdk","path":"/cookbook/next/call-tools","distance":0.2241},{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps","distance":0.234},{"site":"ai-sdk","path":"/cookbook/next/render-visual-interface-in-chat","distance":0.2388},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","distance":0.2725}],"related":[{"site":"ai-sdk","path":"/cookbook/next/generate-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/call-tools","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/render-visual-interface-in-chat","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/next/generate-object","title":"Generate Object","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/next/generate-text","distance":0.1303},{"site":"ai-sdk","path":"/cookbook/rsc/generate-object","distance":0.1712},{"site":"ai-sdk","path":"/cookbook/next/stream-text","distance":0.2054},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/object-generation","distance":0.2217},{"site":"ai-sdk","path":"/cookbook/next/stream-object","distance":0.2222}],"related":[{"site":"ai-sdk","path":"/cookbook/next/generate-text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/generate-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/object-generation","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-object","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/next/generate-object-with-file-prompt","title":"Generate Object with File Prompt through Form Submission","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/next/generate-object","distance":0.2826},{"site":"ai-sdk","path":"/cookbook/next/chat-with-pdf","distance":0.2871},{"site":"ai-sdk","path":"/cookbook/next/generate-text","distance":0.3447},{"site":"ai-sdk","path":"/cookbook/next/stream-object","distance":0.375},{"site":"ai-sdk","path":"/cookbook/next/stream-text","distance":0.3756}],"related":[{"site":"nextjs","path":"/docs/pages/guides/forms","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/chat-with-pdf","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/next/generate-text","title":"Generate Text","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/next/stream-text","distance":0.1111},{"site":"ai-sdk","path":"/cookbook/rsc/generate-text","distance":0.1168},{"site":"ai-sdk","path":"/cookbook/next/generate-object","distance":0.1303},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text","distance":0.1753},{"site":"ai-sdk","path":"/cookbook/next/generate-text-with-chat-prompt","distance":0.1778}],"related":[{"site":"ai-sdk","path":"/cookbook/next/stream-text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/generate-text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-object","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-text-with-chat-prompt","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/text-generation","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/next/generate-text-with-chat-prompt","title":"Generate Text with Chat Prompt","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/rsc/generate-text-with-chat-prompt","distance":0.1017},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","distance":0.1152},{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-chat-prompt","distance":0.1434},{"site":"ai-sdk","path":"/cookbook/next/generate-text","distance":0.1778},{"site":"ai-sdk","path":"/cookbook/next/call-tools","distance":0.1962}],"related":[{"site":"ai-sdk","path":"/cookbook/rsc/generate-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/call-tools","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/next/human-in-the-loop","title":"Human-in-the-Loop with Next.js","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-tool-usage"}],"inbound":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-tool-usage","distance":0.1777},{"site":"ai-sdk","path":"/docs/agents/tool-approvals","distance":0.1951},{"site":"eve","path":"/docs/human-in-the-loop","distance":0.2635},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","distance":0.2708},{"site":"workflow","path":"/docs/ai/human-in-the-loop","distance":0.3005}],"related":[{"site":"eve","path":"/docs/human-in-the-loop","via":"neighbor"},{"site":"workflow","path":"/docs/ai/human-in-the-loop","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"neighbor"},{"site":"chat-sdk","path":"/docs/approvals","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-terminal-ui","via":"neighbor"},{"site":"eve","path":"/docs/tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/tool-approvals","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/call-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/expo","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/next/markdown-chatbot-with-memoization","title":"Markdown Chatbot with Memoization","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","distance":0.2715},{"site":"streamdown","path":"/docs/memoization","distance":0.2903},{"site":"ai-sdk","path":"/cookbook/next/use-shared-chat-context","distance":0.2977},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","distance":0.3037},{"site":"ai-sdk","path":"/cookbook/next/generate-text-with-chat-prompt","distance":0.314}],"related":[{"site":"streamdown","path":"/docs/memoization","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/markdown","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/use-shared-chat-context","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/call-tools","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/next/mcp-tools","title":"Model Context Protocol (MCP) Tools","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/node/mcp-tools","distance":0.2237},{"site":"ai-sdk","path":"/cookbook/next/stream-text","distance":0.2259},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/completion","distance":0.263},{"site":"ai-sdk","path":"/cookbook/next/call-tools","distance":0.2769},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-apps","distance":0.2785}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-mcp-apps","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/mcp-tools","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/completion","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/call-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-apps","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/next/render-visual-interface-in-chat","title":"Render Visual Interface in Chat","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/next/call-tools","distance":0.1344},{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps","distance":0.1462},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/generative-user-interfaces","distance":0.1857},{"site":"ai-sdk","path":"/cookbook/rsc/call-tools-in-parallel","distance":0.192},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-tool-usage","distance":0.1995}],"related":[{"site":"ai-sdk","path":"/cookbook/next/call-tools","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/generative-user-interfaces","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/call-tools-in-parallel","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-tool-usage","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/next/send-custom-body-from-use-chat","title":"Send Custom Body from useChat","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot","distance":0.2904},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-stale-body-data","distance":0.3127},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-custom-request-options","distance":0.3418},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","distance":0.3508},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","distance":0.3624}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-stale-body-data","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-custom-request-options","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/next/stream-object","title":"Stream Object","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-object"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/object-generation","distance":0.1131},{"site":"ai-sdk","path":"/cookbook/rsc/stream-object","distance":0.1619},{"site":"ai-sdk","path":"/cookbook/rsc/generate-object","distance":0.1886},{"site":"ai-sdk","path":"/cookbook/next/generate-object","distance":0.2222},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-object","distance":0.2416}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/object-generation","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/generate-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-object","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/next/stream-text","title":"Stream Text","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/rsc/stream-text","distance":0.1042},{"site":"ai-sdk","path":"/cookbook/next/generate-text","distance":0.1111},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","distance":0.1566},{"site":"ai-sdk","path":"/cookbook/next/generate-object","distance":0.2054},{"site":"ai-sdk","path":"/cookbook/rsc/generate-text","distance":0.2155}],"related":[{"site":"ai-sdk","path":"/cookbook/rsc/stream-text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/generate-text","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/next/stream-text-multistep","title":"streamText Multi-Step Cookbook","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/next/custom-stream-format","distance":0.2095},{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps","distance":0.2238},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","distance":0.2273},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","distance":0.2336},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text-with-chat-prompt","distance":0.257}],"related":[{"site":"ai-sdk","path":"/cookbook/next/custom-stream-format","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text-with-chat-prompt","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","title":"Stream Text with Chat Prompt","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/next/generate-text-with-chat-prompt","distance":0.1152},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text-with-chat-prompt","distance":0.1453},{"site":"ai-sdk","path":"/cookbook/next/stream-text","distance":0.1566},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-chat-prompt","distance":0.1859},{"site":"ai-sdk","path":"/cookbook/next/call-tools","distance":0.1924}],"related":[{"site":"ai-sdk","path":"/cookbook/next/generate-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/call-tools","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-image-prompt","title":"Stream Text with Image Prompt","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-image-prompt","distance":0.2283},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","distance":0.2328},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text-with-chat-prompt","distance":0.2617},{"site":"ai-sdk","path":"/cookbook/node/stream-object-with-image-prompt","distance":0.2642},{"site":"ai-sdk","path":"/cookbook/next/stream-text-multistep","distance":0.2684}],"related":[{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-image-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-object-with-image-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text-multistep","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/next/track-agent-token-usage","title":"Track Agent Token Usage","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/agents/building-agents","distance":0.2684},{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","distance":0.2916},{"site":"ai-sdk","path":"/cookbook/guides/agent-context-compaction","distance":0.2961},{"site":"ai-sdk","path":"/docs/agents/configuring-call-options","distance":0.3104},{"site":"ai-sdk","path":"/docs/agents/overview","distance":0.3166}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-runtime-and-tool-context","via":"neighbor"},{"site":"workflow","path":"/docs/ai/message-queueing","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/building-agents","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/agent-context-compaction","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/configuring-call-options","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/loop-control","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/next/use-shared-chat-context","title":"Share useChat State Across Components","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-5-0"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","distance":0.2511},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","distance":0.2842},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot","distance":0.2856},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","distance":0.2952},{"site":"ai-sdk","path":"/cookbook/next/markdown-chatbot-with-memoization","distance":0.2977}],"related":[{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/markdown-chatbot-with-memoization","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/save-messages-to-database","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node","title":"Node","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[],"related":[]},{"site":"ai-sdk","path":"/cookbook/node/call-tools","title":"Call Tools","summary":null,"outbound":[{"site":"ai-sdk","path":"/cookbook/node/call-tools-multiple-steps"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/node/call-tools-in-parallel","distance":0.2023},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","distance":0.2106},{"site":"ai-sdk","path":"/cookbook/node/call-tools-multiple-steps","distance":0.2309},{"site":"ai-sdk","path":"/docs/ai-sdk-core/prompt-engineering","distance":0.2549},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/tool-calling","distance":0.2789}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/tool-calling","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/tool-calling","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/tool-calling","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-an-llm-tool","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/tool-calling","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools-in-parallel","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/prompt-engineering","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/tool-invocation-missing-result","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/call-tools-in-parallel","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/call-tools-in-parallel","title":"Call Tools in Parallel","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/rsc/call-tools-in-parallel","distance":0.1922},{"site":"ai-sdk","path":"/cookbook/node/call-tools","distance":0.2023},{"site":"ai-sdk","path":"/cookbook/node/call-tools-multiple-steps","distance":0.2177},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","distance":0.3062},{"site":"ai-sdk","path":"/docs/troubleshooting/tool-calling-with-structured-outputs","distance":0.3138}],"related":[{"site":"ai-sdk","path":"/cookbook/rsc/call-tools-in-parallel","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-an-llm-tool","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools-multiple-steps","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/tool-calling-with-structured-outputs","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/call-tools-multiple-steps","title":"Call Tools in Multiple Steps","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/cookbook/node/call-tools"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/node/call-tools-in-parallel","distance":0.2177},{"site":"ai-sdk","path":"/cookbook/node/call-tools","distance":0.2309},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","distance":0.2404},{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps","distance":0.2857},{"site":"ai-sdk","path":"/docs/troubleshooting/tool-calling-with-structured-outputs","distance":0.2871}],"related":[{"site":"ai-sdk","path":"/cookbook/node/call-tools-in-parallel","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/tool-calling-with-structured-outputs","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/call-tools-with-image-prompt","title":"Call Tools with Image Prompt","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-image-prompt","distance":0.211},{"site":"ai-sdk","path":"/cookbook/node/stream-object-with-image-prompt","distance":0.287},{"site":"ai-sdk","path":"/cookbook/next/generate-image-with-chat-prompt","distance":0.3024},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-image-prompt","distance":0.3183},{"site":"ai-sdk","path":"/cookbook/node/call-tools","distance":0.3293}],"related":[{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-image-prompt","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-object-with-image-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-image-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-image-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/dynamic-prompt-caching","title":"Dynamic Prompt Caching","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/automatic-caching","distance":0.2349},{"site":"ai-sdk","path":"/cookbook/node/local-caching-middleware","distance":0.336},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api","distance":0.3384},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic","distance":0.3443},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/advanced","distance":0.3518}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/automatic-caching","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/advanced","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/local-caching-middleware","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/caching","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic-aws","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/provider-options","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/embed-text","title":"Embed Text","summary":null,"outbound":[{"site":"ai-sdk","path":"/cookbook/node/retrieval-augmented-generation"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/node/embed-text-batch"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/node/embed-text-batch","distance":0.2152},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/embed","distance":0.3228},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","distance":0.337},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/embeddings","distance":0.3515},{"site":"ai-sdk","path":"/cookbook/node/retrieval-augmented-generation","distance":0.3747}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/embeddings","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/embed-text-batch","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/embeddings","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/understanding-vector-databases-for-ai-apps","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/embed","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-file-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/overview","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/embed-text-batch","title":"Embed Text in Batch","summary":null,"outbound":[{"site":"ai-sdk","path":"/cookbook/node/embed-text"},{"site":"ai-sdk","path":"/cookbook/node/retrieval-augmented-generation"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/node/embed-text","distance":0.2152},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","distance":0.3403},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/embed-many","distance":0.36},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-file-prompt","distance":0.3864},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/embeddings","distance":0.3937}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/embeddings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/embeddings","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/embed-many","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-file-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/embed","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/lmstudio","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/generate-object","title":"Generate Object","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output","distance":0.2122},{"site":"ai-sdk","path":"/cookbook/node/stream-object","distance":0.2138},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data","distance":0.2345},{"site":"ai-sdk","path":"/cookbook/next/generate-object","distance":0.3001},{"site":"ai-sdk","path":"/cookbook/next/stream-object","distance":0.3008}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-object","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/structured-outputs","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-object","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/generate-object-reasoning","title":"Generate Object with a Reasoning Model","summary":null,"outbound":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepseek"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/r1"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data","distance":0.3195},{"site":"ai-sdk","path":"/cookbook/node/generate-object","distance":0.3274},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output","distance":0.3516},{"site":"ai-sdk","path":"/cookbook/guides/o1","distance":0.3524},{"site":"ai-sdk","path":"/cookbook/guides/r1","distance":0.3546}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-generation","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-object","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/o1","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/r1","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/generate-text","title":"Generate Text","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-chat-prompt","distance":0.1995},{"site":"ai-sdk","path":"/cookbook/rsc/generate-text","distance":0.2348},{"site":"ai-sdk","path":"/cookbook/next/generate-text","distance":0.2464},{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-image-prompt","distance":0.285},{"site":"ai-sdk","path":"/cookbook/rsc/generate-text-with-chat-prompt","distance":0.3148}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-generation","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-chat-prompt","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/text-generation","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/generate-text","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/text-generation","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-image-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/generate-text-with-chat-prompt","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-chat-prompt","title":"Generate Text with Chat Prompt","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/next/generate-text-with-chat-prompt","distance":0.1434},{"site":"ai-sdk","path":"/cookbook/rsc/generate-text-with-chat-prompt","distance":0.1589},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-chat-prompt","distance":0.1744},{"site":"ai-sdk","path":"/cookbook/node/generate-text","distance":0.1995},{"site":"ai-sdk","path":"/cookbook/next/generate-text","distance":0.246}],"related":[{"site":"ai-sdk","path":"/cookbook/next/generate-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/generate-text-with-chat-prompt","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-generation","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-chat-prompt","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/text-generation","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-text","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-image-prompt","title":"Generate Text with Image Prompt","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/node/stream-object-with-image-prompt","distance":0.1846},{"site":"ai-sdk","path":"/cookbook/node/call-tools-with-image-prompt","distance":0.211},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-image-prompt","distance":0.2387},{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-chat-prompt","distance":0.2724},{"site":"ai-sdk","path":"/cookbook/node/generate-text","distance":0.285}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/image","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-object-with-image-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools-with-image-prompt","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/openai","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-image-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-text","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/intercept-fetch-requests","title":"Intercepting Fetch Requests","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/advanced/secure-url-fetching","distance":0.4192},{"site":"workflow","path":"/docs/api-reference/workflow/fetch","distance":0.4506},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/proxy","distance":0.4639},{"site":"swr","path":"/docs/data-fetching","distance":0.4664},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy","distance":0.4836}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow/fetch","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/proxy","via":"neighbor"},{"site":"swr","path":"/docs/data-fetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend","via":"neighbor"},{"site":"workflow","path":"/docs/errors/fetch-in-workflow","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/secure-url-fetching","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/knowledge-base-agent","title":"Knowledge Base Agent","summary":null,"outbound":[{"site":"ai-sdk","path":"/cookbook/guides/rag-chatbot"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/node/retrieval-augmented-generation"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/getting-started/nodejs","distance":0.3038},{"site":"ai-sdk","path":"/cookbook/node/retrieval-augmented-generation","distance":0.3295},{"site":"eve","path":"/docs/tutorial/first-agent","distance":0.3409},{"site":"ai-sdk","path":"/cookbook/guides/multi-modal-chatbot","distance":0.3468},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.3482}],"related":[{"site":"eve","path":"/docs/tutorial/first-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-ai-agent-weather-api","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-community-moderation-agents-using-ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/retrieval-augmented-generation","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/multi-modal-chatbot","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/agent-skills","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/local-caching-middleware","title":"Local Caching Middleware","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/advanced/caching","distance":0.1559},{"site":"ai-sdk","path":"/cookbook/next/caching-middleware","distance":0.2559},{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","distance":0.2692},{"site":"ai-sdk","path":"/cookbook/node/dynamic-prompt-caching","distance":0.336},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/automatic-caching","distance":0.3531}],"related":[{"site":"ai-sdk","path":"/docs/advanced/caching","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/automatic-caching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheHandlers","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/caching-middleware","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/dynamic-prompt-caching","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/simulate-streaming-middleware","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/manual-agent-loop","title":"Manual Agent Loop","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/cookbook/next/custom-stream-format"},{"site":"ai-sdk","path":"/docs/agents/building-agents"},{"site":"ai-sdk","path":"/docs/agents/loop-control"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/agents/loop-control","distance":0.1245},{"site":"ai-sdk","path":"/docs/agents/building-agents","distance":0.1896},{"site":"ai-sdk","path":"/docs/agents/overview","distance":0.204},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","distance":0.2657},{"site":"ai-sdk","path":"/docs/agents/configuring-call-options","distance":0.275}],"related":[{"site":"ai-sdk","path":"/docs/agents/loop-control","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-an-llm-tool","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","via":"neighbor"},{"site":"eve","path":"/docs/tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/building-agents","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/configuring-call-options","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/mcp-elicitation","title":"Model Context Protocol (MCP) Elicitation","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-tools","distance":0.3152},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-mcp-client","distance":0.4039},{"site":"ai-sdk","path":"/cookbook/next/mcp-tools","distance":0.4111},{"site":"ai-sdk","path":"/providers/community-providers/mcp-sampling","distance":0.433},{"site":"ai-sdk","path":"/cookbook/node/mcp-tools","distance":0.4337}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-mcp-server-with-nuxt","via":"neighbor"},{"site":"eve","path":"/docs/channels/mcp","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/create-mcp-server","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-tools","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-mcp-apps","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/get-mcp-server","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-create-a-contentful-asset-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-mcp-client","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/mcp-tools","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/mcp-sampling","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/mcp-tools","title":"Model Context Protocol (MCP) Tools","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/next/mcp-tools","distance":0.2237},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-tools","distance":0.2505},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-apps","distance":0.2857},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/mcp-apps","distance":0.3233},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-mcp-apps","distance":0.3302}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-mcp-apps","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-mcp-server-with-nuxt","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/mcp-tools","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/packages/ai-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-apps","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/mcp-apps","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/acp","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/repair-json-with-jsonrepair","title":"Repair Malformed JSON with jsonrepair","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data","distance":0.4104},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output","distance":0.4233},{"site":"ai-sdk","path":"/cookbook/node/generate-object","distance":0.4481},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/json-schema","distance":0.4522},{"site":"ai-sdk","path":"/docs/troubleshooting/no-object-generated-content-filter","distance":0.4902}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/structured-outputs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/structured-outputs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/run-ai-prompts-in-your-github-actions-with-the-vercel-ai-action","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/structured-outputs","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-object","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/json-schema","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/no-object-generated-content-filter","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/retrieval-augmented-generation","title":"Retrieval Augmented Generation","summary":null,"outbound":[{"site":"ai-sdk","path":"/cookbook/guides/rag-chatbot"},{"site":"ai-sdk","path":"/cookbook/node/knowledge-base-agent"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/node/embed-text"},{"site":"ai-sdk","path":"/cookbook/node/embed-text-batch"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/what-is-rag","distance":0.2978},{"site":"ai-sdk","path":"/cookbook/node/knowledge-base-agent","distance":0.3295},{"site":"ai-sdk","path":"/cookbook/node/embed-text","distance":0.3747},{"site":"ai-sdk","path":"/cookbook/node/generate-object-reasoning","distance":0.3762},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.4045}],"related":[{"site":"vercel-kb","path":"/kb/guide/what-is-rag","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/understanding-vector-databases-for-ai-apps","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/rag-chatbot-production-architecture-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-generation","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/nextjs-langchain-vercel-ai","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/embed-text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-object-reasoning","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-chat-prompt","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/stream-object","title":"Stream Object","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/node/generate-object","distance":0.2138},{"site":"ai-sdk","path":"/cookbook/next/stream-object","distance":0.2441},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-object","distance":0.3076},{"site":"ai-sdk","path":"/cookbook/rsc/stream-object","distance":0.3091},{"site":"ai-sdk","path":"/cookbook/node/stream-object-record-final-object","distance":0.3112}],"related":[{"site":"ai-sdk","path":"/cookbook/node/generate-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-object","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-object-record-final-object","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/stream-object-record-final-object","title":"Record Final Object after Streaming Object","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/node/stream-object-record-token-usage","distance":0.2797},{"site":"ai-sdk","path":"/cookbook/node/stream-object","distance":0.3112},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data","distance":0.3407},{"site":"ai-sdk","path":"/cookbook/node/generate-object","distance":0.3636},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output","distance":0.3665}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/structured-outputs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/structured-outputs","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-object-record-token-usage","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/output-schema","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-object","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-object","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/stream-object-record-token-usage","title":"Record Token Usage After Streaming Object","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/rsc/stream-ui-record-token-usage","distance":0.1893},{"site":"ai-sdk","path":"/cookbook/node/stream-object-record-final-object","distance":0.2797},{"site":"ai-sdk","path":"/cookbook/next/track-agent-token-usage","distance":0.4208},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text","distance":0.4215},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data","distance":0.4575}],"related":[{"site":"ai-sdk","path":"/cookbook/rsc/stream-ui-record-token-usage","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-object-record-final-object","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/usage/list-usage-events","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-summary","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/streaming","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/track-agent-token-usage","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/stream-object-with-image-prompt","title":"Stream Object with Image Prompt","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-image-prompt","distance":0.1697},{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-image-prompt","distance":0.1846},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-file-prompt","distance":0.2346},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-image-prompt","distance":0.2642},{"site":"ai-sdk","path":"/cookbook/node/call-tools-with-image-prompt","distance":0.287}],"related":[{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-image-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-image-prompt","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/image-generation","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-file-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-image-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools-with-image-prompt","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/stream-text","title":"Stream Text","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/rsc/stream-text","distance":0.2602},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-chat-prompt","distance":0.2681},{"site":"ai-sdk","path":"/cookbook/next/stream-text","distance":0.2828},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text","distance":0.322},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-file-prompt","distance":0.3238}],"related":[{"site":"ai-sdk","path":"/cookbook/rsc/stream-text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-file-prompt","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-chat-prompt","title":"Stream Text with Chat Prompt","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-chat-prompt","distance":0.1744},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","distance":0.1859},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text-with-chat-prompt","distance":0.191},{"site":"ai-sdk","path":"/cookbook/next/stream-text","distance":0.2304},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-file-prompt","distance":0.2414}],"related":[{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-file-prompt","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-file-prompt","title":"Stream Text with File Prompt","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-image-prompt","distance":0.169},{"site":"ai-sdk","path":"/cookbook/node/stream-object-with-image-prompt","distance":0.2346},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-chat-prompt","distance":0.2414},{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-image-prompt","distance":0.2991},{"site":"ai-sdk","path":"/cookbook/node/stream-text","distance":0.3238}],"related":[{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-image-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-object-with-image-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-image-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-text","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-image-prompt","title":"Stream Text with Image Prompt","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-file-prompt","distance":0.169},{"site":"ai-sdk","path":"/cookbook/node/stream-object-with-image-prompt","distance":0.1697},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-image-prompt","distance":0.2283},{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-image-prompt","distance":0.2387},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-chat-prompt","distance":0.2617}],"related":[{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-file-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-object-with-image-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-image-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-image-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-chat-prompt","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/web-search-agent","title":"Web Search Agent","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/web-search","distance":0.2287},{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.2431},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","distance":0.2804},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.3185},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","distance":0.3202}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/web-search","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-an-llm-tool","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/openai-responses","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/rsc","title":"React Server Components","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[],"related":[]},{"site":"ai-sdk","path":"/cookbook/rsc/call-tools","title":"Call Tools","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/rsc/call-tools-in-parallel","distance":0.1703},{"site":"ai-sdk","path":"/cookbook/next/call-tools","distance":0.1738},{"site":"ai-sdk","path":"/cookbook/rsc/generate-text-with-chat-prompt","distance":0.1767},{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps","distance":0.2242},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","distance":0.2348}],"related":[{"site":"ai-sdk","path":"/cookbook/rsc/call-tools-in-parallel","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/call-tools","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/generate-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/rsc/call-tools-in-parallel","title":"Call Tools in Parallel","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/rsc/call-tools","distance":0.1703},{"site":"ai-sdk","path":"/cookbook/next/call-tools","distance":0.188},{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps","distance":0.1895},{"site":"ai-sdk","path":"/cookbook/next/render-visual-interface-in-chat","distance":0.192},{"site":"ai-sdk","path":"/cookbook/node/call-tools-in-parallel","distance":0.1922}],"related":[{"site":"ai-sdk","path":"/cookbook/rsc/call-tools","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/call-tools","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/render-visual-interface-in-chat","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools-in-parallel","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/rsc/generate-object","title":"Generate Object","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/rsc/stream-object","distance":0.0819},{"site":"ai-sdk","path":"/cookbook/next/generate-object","distance":0.1712},{"site":"ai-sdk","path":"/cookbook/next/stream-object","distance":0.1886},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/object-generation","distance":0.2106},{"site":"ai-sdk","path":"/cookbook/node/generate-object","distance":0.3113}],"related":[{"site":"ai-sdk","path":"/cookbook/rsc/stream-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-object","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/object-generation","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-object","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/rsc/generate-text","title":"Generate Text","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/next/generate-text","distance":0.1168},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text","distance":0.1297},{"site":"ai-sdk","path":"/cookbook/next/stream-text","distance":0.2155},{"site":"ai-sdk","path":"/cookbook/rsc/generate-text-with-chat-prompt","distance":0.2261},{"site":"ai-sdk","path":"/cookbook/next/generate-text-with-chat-prompt","distance":0.2334}],"related":[{"site":"ai-sdk","path":"/cookbook/next/generate-text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/generate-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-text-with-chat-prompt","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/rsc/generate-text-with-chat-prompt","title":"Generate Text with Chat Prompt","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/next/generate-text-with-chat-prompt","distance":0.1017},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text-with-chat-prompt","distance":0.1117},{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-chat-prompt","distance":0.1589},{"site":"ai-sdk","path":"/cookbook/rsc/call-tools","distance":0.1767},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","distance":0.2079}],"related":[{"site":"ai-sdk","path":"/cookbook/next/generate-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/call-tools","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","title":"Render Visual Interface in Chat","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/rsc/save-messages-to-database","distance":0.1596},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","distance":0.1919},{"site":"ai-sdk","path":"/cookbook/next/render-visual-interface-in-chat","distance":0.2123},{"site":"ai-sdk","path":"/cookbook/next/call-tools","distance":0.2155},{"site":"ai-sdk","path":"/cookbook/rsc/restore-messages-from-database","distance":0.2187}],"related":[{"site":"ai-sdk","path":"/cookbook/rsc/save-messages-to-database","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/render-visual-interface-in-chat","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/call-tools","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/restore-messages-from-database","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/rsc/restore-messages-from-database","title":"Restore Messages From Database","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/rsc/save-messages-to-database","distance":0.1191},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","distance":0.2187},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/saving-and-restoring-states","distance":0.2414},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state","distance":0.2423},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","distance":0.3081}],"related":[{"site":"ai-sdk","path":"/cookbook/rsc/save-messages-to-database","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/to-ai-messages","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/saving-and-restoring-states","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/rsc/save-messages-to-database","title":"Save Messages To Database","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/rsc/restore-messages-from-database","distance":0.1191},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","distance":0.1596},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state","distance":0.2131},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/saving-and-restoring-states","distance":0.2165},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","distance":0.2545}],"related":[{"site":"ai-sdk","path":"/cookbook/rsc/restore-messages-from-database","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/saving-and-restoring-states","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/rsc/stream-object","title":"Stream Object","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/rsc/generate-object","distance":0.0819},{"site":"ai-sdk","path":"/cookbook/next/stream-object","distance":0.1619},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text","distance":0.2195},{"site":"ai-sdk","path":"/cookbook/next/generate-object","distance":0.2223},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/object-generation","distance":0.2272}],"related":[{"site":"ai-sdk","path":"/cookbook/rsc/generate-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-object","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/object-generation","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text","title":"Stream Text","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/next/stream-text","distance":0.1042},{"site":"ai-sdk","path":"/cookbook/rsc/generate-text","distance":0.1297},{"site":"ai-sdk","path":"/cookbook/next/generate-text","distance":0.1753},{"site":"ai-sdk","path":"/cookbook/rsc/stream-object","distance":0.2195},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text-with-chat-prompt","distance":0.2244}],"related":[{"site":"ai-sdk","path":"/cookbook/next/stream-text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/generate-text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text-with-chat-prompt","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text-with-chat-prompt","title":"Stream Text with Chat Prompt","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/rsc/generate-text-with-chat-prompt","distance":0.1117},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","distance":0.1453},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-chat-prompt","distance":0.191},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text","distance":0.2244},{"site":"ai-sdk","path":"/cookbook/next/generate-text-with-chat-prompt","distance":0.2261}],"related":[{"site":"ai-sdk","path":"/cookbook/rsc/generate-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-text-with-chat-prompt","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/rsc/stream-ui-record-token-usage","title":"Record Token Usage after Streaming User Interfaces","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/stream-ui"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/node/stream-object-record-token-usage","distance":0.1893},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","distance":0.2991},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","distance":0.3494},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui","distance":0.3524},{"site":"ai-sdk","path":"/cookbook/rsc/save-messages-to-database","distance":0.3573}],"related":[{"site":"ai-sdk","path":"/cookbook/node/stream-object-record-token-usage","via":"neighbor"},{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/save-messages-to-database","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","title":"Stream Updates to Visual Interfaces","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","distance":0.1919},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/loading-state","distance":0.2222},{"site":"ai-sdk","path":"/docs/advanced/multiple-streamables","distance":0.2435},{"site":"ai-sdk","path":"/cookbook/rsc/save-messages-to-database","distance":0.2545},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text-with-chat-prompt","distance":0.257}],"related":[{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/loading-state","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/multiple-streamables","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/save-messages-to-database","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text-with-chat-prompt","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/advanced","title":"Advanced","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/foundations/overview","distance":0.384},{"site":"ai-sdk","path":"/docs/ai-sdk-core/overview","distance":0.4063},{"site":"ai-sdk","path":"/docs/introduction","distance":0.4106},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","distance":0.4146},{"site":"vercel-kb","path":"/kb/guide/what-is-a-large-language-model","distance":0.4387}],"related":[{"site":"vercel-kb","path":"/kb/guide/what-is-a-large-language-model","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-ai-sdk-vs-tanstack-ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/introduction","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/advanced/backpressure","title":"Backpressure","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/advanced/stopping-streams","distance":0.3242},{"site":"vercel-kb","path":"/kb/guide/what-is-streaming","distance":0.3473},{"site":"vercel-kb","path":"/kb/guide/handling-backpressure","distance":0.3483},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-resume-streams","distance":0.3574},{"site":"nextjs","path":"/docs/app/guides/streaming","distance":0.377}],"related":[{"site":"vercel-kb","path":"/kb/guide/what-is-streaming","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/handling-backpressure","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/streaming","via":"neighbor"},{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/streaming","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/stopping-streams","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-resume-streams","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/caching","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/streaming","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/advanced/caching","title":"Caching","summary":null,"outbound":[{"site":"ai-sdk","path":"/cookbook/next/caching-middleware"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/testing"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/simulate-readable-stream"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/node/local-caching-middleware","distance":0.1559},{"site":"ai-sdk","path":"/cookbook/next/caching-middleware","distance":0.1972},{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","distance":0.2985},{"site":"ai-sdk","path":"/docs/ai-sdk-core/testing","distance":0.3052},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","distance":0.3484}],"related":[{"site":"ai-sdk","path":"/cookbook/node/local-caching-middleware","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/automatic-caching","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/streaming-from-llm","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/loading-state","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/dynamic-prompt-caching","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/openai-responses","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/advanced/model-as-router","title":"Language Models as Routers","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/advanced/rendering-ui-with-language-models","distance":0.243},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/multistep-interfaces","distance":0.3365},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","distance":0.3418},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/generative-user-interfaces","distance":0.3538},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.3556}],"related":[{"site":"ai-sdk","path":"/docs/advanced/rendering-ui-with-language-models","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/nextjs-langchain-vercel-ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/multistep-interfaces","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/generative-user-interfaces","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/advanced/multiple-streamables","title":"Multiple Streamables","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values","distance":0.2044},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-ui","distance":0.2312},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","distance":0.2435},{"site":"ai-sdk","path":"/docs/advanced/rendering-ui-with-language-models","distance":0.279},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui","distance":0.2902}],"related":[{"site":"nextjs","path":"/docs/app/guides/streaming","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-ui","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/rendering-ui-with-language-models","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/advanced/multistep-interfaces","title":"Multistep Interfaces","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/multistep-interfaces","distance":0.2784},{"site":"vercel-kb","path":"/kb/guide/what-is-an-llm-tool","distance":0.3907},{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps","distance":0.3927},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","distance":0.3951},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","distance":0.4102}],"related":[{"site":"vercel-kb","path":"/kb/guide/what-is-an-llm-tool","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/tool-calling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/multistep-interfaces","via":"neighbor"},{"site":"eve","path":"/docs/tools","via":"neighbor"},{"site":"workflow","path":"/docs/ai/defining-tools","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/generative-user-interfaces","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/advanced/prompt-engineering","title":"Prompt Engineering","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/getting-started/expo"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-router"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-pages-router"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs"},{"site":"ai-sdk","path":"/docs/getting-started/nuxt"},{"site":"ai-sdk","path":"/docs/getting-started/svelte"},{"site":"ai-sdk","path":"/docs/getting-started/tanstack-start"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.3161},{"site":"vercel-kb","path":"/kb/guide/what-is-a-large-language-model","distance":0.3194},{"site":"v0","path":"/docs/text-prompting","distance":0.3347},{"site":"ai-sdk","path":"/docs/introduction","distance":0.3475},{"site":"ai-sdk","path":"/docs/ai-sdk-core/prompt-engineering","distance":0.3491}],"related":[{"site":"vercel-kb","path":"/kb/guide/what-is-a-large-language-model","via":"neighbor"},{"site":"v0","path":"/docs/text-prompting","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/fine-tuning-openai-nextjs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/run-ai-prompts-in-your-github-actions-with-the-vercel-ai-action","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/prompt-engineering","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/prompts","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/o1","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/advanced/rate-limiting","title":"Rate Limiting","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting-sdk","distance":0.3959},{"site":"vercel-kb","path":"/kb/guide/securing-ai-app-rate-limiting","distance":0.4016},{"site":"vercel-kb","path":"/kb/guide/add-rate-limiting-vercel","distance":0.4087},{"site":"vercel-kb","path":"/kb/guide/limit-abuse-with-rate-limiting","distance":0.4279},{"site":"vercel-kb","path":"/kb/guide/handling-backpressure","distance":0.4722}],"related":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/securing-ai-app-rate-limiting","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/add-rate-limiting-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/limit-abuse-with-rate-limiting","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/handling-backpressure","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/rate-limits/find","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend","via":"neighbor"},{"site":"vercel-docs","path":"/docs/botid/get-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/limits","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/caching","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/caching-middleware","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/advanced/rendering-ui-with-language-models","title":"Rendering UI with Language Models","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/multistep-interfaces"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-ui"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-react-components","distance":0.1819},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/generative-user-interfaces","distance":0.2349},{"site":"ai-sdk","path":"/docs/advanced/model-as-router","distance":0.243},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","distance":0.2479},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/loading-state","distance":0.249}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-react-components","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/generative-user-interfaces","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/model-as-router","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/loading-state","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/advanced/secure-url-fetching","title":"Secure URL Fetching","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/node/intercept-fetch-requests","distance":0.4192},{"site":"nextjs","path":"/docs/app/guides/data-security","distance":0.42},{"site":"nextjs","path":"/docs/app/guides/progressive-web-apps","distance":0.452},{"site":"eve","path":"/docs/sandbox","distance":0.4549},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching","distance":0.4556}],"related":[{"site":"nextjs","path":"/docs/app/guides/data-security","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/progressive-web-apps","via":"neighbor"},{"site":"eve","path":"/docs/sandbox","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-enable-cors","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/private-storage","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/application-authentication-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-agent-prompt-injection","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/skew-protection","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-protect-your-ai-app-from-bots","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/intercept-fetch-requests","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/advanced/sequential-generations","title":"Sequential Generations","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/advanced/model-as-router","distance":0.4186},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text","distance":0.4462},{"site":"ai-sdk","path":"/cookbook/next/generate-text","distance":0.4468},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui","distance":0.4521},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data","distance":0.4542}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/video","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/model-as-router","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-text","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/advanced/stopping-streams","title":"Stopping Streams","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/functions/functions-api-reference"}],"inbound":[{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide"},{"site":"ai-sdk","path":"/docs/troubleshooting/abort-breaks-resumable-streams"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/abort-breaks-resumable-streams","distance":0.222},{"site":"ai-sdk","path":"/docs/ai-sdk-core/error-handling","distance":0.2231},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-resume-streams","distance":0.2412},{"site":"ai-sdk","path":"/docs/troubleshooting/stream-abort-handling","distance":0.2683},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","distance":0.3145}],"related":[{"site":"workflow","path":"/docs/foundations/streaming","via":"neighbor"},{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"workflow","path":"/docs/ai/resumable-streams","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/abort-breaks-resumable-streams","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/error-handling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-resume-streams","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/stream-abort-handling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","title":"Vercel Deployment Guide","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/advanced/stopping-streams"},{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-not-working-when-proxied"},{"site":"ai-sdk","path":"/docs/troubleshooting/timeout-on-vercel"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference"},{"site":"vercel-docs","path":"/docs/functions/runtimes"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","distance":0.2121},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","distance":0.2163},{"site":"vercel-kb","path":"/kb/guide/ship-a-nestjs-app-on-vercel","distance":0.2229},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","distance":0.2321},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","distance":0.2348}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nestjs-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/agents","title":"Agents","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/tools"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/agents/overview","distance":0.1874},{"site":"ai-sdk","path":"/docs/agents/building-agents","distance":0.1993},{"site":"ai-sdk","path":"/docs/ai-sdk-core","distance":0.2503},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow","distance":0.2536},{"site":"ai-sdk","path":"/cookbook/guides","distance":0.2657}],"related":[{"site":"workflow","path":"/docs/ai","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-ai","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/examples/ai-tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/coding-agents","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/agents/building-agents","title":"Building Agents","summary":null,"outbound":[{"site":"ai-sdk","path":"/cookbook/node/manual-agent-loop"},{"site":"ai-sdk","path":"/docs/agents/loop-control"},{"site":"ai-sdk","path":"/docs/agents/workflows"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/lifecycle-callbacks"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"}],"inbound":[{"site":"ai-sdk","path":"/docs/agents/overview"},{"site":"ai-sdk","path":"/docs/agents/policy-tool-approvals"},{"site":"ai-sdk","path":"/docs/agents/terminal-ui"},{"site":"ai-sdk","path":"/docs/agents/workflow-agent"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-6-0"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-tui/run-agent-tui"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-runtime-and-tool-context"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-skill-uploads"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-terminal-ui"},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk"},{"site":"vercel-kb","path":"/kb/guide/linear-agent-vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/liveblocks-chat-sdk-ai-sdk"},{"site":"vercel-kb","path":"/kb/guide/sandboxed-coding-agent-with-harnessagent"},{"site":"vercel-kb","path":"/kb/guide/slack-bot-vercel-blob"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/agents/overview","distance":0.092},{"site":"ai-sdk","path":"/docs/agents/loop-control","distance":0.1603},{"site":"ai-sdk","path":"/docs/agents/configuring-call-options","distance":0.1643},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent","distance":0.1702},{"site":"ai-sdk","path":"/cookbook/node/manual-agent-loop","distance":0.1896}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-runtime-and-tool-context","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-skill-uploads","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-terminal-ui","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect","via":"inbound"},{"site":"workflow","path":"/docs/ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/configuring-call-options","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/subagents","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/agents/configuring-call-options","title":"Configuring Call Options","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/agents/loop-control"},{"site":"ai-sdk","path":"/docs/agents/workflows"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/agents/building-agents","distance":0.1643},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent","distance":0.2146},{"site":"ai-sdk","path":"/docs/agents/overview","distance":0.2315},{"site":"ai-sdk","path":"/docs/agents/loop-control","distance":0.2744},{"site":"ai-sdk","path":"/cookbook/node/manual-agent-loop","distance":0.275}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-terminal-ui","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/building-agents","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/overview","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/manual-agent-loop","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/agents/loop-control","title":"Loop Control","summary":null,"outbound":[{"site":"ai-sdk","path":"/cookbook/node/manual-agent-loop"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/agent-context-compaction"},{"site":"ai-sdk","path":"/cookbook/guides/deepseek-v3-2"},{"site":"ai-sdk","path":"/docs/agents/building-agents"},{"site":"ai-sdk","path":"/docs/agents/configuring-call-options"},{"site":"ai-sdk","path":"/docs/agents/overview"},{"site":"ai-sdk","path":"/docs/agents/workflow-agent"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"},{"site":"workflow","path":"/docs/ai/message-queueing"},{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/node/manual-agent-loop","distance":0.1245},{"site":"ai-sdk","path":"/docs/agents/building-agents","distance":0.1603},{"site":"ai-sdk","path":"/docs/agents/overview","distance":0.2124},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","distance":0.2124},{"site":"ai-sdk","path":"/cookbook/guides/agent-context-compaction","distance":0.2623}],"related":[{"site":"workflow","path":"/docs/ai/message-queueing","via":"inbound"},{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","via":"inbound"},{"site":"ai-sdk","path":"/docs/agents/building-agents","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/agent-context-compaction","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool-loop-agent","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/agents/memory","title":"Memory","summary":null,"outbound":[{"site":"ai-sdk","path":"/cookbook/guides/custom-memory-tool"},{"site":"ai-sdk","path":"/docs/foundations/tools"},{"site":"ai-sdk","path":"/providers/community-providers/hindsight"},{"site":"ai-sdk","path":"/providers/community-providers/letta"},{"site":"ai-sdk","path":"/providers/community-providers/mem0"},{"site":"ai-sdk","path":"/providers/community-providers/supermemory"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/hindsight","distance":0.2311},{"site":"eve","path":"/docs/patterns/multi-tenant-memory","distance":0.2578},{"site":"ai-sdk","path":"/providers/community-providers/supermemory","distance":0.2592},{"site":"ai-sdk","path":"/providers/community-providers/mem0","distance":0.2953},{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.3166}],"related":[{"site":"eve","path":"/docs/patterns/multi-tenant-memory","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-an-llm-tool","via":"neighbor"},{"site":"eve","path":"/docs/tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/loop-control","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/building-agents","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/web-search-agent","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/agents/overview","title":"Overview","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/agents/building-agents"},{"site":"ai-sdk","path":"/docs/agents/loop-control"},{"site":"ai-sdk","path":"/docs/agents/terminal-ui"},{"site":"ai-sdk","path":"/docs/agents/workflows"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/runtime-and-tool-context"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-agent"}],"inbound":[{"site":"ai-sdk","path":"/docs/agents/workflows"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-tui/run-agent-tui"},{"site":"vercel-kb","path":"/kb/guide/build-ai-agent-weather-api"},{"site":"vercel-kb","path":"/kb/guide/how-to-run-a-multi-step-research-agent-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/vercel-ai-sdk-vs-tanstack-ai"},{"site":"workflow","path":"/docs/ai"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/agents/building-agents","distance":0.092},{"site":"ai-sdk","path":"/docs/agents","distance":0.1874},{"site":"ai-sdk","path":"/cookbook/node/manual-agent-loop","distance":0.204},{"site":"ai-sdk","path":"/docs/agents/loop-control","distance":0.2124},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent","distance":0.2198}],"related":[{"site":"vercel-kb","path":"/kb/guide/build-ai-agent-weather-api","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-run-a-multi-step-research-agent-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-ai-sdk-vs-tanstack-ai","via":"inbound"},{"site":"workflow","path":"/docs/ai","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-terminal-ui","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/manual-agent-loop","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/configuring-call-options","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-agent","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/agents/policy-tool-approvals","title":"Policy-Based Tool Approvals","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/agents/building-agents"},{"site":"ai-sdk","path":"/docs/agents/tool-approvals"}],"inbound":[{"site":"ai-sdk","path":"/docs/agents/tool-approvals"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/agents/tool-approvals","distance":0.2857},{"site":"eve","path":"/docs/patterns/multi-tenant-approvals","distance":0.2944},{"site":"eve","path":"/docs/human-in-the-loop","distance":0.3067},{"site":"eve","path":"/docs/tools","distance":0.3138},{"site":"eve","path":"/docs/concepts/built-in-tools","distance":0.3399}],"related":[{"site":"eve","path":"/docs/patterns/multi-tenant-approvals","via":"neighbor"},{"site":"eve","path":"/docs/human-in-the-loop","via":"neighbor"},{"site":"eve","path":"/docs/tools","via":"neighbor"},{"site":"eve","path":"/docs/concepts/built-in-tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"neighbor"},{"site":"eve","path":"/docs/connections","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-community-moderation-agents-using-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-i-use-opencode-with-vercel-ai-gateway-to-build-features-fast","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/agents/subagents","title":"Subagents","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/convert-to-model-messages"}],"inbound":[{"site":"ai-sdk","path":"/docs/agents/tool-approvals"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/subagents","distance":0.2308},{"site":"ai-sdk","path":"/docs/agents/building-agents","distance":0.2507},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent","distance":0.2591},{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","distance":0.2706},{"site":"vercel-kb","path":"/kb/guide/how-to-use-eve-subagents","distance":0.2738}],"related":[{"site":"eve","path":"/docs/subagents","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-eve-subagents","via":"neighbor"},{"site":"eve","path":"/docs/concepts/built-in-tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/building-agents","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/manual-agent-loop","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/overview","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/agents/terminal-ui","title":"Terminal UI","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/agents/building-agents"},{"site":"ai-sdk","path":"/docs/agents/tool-approvals"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-tui/run-agent-tui"}],"inbound":[{"site":"ai-sdk","path":"/docs/agents/overview"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/terminal-ui"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-tui"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-tui/run-agent-tui"},{"site":"vercel-kb","path":"/kb/guide/python-ai-sdk-vercel-sandbox"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-terminal-ui","distance":0.068},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-tui/run-agent-tui","distance":0.0984},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-tui","distance":0.2063},{"site":"ai-sdk","path":"/docs/agents/overview","distance":0.2387},{"site":"ai-sdk","path":"/docs/agents/building-agents","distance":0.2594}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-terminal-ui","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/python-ai-sdk-vercel-sandbox","via":"inbound"},{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/packages/ai-tools","via":"neighbor"},{"site":"eve","path":"/docs/tools","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"eve","path":"/docs/human-in-the-loop","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/terminal-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/configuring-call-options","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/agents/tool-approvals","title":"Tool Approvals","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/agents/policy-tool-approvals"},{"site":"ai-sdk","path":"/docs/agents/subagents"},{"site":"ai-sdk","path":"/docs/agents/workflow-agent"}],"inbound":[{"site":"ai-sdk","path":"/docs/agents/policy-tool-approvals"},{"site":"ai-sdk","path":"/docs/agents/terminal-ui"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-tool-usage"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-tool-usage","distance":0.1694},{"site":"ai-sdk","path":"/cookbook/next/human-in-the-loop","distance":0.1951},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","distance":0.2284},{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","distance":0.2581},{"site":"eve","path":"/docs/human-in-the-loop","distance":0.268}],"related":[{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","via":"neighbor"},{"site":"eve","path":"/docs/human-in-the-loop","via":"neighbor"},{"site":"eve","path":"/docs/tools","via":"neighbor"},{"site":"eve","path":"/docs/patterns/multi-tenant-approvals","via":"neighbor"},{"site":"chat-sdk","path":"/docs/approvals","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-workflowagent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-tool-usage","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/human-in-the-loop","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/agents/workflow-agent","title":"WorkflowAgent","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/agents/building-agents"},{"site":"ai-sdk","path":"/docs/agents/loop-control"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/transport"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/convert-to-model-messages"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-agent"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-chat-transport"},{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent"}],"inbound":[{"site":"ai-sdk","path":"/docs/agents/tool-approvals"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/transport"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-chat-transport"},{"site":"vercel-kb","path":"/kb/guide/agent-approval-workflow-stack-guide"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/what-is-workflowagent","distance":0.0901},{"site":"vercel-kb","path":"/kb/guide/durableagent-to-workflowagent","distance":0.1474},{"site":"workflow","path":"/docs/ai","distance":0.2282},{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","distance":0.2491},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow","distance":0.2756}],"related":[{"site":"vercel-kb","path":"/kb/guide/what-is-workflowagent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/durableagent-to-workflowagent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/agent-approval-workflow-stack-guide","via":"inbound"},{"site":"workflow","path":"/docs/ai","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"neighbor"},{"site":"eve","path":"/docs/concepts/built-in-tools","via":"neighbor"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-aws-agentcore","via":"neighbor"},{"site":"workflow","path":"/docs/ai/defining-tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-human-in-the-loop-agents-for-community-moderation-with-durable-workflows","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/workflow-utilities","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/tool-approvals","via":"inbound"}]},{"site":"ai-sdk","path":"/docs/agents/workflows","title":"Workflow Patterns","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/agents/overview"}],"inbound":[{"site":"ai-sdk","path":"/docs/agents/building-agents"},{"site":"ai-sdk","path":"/docs/agents/configuring-call-options"},{"site":"ai-sdk","path":"/docs/agents/overview"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/agents/building-agents","distance":0.3179},{"site":"ai-sdk","path":"/docs/agents/loop-control","distance":0.323},{"site":"ai-sdk","path":"/cookbook/node/manual-agent-loop","distance":0.3435},{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","distance":0.348},{"site":"ai-sdk","path":"/docs/agents/configuring-call-options","distance":0.3498}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","via":"neighbor"},{"site":"workflow","path":"/docs/ai","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-a-slack-agent-with-durable-workflows","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/durable-web-research-agent-with-workflow-sdk","via":"neighbor"},{"site":"workflow","path":"/docs/ai/defining-tools","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","via":"neighbor"},{"site":"workflow","path":"/docs/how-it-works/understanding-directives","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/building-agents","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/loop-control","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/manual-agent-loop","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core","title":"AI SDK Core","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values"},{"site":"ai-sdk","path":"/docs/introduction"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/alibaba"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/amazon-bedrock"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/azure"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/baseten"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cerebras"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cohere"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepseek"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fireworks"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google-vertex"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/minimax"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/mistral"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/moonshotai"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/open-responses"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/xai"},{"site":"ai-sdk","path":"/providers/community-providers/anthropic-vertex-ai"},{"site":"ai-sdk","path":"/providers/community-providers/friendliai"},{"site":"ai-sdk","path":"/providers/community-providers/qwen"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core","distance":0.1315},{"site":"ai-sdk","path":"/docs/ai-sdk-ui","distance":0.1738},{"site":"ai-sdk","path":"/docs/foundations","distance":0.1862},{"site":"ai-sdk","path":"/docs/reference","distance":0.1886},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc","distance":0.2151}],"related":[{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/code-mode","title":"Code Mode","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","distance":0.3023},{"site":"eve","path":"/docs/tools","distance":0.3107},{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.3167},{"site":"vercel-kb","path":"/kb/guide/python-ai-sdk-vercel-sandbox","distance":0.3169},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai","distance":0.3218}],"related":[{"site":"eve","path":"/docs/tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/python-ai-sdk-vercel-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-execute-ai-generated-code-safely","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/tool-approvals","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/loop-control","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/devtools","title":"DevTools","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/telemetry"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool-loop-agent"}],"inbound":[{"site":"ai-sdk","path":"/docs/getting-started/coding-agents"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/getting-started/coding-agents","distance":0.2633},{"site":"ai-sdk","path":"/providers/observability/confident-ai","distance":0.3251},{"site":"v0","path":"/docs/api/v1/packages/ai-tools","distance":0.3449},{"site":"ai-sdk","path":"/providers/observability/braintrust","distance":0.3469},{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.3479}],"related":[{"site":"v0","path":"/docs/api/v1/packages/ai-tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-terminal-ui","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/examples/ai-tools","via":"neighbor"},{"site":"eve","path":"/docs/guides/instrumentation","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/adapters/ai-tools","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/coding-agents","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/confident-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/braintrust","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/sentry","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","title":"Embeddings","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/cosine-similarity"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/embed"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/embed-many"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/amazon-bedrock"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cohere"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/mistral"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/rag-chatbot"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","distance":0.2195},{"site":"ai-sdk","path":"/providers/community-providers/voyage-ai","distance":0.2467},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/embed-many","distance":0.2506},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/embed","distance":0.2559},{"site":"ai-sdk","path":"/providers/community-providers/mixedbread","distance":0.2561}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/embeddings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/embeddings","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/voyage-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/mixedbread","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/perplexity","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/lmstudio","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/error-handling","title":"Error Handling","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/advanced/stopping-streams","distance":0.2231},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text","distance":0.258},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/error-handling","distance":0.3072},{"site":"workflow","path":"/docs/foundations/streaming","distance":0.3338},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","distance":0.336}],"related":[{"site":"workflow","path":"/docs/foundations/streaming","via":"neighbor"},{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/stopping-streams","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/error-handling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/stream-text-not-working","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/file-uploads","title":"File Uploads","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/upload-file"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-file-uploads","distance":0.1201},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/upload-file","distance":0.1488},{"site":"ai-sdk","path":"/docs/ai-sdk-core/skill-uploads","distance":0.2435},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/upload-skill","distance":0.2936},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-skill-uploads","distance":0.3577}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-file-uploads","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-skill-uploads","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/skill-uploads","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/upload-skill","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/open-responses","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data","title":"Generating Structured Data","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/json-schema"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/valibot-schema"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/zod-schema"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-object-generated-error"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-output-generated-error"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-object"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/overview"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-6-0"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/json-schema"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/valibot-schema"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/zod-schema"},{"site":"ai-sdk","path":"/docs/troubleshooting/no-object-generated-content-filter"},{"site":"ai-sdk","path":"/docs/troubleshooting/tool-calling-with-structured-outputs"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output","distance":0.1138},{"site":"ai-sdk","path":"/cookbook/node/generate-object","distance":0.2345},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/structured-outputs","distance":0.2381},{"site":"ai-sdk","path":"/cookbook/next/stream-object","distance":0.2604},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/structured-outputs","distance":0.2634}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/structured-outputs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/structured-outputs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/structured-outputs","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-object","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/tool-calling-with-structured-outputs","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/prompt-engineering","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text","title":"Generating Text","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui"},{"site":"ai-sdk","path":"/docs/foundations/prompts"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/smooth-stream"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/perplexity"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/overview"},{"site":"ai-sdk","path":"/docs/troubleshooting/azure-stream-slow"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/smooth-stream","distance":0.242},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","distance":0.2432},{"site":"ai-sdk","path":"/docs/ai-sdk-core/error-handling","distance":0.258},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-translate","distance":0.2635},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","distance":0.2669}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/error-handling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-translate","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/image-generation","title":"Image Generation","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-image"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-image-generated-error"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/amazon-bedrock"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/black-forest-labs"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fal"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fireworks"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google-vertex"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/luma"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/replicate"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/xai"}],"inbound":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fireworks","distance":0.2123},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","distance":0.2311},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk","distance":0.2596},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/replicate","distance":0.2671},{"site":"ai-sdk","path":"/providers/community-providers/runpod","distance":0.2833}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/openai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/image","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/runpod","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/prodia","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/lifecycle-callbacks","title":"Lifecycle Callbacks","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/telemetry"}],"inbound":[{"site":"ai-sdk","path":"/docs/agents/building-agents"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/runtime-and-tool-context"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/telemetry"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool-loop-agent","distance":0.1858},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","distance":0.2169},{"site":"ai-sdk","path":"/docs/ai-sdk-core/telemetry","distance":0.286},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text","distance":0.2929},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core","distance":0.3211}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool-loop-agent","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-runtime-and-tool-context","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-apps","title":"MCP Apps","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-tools"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/mcp-apps"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/mcp-app-renderer"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview"},{"site":"ai-sdk","path":"/docs/getting-started/navigating-the-library"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-mcp-apps","distance":0.0555},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/mcp-apps","distance":0.1577},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/mcp-app-renderer","distance":0.1624},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-tools","distance":0.2627},{"site":"ai-sdk","path":"/cookbook/next/mcp-tools","distance":0.2785}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-mcp-apps","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-mcp-server-with-nuxt","via":"neighbor"},{"site":"eve","path":"/docs/connections/mcp","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/mcp-server-with-weather-tool-express","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/mcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/mcp-tools","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/mcp-tools","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/mcp-sampling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-mcp-client","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/navigating-the-library","via":"inbound"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-tools","title":"Model Context Protocol (MCP)","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-apps"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-mcp-apps"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-mcp-client","distance":0.2245},{"site":"ai-sdk","path":"/cookbook/node/mcp-tools","distance":0.2505},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-apps","distance":0.2627},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/mcp-apps","distance":0.2889},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-mcp-server-with-nuxt","distance":0.2891}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-mcp-apps","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-mcp-server-with-nuxt","via":"neighbor"},{"site":"eve","path":"/docs/connections/mcp","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/mcp-server-chatgpt-connector","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-mcp-client","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/mcp-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-apps","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/mcp-apps","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/mcp-tools","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","title":"Language Model Middleware","summary":null,"outbound":[{"site":"ai-sdk","path":"/cookbook/guides/r1"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/r1"},{"site":"ai-sdk","path":"/cookbook/next/caching-middleware"},{"site":"ai-sdk","path":"/docs/advanced/caching"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/add-tool-input-examples-middleware"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/default-instructions-middleware"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/language-model-v2-middleware"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/wrap-language-model"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/language-model-v2-middleware","distance":0.24},{"site":"ai-sdk","path":"/providers/community-providers/custom-providers","distance":0.2616},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/add-tool-input-examples-middleware","distance":0.2633},{"site":"ai-sdk","path":"/cookbook/node/local-caching-middleware","distance":0.2692},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway","distance":0.2883}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/language-model-v2-middleware","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/custom-providers","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/add-tool-input-examples-middleware","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/local-caching-middleware","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/overview","title":"Overview","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/completion"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/object-generation"},{"site":"ai-sdk","path":"/docs/foundations/prompts"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/claude-4"},{"site":"ai-sdk","path":"/cookbook/guides/deepseek-v3-2"},{"site":"ai-sdk","path":"/cookbook/guides/gemini"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5"},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1"},{"site":"ai-sdk","path":"/cookbook/guides/o1"},{"site":"ai-sdk","path":"/cookbook/guides/o3"},{"site":"ai-sdk","path":"/cookbook/guides/openai-responses"},{"site":"ai-sdk","path":"/cookbook/guides/r1"},{"site":"ai-sdk","path":"/cookbook/guides/sonnet-3-7"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-react-components"},{"site":"ai-sdk","path":"/docs/getting-started"},{"site":"ai-sdk","path":"/docs/getting-started/navigating-the-library"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-3"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/introduction","distance":0.252},{"site":"ai-sdk","path":"/docs/foundations/overview","distance":0.2601},{"site":"ai-sdk","path":"/docs/ai-sdk-core","distance":0.2869},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","distance":0.2932},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core","distance":0.3015}],"related":[{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-a-large-language-model","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/docs/introduction","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/overview","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/prompt-engineering","title":"Prompt Engineering","summary":null,"outbound":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","distance":0.2462},{"site":"ai-sdk","path":"/cookbook/node/call-tools","distance":0.2549},{"site":"ai-sdk","path":"/docs/foundations/prompts","distance":0.2837},{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.2851},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai","distance":0.2912}],"related":[{"site":"eve","path":"/docs/tools","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/prompts","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","title":"Provider & Model Management","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/custom-provider"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/provider-registry"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider"},{"site":"ai-sdk","path":"/docs/getting-started/expo"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-router"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-pages-router"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs"},{"site":"ai-sdk","path":"/docs/getting-started/nuxt"},{"site":"ai-sdk","path":"/docs/getting-started/svelte"},{"site":"ai-sdk","path":"/docs/getting-started/tanstack-start"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/app-attribution"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.1821},{"site":"ai-sdk","path":"/docs/foundations/provider-options","distance":0.2281},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","distance":0.24},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","distance":0.243},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/provider-registry","distance":0.2472}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/app-attribution","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/advanced","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/advanced","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/provider-options","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/sap-ai","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/realtime","title":"Realtime","summary":null,"outbound":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway"}],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-realtime"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cartesia"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/xai"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-realtime","distance":0.1164},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/realtime","distance":0.1888},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/realtime","distance":0.214},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway","distance":0.2445},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-realtime-tool-definitions","distance":0.2913}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/realtime","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/realtime","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-realtime","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-realtime-tool-definitions","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/call-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/render-visual-interface-in-chat","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/reasoning","title":"Reasoning","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/settings"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/open-responses"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning","distance":0.1351},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/reasoning","distance":0.1786},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/openai","distance":0.197},{"site":"ai-sdk","path":"/docs/foundations/provider-options","distance":0.2079},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/reasoning","distance":0.2513}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/reasoning","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/openai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/reasoning","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/anthropic","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/provider-options","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cohere","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cerebras","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/moonshotai","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/reranking","title":"Reranking","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/rerank"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/amazon-bedrock"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cohere"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/rerank","distance":0.1041},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/cohere-rerank","distance":0.1746},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/reranking","distance":0.195},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cohere","distance":0.2019},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai","distance":0.2182}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/cohere-rerank","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/reranking","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/voyage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/zeroentropy","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/xai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/runtime-and-tool-context","title":"Runtime and Tool Context","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/lifecycle-callbacks"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/telemetry"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"}],"inbound":[{"site":"ai-sdk","path":"/docs/agents/overview"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/telemetry"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-runtime-and-tool-context","distance":0.0832},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","distance":0.3209},{"site":"ai-sdk","path":"/docs/agents/overview","distance":0.3215},{"site":"ai-sdk","path":"/docs/ai-sdk-core/lifecycle-callbacks","distance":0.3296},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool","distance":0.331}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-runtime-and-tool-context","via":"neighbor"},{"site":"eve","path":"/docs/tools","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","via":"neighbor"},{"site":"eve","path":"/docs/guides/session-context","via":"neighbor"},{"site":"eve","path":"/docs/reference/typescript-api","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/track-agent-token-usage","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool-loop-agent","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/settings","title":"Settings","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/reasoning"},{"site":"ai-sdk","path":"/docs/foundations/prompts"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/multi-modal-chatbot"},{"site":"ai-sdk","path":"/docs/foundations/provider-options"},{"site":"ai-sdk","path":"/docs/getting-started/expo"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-router"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-pages-router"},{"site":"ai-sdk","path":"/docs/getting-started/nuxt"},{"site":"ai-sdk","path":"/docs/getting-started/svelte"},{"site":"ai-sdk","path":"/docs/getting-started/tanstack-start"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/amazon-bedrock"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/azure"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fireworks"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google-vertex"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/mistral"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text","distance":0.226},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text","distance":0.2352},{"site":"ai-sdk","path":"/docs/foundations/provider-options","distance":0.2766},{"site":"ai-sdk","path":"/docs/foundations/prompts","distance":0.2782},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/open-responses","distance":0.3054}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/provider-options","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/open-responses","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/prompt-engineering","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/skill-uploads","title":"Skill Uploads","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/upload-skill"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-skill-uploads","distance":0.1254},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/upload-skill","distance":0.1319},{"site":"ai-sdk","path":"/docs/ai-sdk-core/file-uploads","distance":0.2435},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-file-uploads","distance":0.3177},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","distance":0.3268}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-skill-uploads","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-file-uploads","via":"neighbor"},{"site":"eve","path":"/docs/skills","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/file-uploads","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/skills","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/agent-skills","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech","title":"Speech","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-speech"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-speech-generated-error"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cartesia"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fish-audio"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google-vertex"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/hume"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/lmnt"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/mistral"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/xai"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","distance":0.2146},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-speech","distance":0.2492},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram","distance":0.2728},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fish-audio","distance":0.2741},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","distance":0.2741}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-to-speech","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/telemetry","title":"Telemetry","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/lifecycle-callbacks"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/runtime-and-tool-context"},{"site":"ai-sdk","path":"/providers/observability"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/devtools"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/lifecycle-callbacks"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/runtime-and-tool-context"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui"},{"site":"ai-sdk","path":"/docs/getting-started/coding-agents"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-3"},{"site":"ai-sdk","path":"/providers/observability/confident-ai"},{"site":"ai-sdk","path":"/providers/observability/langfuse"},{"site":"ai-sdk","path":"/providers/observability/mlflow"},{"site":"ai-sdk","path":"/providers/observability/posthog"},{"site":"ai-sdk","path":"/providers/observability/raindrop"},{"site":"ai-sdk","path":"/providers/observability/scorecard"},{"site":"ai-sdk","path":"/providers/observability/sentry"},{"site":"ai-sdk","path":"/providers/observability/signoz"},{"site":"ai-sdk","path":"/providers/observability/traceloop"},{"site":"ai-sdk","path":"/providers/observability/weave"},{"site":"eve","path":"/docs/guides/instrumentation"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-runtime-and-tool-context"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/lifecycle-callbacks","distance":0.286},{"site":"ai-sdk","path":"/providers/observability/laminar","distance":0.2993},{"site":"ai-sdk","path":"/providers/observability/arize-ax","distance":0.3308},{"site":"nextjs","path":"/docs/pages/guides/open-telemetry","distance":0.3467},{"site":"nextjs","path":"/docs/app/guides/open-telemetry","distance":0.3532}],"related":[{"site":"eve","path":"/docs/guides/instrumentation","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-runtime-and-tool-context","via":"inbound"},{"site":"nextjs","path":"/docs/pages/guides/open-telemetry","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/open-telemetry","via":"neighbor"},{"site":"vercel-docs","path":"/docs/tracing/instrumentation","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/laminar","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/arize-ax","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/langfuse","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/respan","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/testing","title":"Testing","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/simulate-readable-stream"}],"inbound":[{"site":"ai-sdk","path":"/docs/advanced/caching"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/api-servers/express","distance":0.2595},{"site":"ai-sdk","path":"/cookbook/api-servers/fastify","distance":0.282},{"site":"vercel-kb","path":"/kb/guide/streaming-from-llm","distance":0.2827},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","distance":0.2888},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text","distance":0.2926}],"related":[{"site":"vercel-kb","path":"/kb/guide/streaming-from-llm","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/api-servers/express","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/api-servers/fastify","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-1","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","title":"Tool Calling","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/agents/building-agents"},{"site":"ai-sdk","path":"/docs/agents/loop-control"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-tools"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/runtime-and-tool-context"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-tool-usage"},{"site":"ai-sdk","path":"/docs/foundations/tools"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/json-schema"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-input-error"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-tool-error"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-call-repair-error"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/agent-context-compaction"},{"site":"ai-sdk","path":"/cookbook/guides/multi-modal-chatbot"},{"site":"ai-sdk","path":"/cookbook/guides/rag-chatbot"},{"site":"ai-sdk","path":"/cookbook/next/human-in-the-loop"},{"site":"ai-sdk","path":"/cookbook/next/render-visual-interface-in-chat"},{"site":"ai-sdk","path":"/docs/advanced/model-as-router"},{"site":"ai-sdk","path":"/docs/advanced/multiple-streamables"},{"site":"ai-sdk","path":"/docs/advanced/multistep-interfaces"},{"site":"ai-sdk","path":"/docs/advanced/rendering-ui-with-language-models"},{"site":"ai-sdk","path":"/docs/agents/building-agents"},{"site":"ai-sdk","path":"/docs/agents/subagents"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/runtime-and-tool-context"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/multistep-interfaces"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-react-components"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-tool-usage"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/generative-user-interfaces"},{"site":"ai-sdk","path":"/docs/foundations/tools"},{"site":"ai-sdk","path":"/docs/getting-started/coding-agents"},{"site":"ai-sdk","path":"/docs/getting-started/expo"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-router"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-pages-router"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs"},{"site":"ai-sdk","path":"/docs/getting-started/nuxt"},{"site":"ai-sdk","path":"/docs/getting-started/svelte"},{"site":"ai-sdk","path":"/docs/getting-started/tanstack-start"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-0"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/json-schema"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/sandbox"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/valibot-schema"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/zod-schema"},{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools"},{"site":"vercel-docs","path":"/docs/mcp"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-runtime-and-tool-context"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-skill-uploads"},{"site":"vercel-kb","path":"/kb/guide/building-community-moderation-agents-using-ai-sdk"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/node/call-tools","distance":0.2106},{"site":"ai-sdk","path":"/docs/agents/loop-control","distance":0.2124},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool-loop-agent","distance":0.2144},{"site":"ai-sdk","path":"/docs/ai-sdk-core/lifecycle-callbacks","distance":0.2169},{"site":"ai-sdk","path":"/docs/agents/tool-approvals","distance":0.2284}],"related":[{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","via":"inbound"},{"site":"vercel-docs","path":"/docs/mcp","via":"inbound"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-runtime-and-tool-context","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-skill-uploads","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/building-community-moderation-agents-using-ai-sdk","via":"inbound"},{"site":"eve","path":"/docs/tools","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool-loop-agent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/lifecycle-callbacks","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/tool-approvals","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","title":"Transcription","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/transcribe"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-transcript-generated-error"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/assemblyai"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/azure"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cartesia"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fal"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fish-audio"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/gladia"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google-vertex"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/groq"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/mistral"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/revai"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/xai"}],"inbound":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cartesia"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/speech-to-text"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cartesia","distance":0.2023},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram","distance":0.2028},{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech","distance":0.2146},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs","distance":0.2147},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/speech-to-text","distance":0.2163}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/speech-to-text","via":"inbound"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/translation","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-transcribe","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/translation","title":"Translation","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-translate"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-translation-generated-error"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-translate","distance":0.1218},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-transcribe","distance":0.2474},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","distance":0.2573},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs","distance":0.2762},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text","distance":0.2969}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/speech-to-text","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-transcribe","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fish-audio","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","title":"Video Generation","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-video"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-video-generated-error"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/black-forest-labs"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fal"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google-vertex"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/klingai"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/replicate"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/xai"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","distance":0.1161},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/klingai","distance":0.1786},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/bytedance","distance":0.1862},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-video","distance":0.1976},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/alibaba","distance":0.2029}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/text-to-video","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/video","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/image-to-video","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/reference-to-video","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/bytedance","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/alibaba","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/minimax","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses","title":"AI SDK Harnesses","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/agents/overview"},{"site":"ai-sdk","path":"/docs/introduction"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses","distance":0.109},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/overview","distance":0.1149},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/ui","distance":0.231},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters","distance":0.2329},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-agent","distance":0.2331}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/cline","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/pi","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/opencode","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters","title":"Harness Adapters","summary":null,"outbound":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/claude-code"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/cline"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/codex"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/grok-build"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/opencode"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/pi"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-agent"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/overview"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/skills"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/workflow-utilities"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/acp"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/claude-code"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/cline"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/codex"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/grok-build"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/opencode"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/pi"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses","distance":0.151},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/acp","distance":0.1942},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/grok-build","distance":0.2069},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/claude-code","distance":0.2261},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/cline","distance":0.2288}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/acp","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/overview","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-agent","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-agent","title":"HarnessAgent","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/skills"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/tools"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/ui"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/workflow-utilities"}],"inbound":[{"site":"ai-sdk","path":"/docs/agents/overview"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/overview"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/skills"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/terminal-ui"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/workflow-utilities"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/acp"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/claude-code"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/cline"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/codex"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/grok-build"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/opencode"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/pi"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/overview","distance":0.141},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/tools","distance":0.1666},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents","distance":0.1678},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/cline","distance":0.1704},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/opencode","distance":0.1773}],"related":[{"site":"vercel-kb","path":"/kb/guide/sandboxed-coding-agent-with-harnessagent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/overview","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/cline","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/opencode","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/claude-code","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/overview","title":"Overview","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-agent"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/skills"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/terminal-ui"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/ui"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/workflow-utilities"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses","distance":0.1149},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses","distance":0.1333},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-agent","distance":0.141},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/ui","distance":0.1641},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/cline","distance":0.202}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/cline","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/tools","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/opencode","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/skills","title":"Skills","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-agent"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/tools"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-agent"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/overview"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/guides/agent-skills","distance":0.2604},{"site":"eve","path":"/docs/skills","distance":0.3012},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/overview","distance":0.3101},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-agent","distance":0.3279},{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","distance":0.3347}],"related":[{"site":"eve","path":"/docs/skills","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-skill-uploads","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/skills","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-skills","via":"neighbor"},{"site":"eve","path":"/docs/concepts/context-control","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/agent-skills","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/cline","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/pi","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/terminal-ui","title":"Terminal UI","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/agents/terminal-ui"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-agent"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-tui/run-agent-tui"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/overview"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/ui","distance":0.2386},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/overview","distance":0.2511},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses","distance":0.2625},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses","distance":0.2637},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-agent","distance":0.2723}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-terminal-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/overview","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/pi","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/opencode","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/tools","title":"Tools","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/foundations/tools"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-agent"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/skills"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/acp"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/claude-code"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/cline"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/codex"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/grok-build"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/opencode"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/pi"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-agent","distance":0.1666},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/overview","distance":0.2063},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/ui","distance":0.2128},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/cline","distance":0.2351},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/pi","distance":0.2366}],"related":[{"site":"eve","path":"/docs/tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-agent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/ui","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/cline","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/pi","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/ui","title":"UI","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-agent"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/overview"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/workflow-utilities"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/overview","distance":0.1641},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-agent","distance":0.1951},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/tools","distance":0.2128},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses","distance":0.231},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/terminal-ui","distance":0.2386}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-agent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/terminal-ui","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/workflow-utilities","title":"Workflow Utilities","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-agent"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/ui"},{"site":"workflow","path":"/docs/getting-started/next"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-agent"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/overview"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-agent","distance":0.2101},{"site":"vercel-docs","path":"/docs/workflows/concepts","distance":0.2518},{"site":"workflow","path":"/docs/ai","distance":0.2522},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/overview","distance":0.2581},{"site":"vercel-kb","path":"/kb/guide/building-a-slack-agent-with-durable-workflows","distance":0.2642}],"related":[{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"workflow","path":"/docs/ai","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-a-slack-agent-with-durable-workflows","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-workflowagent","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/versioning","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/stateful-slack-bots-with-vercel-workflow","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/durable-web-research-agent-with-workflow-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/serialization","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc","title":"AI SDK RSC","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc","distance":0.0755},{"site":"ai-sdk","path":"/docs/ai-sdk-ui","distance":0.1728},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview","distance":0.1954},{"site":"ai-sdk","path":"/docs/ai-sdk-core","distance":0.2151},{"site":"ai-sdk","path":"/docs/reference","distance":0.2161}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/navigating-the-library","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/authentication","title":"Handling Authentication","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values","distance":0.2998},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc","distance":0.3},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/error-handling","distance":0.3246},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview","distance":0.3311},{"site":"ai-sdk","path":"/docs/advanced/multiple-streamables","distance":0.3458}],"related":[{"site":"nextjs","path":"/docs/app/guides/data-security","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/authentication","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/server-actions","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/error-handling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/multiple-streamables","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/error-handling","title":"Error Handling","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-ui"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values","distance":0.2957},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/error-handling","distance":0.3041},{"site":"ai-sdk","path":"/docs/ai-sdk-core/error-handling","distance":0.3072},{"site":"ai-sdk","path":"/docs/advanced/multiple-streamables","distance":0.3107},{"site":"ai-sdk","path":"/docs/troubleshooting/unclosed-streams","distance":0.322}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/error-handling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/error-handling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/multiple-streamables","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/unclosed-streams","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state","title":"Managing Generative UI State","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/multistep-interfaces"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-ai"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/get-ai-state"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/get-mutable-ai-state"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-actions"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-ai-state"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-ui-state"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/saving-and-restoring-states","distance":0.1391},{"site":"ai-sdk","path":"/cookbook/rsc/save-messages-to-database","distance":0.2131},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview","distance":0.2263},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","distance":0.2274},{"site":"ai-sdk","path":"/cookbook/rsc/restore-messages-from-database","distance":0.2423}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/saving-and-restoring-states","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/save-messages-to-database","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/restore-messages-from-database","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/loading-state","title":"Handling Loading State","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/stream-ui"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","distance":0.2222},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text","distance":0.2332},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-react-components","distance":0.2383},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values","distance":0.2482},{"site":"ai-sdk","path":"/docs/advanced/rendering-ui-with-language-models","distance":0.249}],"related":[{"site":"nextjs","path":"/docs/app/guides/streaming","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-react-components","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/rendering-ui-with-language-models","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui","title":"Migrating from RSC to UI","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/telemetry"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/authentication"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/error-handling"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/loading-state"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/multistep-interfaces"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/saving-and-restoring-states"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-react-components"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values"},{"site":"ai-sdk","path":"/docs/getting-started/navigating-the-library"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-0"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-ai"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-ui"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-value"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/get-ai-state"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/get-mutable-ai-state"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/read-streamable-value"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/render"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/stream-ui"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-actions"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-ai-state"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-streamable-value"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-ui-state"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values","distance":0.2247},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","distance":0.251},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","distance":0.2513},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/loading-state","distance":0.2529},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot","distance":0.2574}],"related":[{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/loading-state","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/multistep-interfaces","title":"Multistep Interfaces","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui"}],"inbound":[{"site":"ai-sdk","path":"/docs/advanced/rendering-ui-with-language-models"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-react-components","distance":0.2355},{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps","distance":0.2403},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","distance":0.2507},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state","distance":0.2534},{"site":"ai-sdk","path":"/docs/advanced/rendering-ui-with-language-models","distance":0.259}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-react-components","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/rendering-ui-with-language-models","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview","title":"Overview","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-ai"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-ui"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-value"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/read-streamable-value"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/stream-ui"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-actions"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-ai-state"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-streamable-value"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-ui-state"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1"},{"site":"ai-sdk","path":"/docs/getting-started/navigating-the-library"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-2"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc","distance":0.1463},{"site":"ai-sdk","path":"/docs/getting-started/navigating-the-library","distance":0.1873},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc","distance":0.1954},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state","distance":0.2263},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values","distance":0.2462}],"related":[{"site":"ai-sdk","path":"/docs/getting-started/navigating-the-library","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/loading-state","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/saving-and-restoring-states","title":"Saving and Restoring States","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-ai"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state","distance":0.1391},{"site":"ai-sdk","path":"/cookbook/rsc/save-messages-to-database","distance":0.2165},{"site":"ai-sdk","path":"/cookbook/rsc/restore-messages-from-database","distance":0.2414},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc","distance":0.2803},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc","distance":0.3036}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/save-messages-to-database","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/restore-messages-from-database","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-react-components","title":"Streaming React Components","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/overview"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/stream-ui"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/advanced/rendering-ui-with-language-models","distance":0.1819},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values","distance":0.2064},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/generative-user-interfaces","distance":0.2335},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/multistep-interfaces","distance":0.2355},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/loading-state","distance":0.2383}],"related":[{"site":"ai-sdk","path":"/docs/advanced/rendering-ui-with-language-models","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/generative-user-interfaces","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/multistep-interfaces","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/loading-state","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values","title":"Streaming Values","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/advanced/multiple-streamables"},{"site":"ai-sdk","path":"/docs/ai-sdk-core"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-ui"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-value"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/advanced/multiple-streamables","distance":0.2044},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-react-components","distance":0.2064},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui","distance":0.2247},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-ui","distance":0.2321},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview","distance":0.2462}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-react-components","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/loading-state","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/rendering-ui-with-language-models","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-ui","title":"AI SDK UI","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/multi-modal-chatbot"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui"},{"site":"ai-sdk","path":"/docs/getting-started/expo"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-router"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-pages-router"},{"site":"ai-sdk","path":"/docs/getting-started/svelte"},{"site":"ai-sdk","path":"/docs/getting-started/tanstack-start"},{"site":"ai-sdk","path":"/docs/introduction"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc","distance":0.1728},{"site":"ai-sdk","path":"/docs/ai-sdk-core","distance":0.1738},{"site":"ai-sdk","path":"/docs/reference","distance":0.1869},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui","distance":0.1872},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc","distance":0.1879}],"related":[{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api","via":"neighbor"},{"site":"chat-sdk","path":"/docs/cards","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot","title":"Chatbot","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-tool-usage"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/error-handling"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/message-metadata"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/transport"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/direct-chat-transport"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/perplexity"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/overview"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/message-metadata"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-5-0"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat"},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-custom-request-options"},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-stale-body-data"},{"site":"ai-sdk","path":"/providers/adapters/langchain"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/amazon-bedrock"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cerebras"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepseek"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google-vertex"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/minimax"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/moonshotai"},{"site":"vercel-kb","path":"/kb/guide/building-ai-chat-app-with-rag-and-citations-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agents-chat-sdk"},{"site":"vercel-kb","path":"/kb/guide/rag-chatbot-production-architecture-on-vercel"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/direct-chat-transport","distance":0.1752},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/transport","distance":0.1787},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","distance":0.2002},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","distance":0.2258},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui","distance":0.2574}],"related":[{"site":"vercel-kb","path":"/kb/guide/building-ai-chat-app-with-rag-and-citations-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agents-chat-sdk","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/rag-chatbot-production-architecture-on-vercel","via":"inbound"},{"site":"workflow","path":"/docs/ai/chat-session-modeling","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/providers/adapters/langchain","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","title":"Chatbot Message Persistence","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-resume-streams"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-id-generator"}],"inbound":[{"site":"ai-sdk","path":"/docs/agents/workflow-agent"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-5-0"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-resume-streams","distance":0.2176},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot","distance":0.2258},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui","distance":0.251},{"site":"workflow","path":"/docs/ai/chat-session-modeling","distance":0.2794},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","distance":0.286}],"related":[{"site":"workflow","path":"/docs/ai/chat-session-modeling","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/resuming-streams","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/real-time-chat-websockets","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-chat-transport","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/direct-chat-transport","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-resume-streams","title":"Chatbot Resume Streams","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/troubleshooting/abort-breaks-resumable-streams"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence"},{"site":"ai-sdk","path":"/docs/troubleshooting/abort-breaks-resumable-streams"},{"site":"vercel-kb","path":"/kb/guide/publish-and-subscribe-to-realtime-data-on-vercel"},{"site":"workflow","path":"/docs/ai/resumable-streams"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/abort-breaks-resumable-streams","distance":0.1501},{"site":"v0","path":"/docs/api/v2/guides/resuming-streams","distance":0.2119},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","distance":0.2176},{"site":"workflow","path":"/docs/ai/resumable-streams","distance":0.2179},{"site":"ai-sdk","path":"/docs/advanced/stopping-streams","distance":0.2412}],"related":[{"site":"vercel-kb","path":"/kb/guide/publish-and-subscribe-to-realtime-data-on-vercel","via":"inbound"},{"site":"workflow","path":"/docs/ai/resumable-streams","via":"inbound"},{"site":"v0","path":"/docs/api/v2/guides/resuming-streams","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/resume-chat-stream","via":"neighbor"},{"site":"workflow","path":"/docs/ai/chat-session-modeling","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/streaming","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-ai/workflow-chat-transport","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/resume","via":"neighbor"},{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/stopping-streams","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-chat-transport","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-tool-usage","title":"Chatbot Tool Usage","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/agents/tool-approvals"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/next/human-in-the-loop"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-6-0"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat"},{"site":"ai-sdk","path":"/docs/troubleshooting/ontoolcall-type-narrowing"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/agents/tool-approvals","distance":0.1694},{"site":"ai-sdk","path":"/cookbook/next/human-in-the-loop","distance":0.1777},{"site":"ai-sdk","path":"/cookbook/next/render-visual-interface-in-chat","distance":0.1995},{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps","distance":0.2263},{"site":"ai-sdk","path":"/cookbook/next/call-tools","distance":0.2359}],"related":[{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/human-in-the-loop","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/render-visual-interface-in-chat","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/call-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-router","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/completion","title":"Completion","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/overview"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview"},{"site":"ai-sdk","path":"/providers/adapters/llamaindex"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-completion","distance":0.1712},{"site":"ai-sdk","path":"/cookbook/next/mcp-tools","distance":0.263},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot","distance":0.2646},{"site":"ai-sdk","path":"/cookbook/next/stream-text","distance":0.2696},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","distance":0.2997}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-completion","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/chat-completions","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/mcp-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/error-handling","title":"Error Handling","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-completion"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot","distance":0.2897},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/error-handling","distance":0.3041},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","distance":0.3134},{"site":"ai-sdk","path":"/cookbook/next/call-tools","distance":0.3145},{"site":"ai-sdk","path":"/cookbook/rsc/save-messages-to-database","distance":0.3196}],"related":[{"site":"chat-sdk","path":"/docs/error-handling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/error-handling","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/call-tools","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/save-messages-to-database","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/generative-user-interfaces","title":"Generative User Interfaces","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/getting-started/expo","distance":0.1513},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-router","distance":0.1583},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-pages-router","distance":0.1677},{"site":"ai-sdk","path":"/docs/getting-started/svelte","distance":0.183},{"site":"ai-sdk","path":"/cookbook/next/render-visual-interface-in-chat","distance":0.1857}],"related":[{"site":"ai-sdk","path":"/docs/getting-started/expo","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-router","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-pages-router","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/svelte","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/render-visual-interface-in-chat","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/message-metadata","title":"Message Metadata","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/streaming-data"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/ui-message"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/streaming-data"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/streaming-data","distance":0.2323},{"site":"chat-sdk","path":"/docs/api/message","distance":0.3263},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/ui-message","distance":0.3382},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/convert-to-model-messages","distance":0.3704},{"site":"chat-sdk","path":"/docs/ai/to-ai-messages","distance":0.3951}],"related":[{"site":"chat-sdk","path":"/docs/api/message","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/to-ai-messages","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/postable-message","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/messages","via":"neighbor"},{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/update","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/convert-to-model-messages","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/reading-ui-message-streams","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/track-agent-token-usage","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/object-generation","title":"Object Generation","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-object"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/overview"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/next/stream-object","distance":0.1131},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-object","distance":0.1836},{"site":"ai-sdk","path":"/cookbook/rsc/generate-object","distance":0.2106},{"site":"ai-sdk","path":"/cookbook/next/generate-object","distance":0.2217},{"site":"ai-sdk","path":"/cookbook/rsc/stream-object","distance":0.2272}],"related":[{"site":"ai-sdk","path":"/cookbook/next/stream-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/generate-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-object","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview","title":"Overview","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-apps"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/completion"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/object-generation"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-completion"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-object"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/claude-4"},{"site":"ai-sdk","path":"/cookbook/guides/deepseek-v3-2"},{"site":"ai-sdk","path":"/cookbook/guides/gemini"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5"},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1"},{"site":"ai-sdk","path":"/cookbook/guides/o1"},{"site":"ai-sdk","path":"/cookbook/guides/o3"},{"site":"ai-sdk","path":"/cookbook/guides/r1"},{"site":"ai-sdk","path":"/cookbook/guides/sonnet-3-7"},{"site":"ai-sdk","path":"/docs/getting-started"},{"site":"ai-sdk","path":"/docs/getting-started/navigating-the-library"},{"site":"ai-sdk","path":"/docs/getting-started/nuxt"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui","distance":0.0615},{"site":"ai-sdk","path":"/docs/getting-started/navigating-the-library","distance":0.2217},{"site":"ai-sdk","path":"/docs/ai-sdk-ui","distance":0.241},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.2539},{"site":"vercel-docs","path":"/docs/ai-sdk","distance":0.2745}],"related":[{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"chat-sdk","path":"/docs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-ai-sdk-vs-tanstack-ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/navigating-the-library","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/o1","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/o3","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/reading-ui-message-streams","title":"Reading UIMessage Streams","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/read-ui-message-stream"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/read-ui-message-stream","distance":0.1999},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream","distance":0.2334},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","distance":0.2483},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream","distance":0.2625},{"site":"ai-sdk","path":"/cookbook/next/stream-text-multistep","distance":0.2809}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/read-ui-message-stream","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text-multistep","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","title":"Stream Protocols","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/testing"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-5-0"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/streaming-data","distance":0.2261},{"site":"ai-sdk","path":"/cookbook/next/stream-text-multistep","distance":0.2336},{"site":"ai-sdk","path":"/cookbook/next/custom-stream-format","distance":0.2431},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/reading-ui-message-streams","distance":0.2483},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui","distance":0.2513}],"related":[{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-streaming","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/streaming-data","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text-multistep","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/custom-stream-format","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/reading-ui-message-streams","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/streaming-data","title":"Streaming Custom Data","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/message-metadata"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/message-metadata"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-5-0"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/pipe-ui-message-stream-to-response"},{"site":"vercel-kb","path":"/kb/guide/building-ai-chat-app-with-rag-and-citations-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/rag-chatbot-production-architecture-on-vercel"},{"site":"workflow","path":"/docs/ai/streaming-updates-from-tools"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","distance":0.2261},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/message-metadata","distance":0.2323},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/convert-to-model-messages","distance":0.2672},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui","distance":0.3087},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/reading-ui-message-streams","distance":0.3197}],"related":[{"site":"vercel-kb","path":"/kb/guide/building-ai-chat-app-with-rag-and-citations-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/rag-chatbot-production-architecture-on-vercel","via":"inbound"},{"site":"workflow","path":"/docs/ai/streaming-updates-from-tools","via":"inbound"},{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/postable-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-streaming","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/convert-to-model-messages","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/reading-ui-message-streams","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/custom-stream-format","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/transport","title":"Transport","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/agents/workflow-agent"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/direct-chat-transport"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-chat-transport"}],"inbound":[{"site":"ai-sdk","path":"/docs/agents/workflow-agent"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-5-0"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-chat-transport"},{"site":"workflow","path":"/docs/api-reference/workflow-ai/workflow-chat-transport"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/direct-chat-transport","distance":0.158},{"site":"workflow","path":"/docs/api-reference/workflow-ai/workflow-chat-transport","distance":0.1633},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot","distance":0.1787},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-chat-transport","distance":0.1991},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","distance":0.2783}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-ai/workflow-chat-transport","via":"inbound"},{"site":"workflow","path":"/docs/ai/resumable-streams","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"workflow","path":"/docs/ai/chat-session-modeling","via":"neighbor"},{"site":"chat-sdk","path":"/docs/usage","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","via":"neighbor"},{"site":"ai-sdk","path":"/providers/adapters/langchain","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/foundations","title":"Foundations","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core","distance":0.1862},{"site":"ai-sdk","path":"/docs/reference","distance":0.2124},{"site":"ai-sdk","path":"/docs/ai-sdk-ui","distance":0.2469},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc","distance":0.2783},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core","distance":0.3215}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-core","via":"neighbor"},{"site":"workflow","path":"/docs/foundations","via":"neighbor"},{"site":"chat-sdk","path":"/docs/cards","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/cards","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/foundations/overview","title":"Overview","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"},{"site":"ai-sdk","path":"/docs/getting-started"}],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/prompts"},{"site":"ai-sdk","path":"/docs/foundations/streaming"},{"site":"ai-sdk","path":"/docs/foundations/tools"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/overview","distance":0.2601},{"site":"ai-sdk","path":"/docs/introduction","distance":0.2678},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2975},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","distance":0.3055},{"site":"vercel-docs","path":"/docs/ai-sdk","distance":0.3251}],"related":[{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-ai-sdk-vs-tanstack-ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/introduction","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/foundations/prompts","title":"Prompts","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/foundations/overview"},{"site":"ai-sdk","path":"/docs/foundations/tools"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/model-message"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/convert-to-model-messages"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/computer-use"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/overview"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/settings"},{"site":"ai-sdk","path":"/docs/foundations/provider-options"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-data-content-error"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google-vertex"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-file-uploads"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/model-message","distance":0.2592},{"site":"ai-sdk","path":"/providers/community-providers/custom-providers","distance":0.2663},{"site":"ai-sdk","path":"/docs/ai-sdk-core/settings","distance":0.2782},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text","distance":0.2791},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text","distance":0.2814}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-file-uploads","via":"inbound"},{"site":"ai-sdk","path":"/providers/community-providers/custom-providers","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/settings","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/prompt-engineering","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/azure","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/foundations/provider-options","title":"Provider Options","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/settings"},{"site":"ai-sdk","path":"/docs/foundations/prompts"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","distance":0.1869},{"site":"ai-sdk","path":"/docs/ai-sdk-core/reasoning","distance":0.2079},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/advanced","distance":0.2227},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","distance":0.2281},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning","distance":0.2313}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/advanced","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/reasoning","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/advanced","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/reasoning","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/open-responses","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","title":"Providers and Models","summary":null,"outbound":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/amazon-bedrock"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/assemblyai"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/azure"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/baseten"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cerebras"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cohere"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepseek"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fireworks"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/gladia"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google-vertex"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/groq"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/hume"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/lmnt"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/mistral"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/perplexity"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/revai"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/xai"},{"site":"ai-sdk","path":"/providers/community-providers/a2a"},{"site":"ai-sdk","path":"/providers/community-providers/acp"},{"site":"ai-sdk","path":"/providers/community-providers/aihubmix"},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi"},{"site":"ai-sdk","path":"/providers/community-providers/anthropic-vertex-ai"},{"site":"ai-sdk","path":"/providers/community-providers/apertis"},{"site":"ai-sdk","path":"/providers/community-providers/browser-ai"},{"site":"ai-sdk","path":"/providers/community-providers/claude-code"},{"site":"ai-sdk","path":"/providers/community-providers/cloudflare-workers-ai"},{"site":"ai-sdk","path":"/providers/community-providers/codex-cli"},{"site":"ai-sdk","path":"/providers/community-providers/crosshatch"},{"site":"ai-sdk","path":"/providers/community-providers/crusoe"},{"site":"ai-sdk","path":"/providers/community-providers/custom-providers"},{"site":"ai-sdk","path":"/providers/community-providers/dify"},{"site":"ai-sdk","path":"/providers/community-providers/friendliai"},{"site":"ai-sdk","path":"/providers/community-providers/gemini-cli"},{"site":"ai-sdk","path":"/providers/community-providers/hindsight"},{"site":"ai-sdk","path":"/providers/community-providers/interfaze"},{"site":"ai-sdk","path":"/providers/community-providers/langdb"},{"site":"ai-sdk","path":"/providers/community-providers/letta"},{"site":"ai-sdk","path":"/providers/community-providers/mcp-sampling"},{"site":"ai-sdk","path":"/providers/community-providers/mem0"},{"site":"ai-sdk","path":"/providers/community-providers/mixedbread"},{"site":"ai-sdk","path":"/providers/community-providers/neon-ai-gateway"},{"site":"ai-sdk","path":"/providers/community-providers/ollama"},{"site":"ai-sdk","path":"/providers/community-providers/ollm"},{"site":"ai-sdk","path":"/providers/community-providers/opencode-sdk"},{"site":"ai-sdk","path":"/providers/community-providers/openrouter"},{"site":"ai-sdk","path":"/providers/community-providers/portkey"},{"site":"ai-sdk","path":"/providers/community-providers/requesty"},{"site":"ai-sdk","path":"/providers/community-providers/sap-ai"},{"site":"ai-sdk","path":"/providers/community-providers/sarvam"},{"site":"ai-sdk","path":"/providers/community-providers/soniox"},{"site":"ai-sdk","path":"/providers/community-providers/spark"},{"site":"ai-sdk","path":"/providers/community-providers/supermemory"},{"site":"ai-sdk","path":"/providers/community-providers/voyage-ai"},{"site":"ai-sdk","path":"/providers/community-providers/zeroentropy"},{"site":"ai-sdk","path":"/providers/community-providers/zhipu"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/heroku"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/lmstudio"}],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/overview"},{"site":"ai-sdk","path":"/docs/introduction"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-0"},{"site":"eve","path":"/docs/guides/deployment/self-hosting"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-file-uploads"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers","distance":0.1027},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.2398},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","distance":0.2509},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/xai","distance":0.2671},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","distance":0.2755}],"related":[{"site":"eve","path":"/docs/guides/deployment/self-hosting","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-file-uploads","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/foundations/streaming","title":"Streaming","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/foundations/overview"},{"site":"ai-sdk","path":"/docs/getting-started"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"}],"inbound":[{"site":"ai-sdk","path":"/docs/getting-started/expo"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-router"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-pages-router"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs"},{"site":"ai-sdk","path":"/docs/getting-started/nuxt"},{"site":"ai-sdk","path":"/docs/getting-started/svelte"},{"site":"ai-sdk","path":"/docs/getting-started/tanstack-start"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-h3-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-koa-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nestjs-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-chat-prompt","distance":0.2835},{"site":"vercel-kb","path":"/kb/guide/streaming-from-llm","distance":0.2948},{"site":"vercel-kb","path":"/kb/guide/what-is-streaming","distance":0.3186},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text-with-chat-prompt","distance":0.321},{"site":"ai-sdk","path":"/docs/advanced/rendering-ui-with-language-models","distance":0.3229}],"related":[{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ship-a-h3-app-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ship-a-koa-app-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nestjs-app-on-vercel","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/streaming","via":"neighbor"},{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/rendering-ui-with-language-models","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/testing","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/foundations/tools","title":"Tools","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/agents"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"},{"site":"ai-sdk","path":"/docs/foundations/overview"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/json-schema"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/valibot-schema"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/zod-schema"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/o1"},{"site":"ai-sdk","path":"/cookbook/guides/rag-chatbot"},{"site":"ai-sdk","path":"/docs/agents/memory"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/tools"},{"site":"ai-sdk","path":"/docs/foundations/prompts"},{"site":"vercel-kb","path":"/kb/guide/what-is-an-llm-tool"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/what-is-an-llm-tool","distance":0.1818},{"site":"v0","path":"/docs/api/v1/packages/ai-tools","distance":0.1925},{"site":"eve","path":"/docs/tools","distance":0.1988},{"site":"v0","path":"/docs/api/v1/examples/ai-tools","distance":0.2018},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","distance":0.2023}],"related":[{"site":"vercel-kb","path":"/kb/guide/what-is-an-llm-tool","via":"inbound"},{"site":"v0","path":"/docs/api/v1/packages/ai-tools","via":"neighbor"},{"site":"eve","path":"/docs/tools","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/examples/ai-tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/coding-agents","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/web-search-agent","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/getting-started","title":"Getting Started","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/overview"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview"}],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/overview"},{"site":"ai-sdk","path":"/docs/foundations/streaming"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui","distance":0.3037},{"site":"ai-sdk","path":"/cookbook/guides","distance":0.3063},{"site":"ai-sdk","path":"/docs/ai-sdk-core","distance":0.3068},{"site":"ai-sdk","path":"/docs/reference","distance":0.311},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui","distance":0.3226}],"related":[{"site":"workflow","path":"/docs/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","title":"Choosing a Provider","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway"},{"site":"ai-sdk","path":"/providers/community-providers"},{"site":"ai-sdk","path":"/providers/community-providers/custom-providers"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","distance":0.1821},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","distance":0.2119},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","distance":0.2168},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","distance":0.2177},{"site":"ai-sdk","path":"/docs/foundations/provider-options","distance":0.233}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/provider-options","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/apertis","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/cloudflare-ai-gateway","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/getting-started/coding-agents","title":"Coding Agents","summary":null,"outbound":[{"site":"ai-sdk","path":"/cookbook/guides/agent-skills"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/devtools"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/telemetry"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/getting-started/nodejs","distance":0.2251},{"site":"v0","path":"/docs/api/v1/examples/ai-tools","distance":0.2354},{"site":"nextjs","path":"/docs/app/guides/ai-agents","distance":0.2361},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk","distance":0.2368},{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.2429}],"related":[{"site":"v0","path":"/docs/api/v1/examples/ai-tools","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/ai-agents","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/packages/ai-tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/adapters/ai-tools","via":"neighbor"},{"site":"workflow","path":"/docs/ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/building-agents","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/deepseek-v3-2","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/getting-started/expo","title":"Expo","summary":null,"outbound":[{"site":"ai-sdk","path":"/cookbook/guides/multi-modal-chatbot"},{"site":"ai-sdk","path":"/cookbook/guides/rag-chatbot"},{"site":"ai-sdk","path":"/docs/advanced/prompt-engineering"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/settings"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui"},{"site":"ai-sdk","path":"/docs/foundations/streaming"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway"},{"site":"ai-sdk","path":"/providers/community-providers"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers"}],"inbound":[{"site":"ai-sdk","path":"/providers/community-providers/react-native-apple"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-router","distance":0.0866},{"site":"ai-sdk","path":"/docs/getting-started/tanstack-start","distance":0.1109},{"site":"ai-sdk","path":"/docs/getting-started/nuxt","distance":0.1125},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-pages-router","distance":0.1145},{"site":"ai-sdk","path":"/docs/getting-started/svelte","distance":0.1184}],"related":[{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-router","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-ai-agent-weather-api","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/tanstack-start","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nuxt","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-pages-router","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/svelte","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/getting-started/navigating-the-library","title":"Navigating the Library","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-apps"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/overview"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-ui"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-value"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/stream-ui"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-completion"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-object"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview","distance":0.1873},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui","distance":0.2051},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview","distance":0.2217},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc","distance":0.2396},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-1","distance":0.263}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-ai-sdk-vs-tanstack-ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-1","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-router","title":"Next.js App Router","summary":null,"outbound":[{"site":"ai-sdk","path":"/cookbook/guides/multi-modal-chatbot"},{"site":"ai-sdk","path":"/cookbook/guides/rag-chatbot"},{"site":"ai-sdk","path":"/docs/advanced/prompt-engineering"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/settings"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui"},{"site":"ai-sdk","path":"/docs/foundations/streaming"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-pages-router"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway"},{"site":"ai-sdk","path":"/providers/community-providers"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers"}],"inbound":[{"site":"ai-sdk","path":"/docs/getting-started/nextjs-pages-router"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/getting-started/nextjs-pages-router","distance":0.034},{"site":"ai-sdk","path":"/docs/getting-started/nuxt","distance":0.0479},{"site":"ai-sdk","path":"/docs/getting-started/svelte","distance":0.0634},{"site":"ai-sdk","path":"/docs/getting-started/tanstack-start","distance":0.0778},{"site":"ai-sdk","path":"/docs/getting-started/expo","distance":0.0866}],"related":[{"site":"ai-sdk","path":"/docs/getting-started/nuxt","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/svelte","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/tanstack-start","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/expo","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/generative-user-interfaces","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-pages-router","title":"Next.js Pages Router","summary":null,"outbound":[{"site":"ai-sdk","path":"/cookbook/guides/multi-modal-chatbot"},{"site":"ai-sdk","path":"/cookbook/guides/rag-chatbot"},{"site":"ai-sdk","path":"/docs/advanced/prompt-engineering"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/settings"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui"},{"site":"ai-sdk","path":"/docs/foundations/streaming"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-router"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway"},{"site":"ai-sdk","path":"/providers/community-providers"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/multi-modal-chatbot"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-router"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-router","distance":0.034},{"site":"ai-sdk","path":"/docs/getting-started/svelte","distance":0.0669},{"site":"ai-sdk","path":"/docs/getting-started/nuxt","distance":0.0682},{"site":"ai-sdk","path":"/docs/getting-started/tanstack-start","distance":0.1062},{"site":"ai-sdk","path":"/docs/getting-started/expo","distance":0.1145}],"related":[{"site":"ai-sdk","path":"/docs/getting-started/svelte","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nuxt","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/tanstack-start","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/expo","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/generative-user-interfaces","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","title":"Node.js","summary":null,"outbound":[{"site":"ai-sdk","path":"/cookbook/guides/multi-modal-chatbot"},{"site":"ai-sdk","path":"/cookbook/guides/rag-chatbot"},{"site":"ai-sdk","path":"/docs/advanced/prompt-engineering"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"},{"site":"ai-sdk","path":"/docs/foundations/streaming"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers"},{"site":"ai-sdk","path":"/providers/community-providers"},{"site":"ai-sdk","path":"/providers/community-providers/custom-providers"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/build-ai-agent-weather-api","distance":0.1475},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk","distance":0.1808},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.1865},{"site":"ai-sdk","path":"/cookbook/guides/multi-modal-chatbot","distance":0.1934},{"site":"ai-sdk","path":"/docs/getting-started/expo","distance":0.1937}],"related":[{"site":"vercel-kb","path":"/kb/guide/build-ai-agent-weather-api","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-an-llm-tool","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/examples/ai-tools","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/expo","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/openai-responses","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/getting-started/nuxt","title":"Vue.js (Nuxt)","summary":null,"outbound":[{"site":"ai-sdk","path":"/cookbook/guides/multi-modal-chatbot"},{"site":"ai-sdk","path":"/cookbook/guides/rag-chatbot"},{"site":"ai-sdk","path":"/docs/advanced/prompt-engineering"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/settings"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview"},{"site":"ai-sdk","path":"/docs/foundations/streaming"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers"},{"site":"ai-sdk","path":"/providers/community-providers"},{"site":"ai-sdk","path":"/providers/community-providers/custom-providers"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-router","distance":0.0479},{"site":"ai-sdk","path":"/docs/getting-started/svelte","distance":0.0619},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-pages-router","distance":0.0682},{"site":"ai-sdk","path":"/docs/getting-started/tanstack-start","distance":0.1028},{"site":"ai-sdk","path":"/docs/getting-started/expo","distance":0.1125}],"related":[{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-router","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/svelte","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-pages-router","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/tanstack-start","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/expo","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/getting-started/svelte","title":"Svelte","summary":null,"outbound":[{"site":"ai-sdk","path":"/cookbook/guides/multi-modal-chatbot"},{"site":"ai-sdk","path":"/cookbook/guides/rag-chatbot"},{"site":"ai-sdk","path":"/docs/advanced/prompt-engineering"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/settings"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui"},{"site":"ai-sdk","path":"/docs/foundations/streaming"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway"},{"site":"ai-sdk","path":"/providers/community-providers"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/getting-started/nuxt","distance":0.0619},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-router","distance":0.0634},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-pages-router","distance":0.0669},{"site":"ai-sdk","path":"/docs/getting-started/tanstack-start","distance":0.097},{"site":"ai-sdk","path":"/docs/getting-started/expo","distance":0.1184}],"related":[{"site":"ai-sdk","path":"/docs/getting-started/nuxt","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-router","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-pages-router","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/tanstack-start","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/expo","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/getting-started/tanstack-start","title":"TanStack Start","summary":null,"outbound":[{"site":"ai-sdk","path":"/cookbook/guides/multi-modal-chatbot"},{"site":"ai-sdk","path":"/cookbook/guides/rag-chatbot"},{"site":"ai-sdk","path":"/docs/advanced/prompt-engineering"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/settings"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui"},{"site":"ai-sdk","path":"/docs/foundations/streaming"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway"},{"site":"ai-sdk","path":"/providers/community-providers"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-router","distance":0.0778},{"site":"ai-sdk","path":"/docs/getting-started/svelte","distance":0.097},{"site":"ai-sdk","path":"/docs/getting-started/nuxt","distance":0.1028},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-pages-router","distance":0.1062},{"site":"ai-sdk","path":"/docs/getting-started/expo","distance":0.1109}],"related":[{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-router","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/svelte","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nuxt","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-pages-router","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/expo","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/introduction","title":"AI SDK by Vercel","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"inbound":[{"site":"ai-sdk","path":"/providers/community-providers/mem0"},{"site":"vercel-kb","path":"/kb/guide/building-community-moderation-agents-using-ai-sdk"},{"site":"vercel-kb","path":"/kb/guide/cost-aware-model-routing-with-ai-gateway"},{"site":"vercel-kb","path":"/kb/guide/vercel-ai-sdk-vs-tanstack-ai"},{"site":"vercel-kb","path":"/kb/guide/vercel-docker-python-apps"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-sdk","distance":0.1902},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","distance":0.1985},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","distance":0.2342},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.2398},{"site":"ai-sdk","path":"/docs/ai-sdk-core/overview","distance":0.252}],"related":[{"site":"vercel-kb","path":"/kb/guide/building-community-moderation-agents-using-ai-sdk","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/cost-aware-model-routing-with-ai-gateway","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-ai-sdk-vs-tanstack-ai","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-docker-python-apps","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-a-large-language-model","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/o1","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/openai-responses","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/claude-4","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/migration-guides","title":"Migration Guides","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-1"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-2"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-3"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-4"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-0"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-1"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-2"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-5-0"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-5-0-data"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-6-0"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-7-0"},{"site":"ai-sdk","path":"/docs/migration-guides/versioning"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-4","distance":0.352},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-1","distance":0.3526},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-2","distance":0.3584},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-2","distance":0.3722},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","distance":0.3955}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-ai-sdk-vs-tanstack-ai","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/packages/ai-tools","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-1","title":"Migrate AI SDK 3.0 to 3.1","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/render"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/stream-ui"},{"site":"ai-sdk","path":"/providers/community-providers/custom-providers"}],"inbound":[{"site":"ai-sdk","path":"/docs/migration-guides"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui","distance":0.2628},{"site":"ai-sdk","path":"/docs/getting-started/navigating-the-library","distance":0.263},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-2","distance":0.2799},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-react-components","distance":0.2852},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","distance":0.2858}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/navigating-the-library","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-2","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-react-components","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-2","title":"Migrate AI SDK 3.1 to 3.2","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-id"}],"inbound":[{"site":"ai-sdk","path":"/docs/migration-guides"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-3","distance":0.2377},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-1","distance":0.2799},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-4","distance":0.2919},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-2","distance":0.3053},{"site":"ai-sdk","path":"/docs/getting-started/navigating-the-library","distance":0.3516}],"related":[{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-3","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-1","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-4","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-2","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/navigating-the-library","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-3","title":"Migrate AI SDK 3.2 to 3.3","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/overview"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/telemetry"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/amazon-bedrock"}],"inbound":[{"site":"ai-sdk","path":"/docs/migration-guides"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-2","distance":0.2377},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-4","distance":0.2698},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-1","distance":0.2878},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-2","distance":0.3014},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-0","distance":0.3224}],"related":[{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-ai-sdk-vs-tanstack-ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-2","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-4","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/o3","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/deepseek-v3-2","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-4","title":"Migrate AI SDK 3.3 to 3.4","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/migration-guides"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-0"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-1","distance":0.1176},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-3","distance":0.2698},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-2","distance":0.2919},{"site":"ai-sdk","path":"/docs/migration-guides","distance":0.352},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-2","distance":0.3757}],"related":[{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-1","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-3","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-2","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-2","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk-python","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/versioning","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-0","title":"Migrate AI SDK 3.4 to 4.0","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-4"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-id"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"}],"inbound":[{"site":"ai-sdk","path":"/docs/migration-guides"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-6-0","distance":0.1914},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-7-0","distance":0.2151},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui","distance":0.2784},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-5-0","distance":0.2973},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text","distance":0.3022}],"related":[{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-6-0","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-7-0","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-5-0","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-1","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-1","title":"Migrate AI SDK 4.0 to 4.1","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/migration-guides"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-4","distance":0.1176},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-2","distance":0.3225},{"site":"ai-sdk","path":"/docs/migration-guides","distance":0.3526},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-3","distance":0.3815},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-2","distance":0.3822}],"related":[{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-4","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-2","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk-python","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-3","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/versioning","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/unsupported-model-version","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-2","title":"Migrate AI SDK 4.1 to 4.2","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/migration-guides"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-1","distance":0.2883},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-3","distance":0.3014},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-2","distance":0.3053},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-1","distance":0.3225},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-0","distance":0.3362}],"related":[{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/to-ai-messages","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/durableagent-to-workflowagent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-1","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-3","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-2","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-5-0","title":"Migrate AI SDK 4.x to 5.0","summary":null,"outbound":[{"site":"ai-sdk","path":"/cookbook/guides/openai-responses"},{"site":"ai-sdk","path":"/cookbook/next/use-shared-chat-context"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/streaming-data"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/transport"},{"site":"ai-sdk","path":"/docs/troubleshooting/typescript-performance-zod"}],"inbound":[{"site":"ai-sdk","path":"/docs/migration-guides"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-5-0-data"},{"site":"ai-sdk","path":"/docs/troubleshooting/unsupported-model-version"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-6-0","distance":0.2187},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/dynamic-tool","distance":0.2322},{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","distance":0.2652},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/convert-to-model-messages","distance":0.2742},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","distance":0.2901}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-6-0","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/dynamic-tool","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/convert-to-model-messages","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-0","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-5-0-data","title":"Migrate Your Data to AI SDK 5.0","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-5-0"}],"inbound":[{"site":"ai-sdk","path":"/docs/migration-guides"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/durableagent-to-workflowagent","distance":0.4001},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-2","distance":0.4168},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-7-0","distance":0.4303},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui","distance":0.4369},{"site":"ai-sdk","path":"/docs/getting-started/tanstack-start","distance":0.4448}],"related":[{"site":"vercel-kb","path":"/kb/guide/durableagent-to-workflowagent","via":"neighbor"},{"site":"vercel-docs","path":"/docs/incremental-migration","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/migrating-from-v1-to-v2","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agent-vercel","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-2","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-7-0","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/tanstack-start","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/custom-providers","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-6-0","title":"Migrate AI SDK 5.x to 6.0","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/agents/building-agents"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-tool-usage"}],"inbound":[{"site":"ai-sdk","path":"/docs/migration-guides"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-0","distance":0.1914},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-5-0","distance":0.2187},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-7-0","distance":0.2249},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai","distance":0.2877},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic","distance":0.3}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"inbound"},{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/types","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-0","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-5-0","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-7-0","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-7-0","title":"Migrate AI SDK 6.x to 7.0","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/migration-guides"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-0","distance":0.2151},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-6-0","distance":0.2249},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","distance":0.3095},{"site":"ai-sdk","path":"/docs/foundations/prompts","distance":0.3167},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-5-0","distance":0.3327}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/durableagent-to-workflowagent","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-0","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-6-0","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/prompts","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/migration-guides/versioning","title":"Versioning","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/migration-guides"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/migration-guides","distance":0.4192},{"site":"turborepo","path":"/docs/support-policy","distance":0.4599},{"site":"v0","path":"/docs/versions","distance":0.4693},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-2","distance":0.4695},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-3","distance":0.4766}],"related":[{"site":"turborepo","path":"/docs/support-policy","via":"neighbor"},{"site":"v0","path":"/docs/versions","via":"neighbor"},{"site":"v0","path":"/docs/api/v1","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/update-version","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","via":"neighbor"},{"site":"chat-sdk","path":"/docs/contributing/publishing","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-version","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/migrating-from-v1-to-v2","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-2","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference","title":"Reference","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui","distance":0.1869},{"site":"ai-sdk","path":"/docs/ai-sdk-core","distance":0.1886},{"site":"ai-sdk","path":"/docs/foundations","distance":0.2124},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc","distance":0.2161},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc","distance":0.2191}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core","via":"neighbor"},{"site":"chat-sdk","path":"/docs/cards","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core","title":"AI SDK Core","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/overview"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core","distance":0.1315},{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.2504},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","distance":0.2869},{"site":"ai-sdk","path":"/docs/ai-sdk-ui","distance":0.2915},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/xai","distance":0.2948}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/packages/ai-tools","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/xai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-agent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/add-tool-input-examples-middleware","title":"addToolInputExamplesMiddleware","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","distance":0.2633},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/language-model-v2-middleware","distance":0.375},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool","distance":0.4008},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","distance":0.4039},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/extract-json-middleware","distance":0.406}],"related":[{"site":"vercel-kb","path":"/kb/guide/what-is-an-llm-tool","via":"neighbor"},{"site":"eve","path":"/docs/tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/language-model-v2-middleware","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/extract-json-middleware","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent","title":"Agent (Interface)","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream-response"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/pipe-agent-ui-stream-to-response"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool-loop-agent"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/transport"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream-response"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/pipe-agent-ui-stream-to-response"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/direct-chat-transport"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/agents/building-agents","distance":0.1702},{"site":"ai-sdk","path":"/docs/agents/configuring-call-options","distance":0.2146},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-agent","distance":0.2187},{"site":"ai-sdk","path":"/docs/agents/overview","distance":0.2198},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream","distance":0.2223}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/building-agents","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/configuring-call-options","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-agent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/subagents","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/cosine-similarity","title":"cosineSimilarity","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","distance":0.4841},{"site":"ai-sdk","path":"/cookbook/node/embed-text","distance":0.5051},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/embed-many","distance":0.5245},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/embed","distance":0.5344},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/embeddings","distance":0.5612}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/embeddings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/embeddings","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/understanding-vector-databases-for-ai-apps","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/embed-text","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/embed-many","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/embed","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/embed-text-batch","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream","title":"createAgentUIStream","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream-response"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/pipe-agent-ui-stream-to-response"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool-loop-agent"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/ui-message"}],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream-response"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream-response","distance":0.0904},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/pipe-agent-ui-stream-to-response","distance":0.1876},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent","distance":0.2223},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream","distance":0.2479},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/reading-ui-message-streams","distance":0.2625}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/reading-ui-message-streams","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-agent","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/custom-stream-format","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/subagents","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream-response","title":"createAgentUIStreamResponse","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool-loop-agent"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/ui-message"}],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/pipe-agent-ui-stream-to-response"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream","distance":0.0904},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/pipe-agent-ui-stream-to-response","distance":0.1356},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent","distance":0.2435},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream-response","distance":0.2592},{"site":"ai-sdk","path":"/cookbook/next/custom-stream-format","distance":0.262}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/pipe-agent-ui-stream-to-response","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream-response","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/custom-stream-format","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-agent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-id-generator","title":"createIdGenerator","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-id"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-id"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-id","distance":0.2057},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-image","distance":0.4711},{"site":"ai-sdk","path":"/docs/advanced/sequential-generations","distance":0.5013},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-speech","distance":0.5095},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/generateBuildId","distance":0.5101}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/generateBuildId","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/generateBuildId","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-image-metadata","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-image","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","via":"inbound"},{"site":"ai-sdk","path":"/docs/advanced/sequential-generations","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-speech","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-mcp-client","title":"createMCPClient","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/mcp-apps"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-tools","distance":0.2245},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/mcp-apps","distance":0.2771},{"site":"ai-sdk","path":"/cookbook/next/mcp-tools","distance":0.3331},{"site":"ai-sdk","path":"/cookbook/node/mcp-tools","distance":0.3333},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/mcp-app-renderer","distance":0.3344}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-mcp-server-with-nuxt","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-mcp-apps","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/mcp-apps","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/mcp-tools","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/mcp-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/mcp-app-renderer","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/custom-provider","title":"customProvider","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/provider-registry","distance":0.2435},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","distance":0.246},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","distance":0.248},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.303},{"site":"ai-sdk","path":"/providers/openai-compatible-providers","distance":0.3139}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/advanced","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/provider-registry","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/default-generated-file","title":"DefaultGeneratedFile","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-image","distance":0.478},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-speech","distance":0.4916},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-video","distance":0.497},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/upload-file","distance":0.5143},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-id-generator","distance":0.5146}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-image-metadata","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-image","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-speech","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-video","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/upload-file","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-id-generator","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/default-instructions-middleware","title":"defaultInstructionsMiddleware","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware"}],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/default-settings-middleware"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/default-settings-middleware","distance":0.1889},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/language-model-v2-middleware","distance":0.3326},{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","distance":0.3584},{"site":"eve","path":"/docs/instructions","distance":0.4004},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/wrap-language-model","distance":0.4232}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/default-settings-middleware","via":"neighbor"},{"site":"eve","path":"/docs/instructions","via":"neighbor"},{"site":"v0","path":"/docs/instructions","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/language-model-v2-middleware","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/wrap-language-model","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/prompts","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-7-0","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/default-settings-middleware","title":"defaultSettingsMiddleware","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/default-instructions-middleware"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/default-instructions-middleware","distance":0.1889},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/language-model-v2-middleware","distance":0.324},{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","distance":0.3518},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/simulate-streaming-middleware","distance":0.3943},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/wrap-language-model","distance":0.4}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/language-model-v2-middleware","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/default","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/modify-request-headers","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/simulate-streaming-middleware","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/wrap-language-model","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/add-tool-input-examples-middleware","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/dynamic-tool","title":"dynamicTool","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/troubleshooting/ontoolcall-type-narrowing"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-5-0","distance":0.2322},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool","distance":0.2374},{"site":"ai-sdk","path":"/docs/troubleshooting/ontoolcall-type-narrowing","distance":0.2932},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","distance":0.3288},{"site":"ai-sdk","path":"/cookbook/node/call-tools","distance":0.3392}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/types","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","via":"neighbor"},{"site":"eve","path":"/docs/tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-5-0","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/ontoolcall-type-narrowing","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/embed","title":"embed","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/alibaba"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/embed-many","distance":0.1516},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","distance":0.2559},{"site":"ai-sdk","path":"/cookbook/node/embed-text","distance":0.3228},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/embeddings","distance":0.3443},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/embeddings","distance":0.377}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/embed-many","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/embeddings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/embeddings","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/embed-text","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/voyage-ai","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/embed-many","title":"embedMany","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/rag-chatbot"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/alibaba"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/lmstudio"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/embed","distance":0.1516},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","distance":0.2506},{"site":"ai-sdk","path":"/cookbook/node/embed-text-batch","distance":0.36},{"site":"ai-sdk","path":"/providers/community-providers/voyage-ai","distance":0.3714},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/embeddings","distance":0.3937}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/embed","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/embeddings","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/embeddings","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/embed-text-batch","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/voyage-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/lmstudio","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/extract-json-middleware","title":"extractJsonMiddleware","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/extract-reasoning-middleware","distance":0.2795},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/simulate-streaming-middleware","distance":0.3261},{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","distance":0.3387},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text","distance":0.3706},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/smooth-stream","distance":0.3852}],"related":[{"site":"streamdown","path":"/docs/termination","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/extract-reasoning-middleware","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/simulate-streaming-middleware","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/smooth-stream","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/extract-reasoning-middleware","title":"extractReasoningMiddleware","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/extract-json-middleware","distance":0.2795},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/language-model-v2-middleware","distance":0.3817},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/simulate-streaming-middleware","distance":0.4056},{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","distance":0.4308},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/default-settings-middleware","distance":0.4498}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/extract-json-middleware","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/reasoning","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/reasoning","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning","via":"neighbor"},{"site":"swr","path":"/docs/middleware","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/language-model-v2-middleware","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/simulate-streaming-middleware","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/default-settings-middleware","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/filter-active-tools","title":"filterActiveTools","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-realtime-tool-definitions","distance":0.3647},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool","distance":0.3731},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/dynamic-tool","distance":0.3865},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/infer-ui-tools","distance":0.3872},{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","distance":0.4431}],"related":[{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/types","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/packages/ai-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-realtime-tool-definitions","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/dynamic-tool","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/infer-ui-tools","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-id","title":"generateId","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-id-generator"}],"inbound":[{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-2"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-0"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-id-generator"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-id-generator","distance":0.2057},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-image","distance":0.452},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/generateBuildId","distance":0.4802},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-speech","distance":0.486},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/generateBuildId","distance":0.4867}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/generateBuildId","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/generateBuildId","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-image","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-speech","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/sequential-generations","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/default-generated-file","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-ai","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-image","title":"generateImage","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/cookbook/next/generate-image-with-chat-prompt"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/image-generation"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/black-forest-labs"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/bytedance"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fal"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fireworks"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google-vertex"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/luma"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/prodia"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/quiverai"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/replicate"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/xai"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-video","distance":0.2331},{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-image-prompt","distance":0.2939},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk","distance":0.3225},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/prodia","distance":0.3226},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/image","distance":0.325}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/image","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/openai","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-video","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-image-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/prodia","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/replicate","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/image-generation","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-speech","title":"generateSpeech","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google-vertex"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/mistral"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech","distance":0.2492},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/transcribe","distance":0.2742},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-to-speech","distance":0.3037},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-video","distance":0.3284},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-image","distance":0.3544}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-to-speech","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/text-generation","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/transcribe","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-video","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-image","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text","title":"generateText","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/reasoning"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/computer-use"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5"},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1"},{"site":"ai-sdk","path":"/cookbook/guides/o1"},{"site":"ai-sdk","path":"/cookbook/guides/o3"},{"site":"ai-sdk","path":"/cookbook/guides/openai-responses"},{"site":"ai-sdk","path":"/cookbook/next/caching-middleware"},{"site":"ai-sdk","path":"/cookbook/next/call-tools"},{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps"},{"site":"ai-sdk","path":"/cookbook/next/generate-object-with-file-prompt"},{"site":"ai-sdk","path":"/cookbook/node/call-tools-with-image-prompt"},{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-image-prompt"},{"site":"ai-sdk","path":"/cookbook/node/stream-object-with-image-prompt"},{"site":"ai-sdk","path":"/cookbook/rsc/call-tools"},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat"},{"site":"ai-sdk","path":"/docs/advanced/caching"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/devtools"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/reasoning"},{"site":"ai-sdk","path":"/docs/foundations/prompts"},{"site":"ai-sdk","path":"/docs/foundations/tools"},{"site":"ai-sdk","path":"/docs/getting-started/navigating-the-library"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/has-tool-call"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/is-step-count"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/sandbox"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool-loop-agent"},{"site":"ai-sdk","path":"/docs/troubleshooting/high-memory-usage-with-images"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk"},{"site":"vercel-kb","path":"/kb/guide/run-ai-prompts-in-your-github-actions-with-the-vercel-ai-action"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text","distance":0.0263},{"site":"ai-sdk","path":"/docs/ai-sdk-core/settings","distance":0.2352},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool-loop-agent","distance":0.2615},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai","distance":0.2804},{"site":"ai-sdk","path":"/docs/foundations/prompts","distance":0.2814}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/run-ai-prompts-in-your-github-actions-with-the-vercel-ai-action","via":"inbound"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/get-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/list-messages","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/settings","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool-loop-agent","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/prompts","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-video","title":"experimental_generateVideo","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/alibaba"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/black-forest-labs"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/bytedance"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google-vertex"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/klingai"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/minimax"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/xai"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","distance":0.1976},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-image","distance":0.2331},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","distance":0.2356},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation","distance":0.2917},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/video","distance":0.3059}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/video","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/text-to-video","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-image","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/reference-to-video","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-speech","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/bytedance","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/black-forest-labs","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-realtime-tool-definitions","title":"experimental_getRealtimeToolDefinitions","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-realtime"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-realtime","distance":0.2781},{"site":"ai-sdk","path":"/docs/ai-sdk-core/realtime","distance":0.2913},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool","distance":0.3112},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/dynamic-tool","distance":0.3474},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/filter-active-tools","distance":0.3647}],"related":[{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/realtime","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/types","via":"neighbor"},{"site":"eve","path":"/docs/tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/dynamic-tool","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/filter-active-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/has-tool-call","title":"hasToolCall","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/is-step-count"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"}],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/is-step-count"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/loop-finished"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/is-step-count","distance":0.2211},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/loop-finished","distance":0.2957},{"site":"ai-sdk","path":"/cookbook/node/call-tools-multiple-steps","distance":0.3053},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","distance":0.3233},{"site":"ai-sdk","path":"/cookbook/node/call-tools","distance":0.3738}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/tool-calling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/loop-finished","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/tool-calling","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools-multiple-steps","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/loop-control","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/is-step-count","title":"isStepCount","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/has-tool-call"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"}],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/has-tool-call"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/loop-finished"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/has-tool-call","distance":0.2211},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/loop-finished","distance":0.3115},{"site":"ai-sdk","path":"/cookbook/node/call-tools-multiple-steps","distance":0.3775},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","distance":0.4336},{"site":"ai-sdk","path":"/docs/agents/loop-control","distance":0.4584}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk","via":"inbound"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/loop-finished","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools-multiple-steps","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/loop-control","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/tool-calling-with-structured-outputs","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/json-schema","title":"jsonSchema","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"},{"site":"ai-sdk","path":"/docs/foundations/tools"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/zod-schema","distance":0.2307},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/valibot-schema","distance":0.3218},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output","distance":0.4182},{"site":"ai-sdk","path":"/cookbook/node/generate-object","distance":0.4274},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-object","distance":0.4452}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/zod-schema","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/valibot-schema","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/structured-outputs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-object","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-object","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/language-model-v2-middleware","title":"LanguageModelV4Middleware","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/wrap-language-model","distance":0.2045},{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","distance":0.24},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/default-settings-middleware","distance":0.324},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/default-instructions-middleware","distance":0.3326},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/wrap-image-model","distance":0.3509}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/wrap-language-model","via":"neighbor"},{"site":"swr","path":"/docs/middleware","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/modify-request-headers","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/default-settings-middleware","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/default-instructions-middleware","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/wrap-image-model","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/simulate-streaming-middleware","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/loop-finished","title":"isLoopFinished","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/has-tool-call"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/is-step-count"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool-loop-agent"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/has-tool-call","distance":0.2957},{"site":"ai-sdk","path":"/docs/agents/loop-control","distance":0.3094},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/is-step-count","distance":0.3115},{"site":"ai-sdk","path":"/docs/agents/overview","distance":0.3607},{"site":"ai-sdk","path":"/docs/agents/building-agents","distance":0.3741}],"related":[{"site":"ai-sdk","path":"/docs/agents/loop-control","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-terminal-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/building-agents","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/manual-agent-loop","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/mcp-apps","title":"MCP Apps","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-mcp-client"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-apps"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-apps","distance":0.1577},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-mcp-apps","distance":0.2183},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/mcp-app-renderer","distance":0.2238},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-mcp-client","distance":0.2771},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-tools","distance":0.2889}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-mcp-apps","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-apps","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-mcp-server-with-nuxt","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/mcp-app-renderer","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-create-a-contentful-asset-on-vercel","via":"neighbor"},{"site":"eve","path":"/docs/connections/mcp","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/mcp","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/mcp-server-with-weather-tool-express","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-tools","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/mcp-tools","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/mcp-stdio-transport","title":"Experimental_StdioMCPTransport","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/node/mcp-tools","distance":0.3775},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/mcp-app-renderer","distance":0.4299},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/create-mcp-server","distance":0.4419},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/mcp-apps","distance":0.4463},{"site":"ai-sdk","path":"/cookbook/next/mcp-tools","distance":0.4493}],"related":[{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/create-mcp-server","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create","via":"neighbor"},{"site":"eve","path":"/docs/channels/mcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-mcp-apps","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/mcp-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/mcp-app-renderer","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/mcp-apps","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/mcp-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-mcp-client","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/model-message","title":"ModelMessage","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/prompts"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/convert-to-model-messages"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/prune-messages"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/convert-to-model-messages","distance":0.2576},{"site":"ai-sdk","path":"/docs/foundations/prompts","distance":0.2592},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/ui-message","distance":0.2963},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text","distance":0.3033},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text","distance":0.3186}],"related":[{"site":"chat-sdk","path":"/docs/ai/types","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/to-ai-messages","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/convert-to-model-messages","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/prompts","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/ui-message","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output","title":"Output","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/json-schema"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/zod-schema"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-object-generated-error"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/object-generation"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-object"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/azure"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cohere"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google-vertex"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/mistral"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/open-responses"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/xai"},{"site":"ai-sdk","path":"/providers/community-providers/anthropic-vertex-ai"},{"site":"ai-sdk","path":"/providers/community-providers/cloudflare-workers-ai"},{"site":"ai-sdk","path":"/providers/community-providers/crosshatch"},{"site":"ai-sdk","path":"/providers/community-providers/friendliai"},{"site":"ai-sdk","path":"/providers/community-providers/llama-cpp"},{"site":"ai-sdk","path":"/providers/community-providers/mcp-sampling"},{"site":"ai-sdk","path":"/providers/community-providers/portkey"},{"site":"ai-sdk","path":"/providers/community-providers/qwen"},{"site":"ai-sdk","path":"/providers/community-providers/runpod"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/heroku"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/nim"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data","distance":0.1138},{"site":"ai-sdk","path":"/cookbook/node/generate-object","distance":0.2122},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/structured-outputs","distance":0.2693},{"site":"ai-sdk","path":"/cookbook/next/stream-object","distance":0.2694},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/object-generation","distance":0.2913}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/structured-outputs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/structured-outputs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/structured-outputs","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/output-schema","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-object","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/object-generation","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/no-object-generated-content-filter","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-object","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/pipe-agent-ui-stream-to-response","title":"pipeAgentUIStreamToResponse","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream-response"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/ui-message"}],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream-response","distance":0.1356},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream","distance":0.1876},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/pipe-ui-message-stream-to-response","distance":0.2263},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent","distance":0.3277},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/direct-chat-transport","distance":0.3295}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/pipe-ui-message-stream-to-response","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/direct-chat-transport","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-tui/run-agent-tui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream-response","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/provider-registry","title":"createProviderRegistry","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/custom-provider","distance":0.2435},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","distance":0.2472},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","distance":0.3658},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","distance":0.3795},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.3857}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/custom-provider","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/advanced","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/rerank","title":"rerank","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/reranking"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/reranking","distance":0.1041},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/cohere-rerank","distance":0.2453},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/reranking","distance":0.2494},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cohere","distance":0.2726},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai","distance":0.2901}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/cohere-rerank","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/reranking","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/reranking","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cohere","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/voyage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-filtering-and-ordering","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/reasoning","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/zeroentropy","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/safe-validate-ui-messages","title":"safeValidateUIMessages","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/validate-ui-messages"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/validate-ui-messages","distance":0.0523},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/convert-to-model-messages","distance":0.3315},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/ui-message","distance":0.375},{"site":"chat-sdk","path":"/docs/ai/to-ai-messages","distance":0.4422},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/reading-ui-message-streams","distance":0.4538}],"related":[{"site":"chat-sdk","path":"/docs/ai/to-ai-messages","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/convert-to-model-messages","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/message","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/ui-message","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/reading-ui-message-streams","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/streaming-data","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/message-metadata","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/sandbox","title":"Experimental_SandboxSession","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool-loop-agent"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/code-mode","distance":0.3451},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-agent","distance":0.3556},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent","distance":0.3565},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-realtime","distance":0.3638},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/tools","distance":0.379}],"related":[{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/anthropic-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/multi-agent","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/python-ai-sdk-vercel-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/running-ai-generated-code-sandbox","via":"neighbor"},{"site":"eve","path":"/docs/guides/session-context","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/code-mode","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-agent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-realtime","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/tools","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/simulate-readable-stream","title":"simulateReadableStream","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/cookbook/next/caching-middleware"},{"site":"ai-sdk","path":"/docs/advanced/caching"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/testing"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/simulate-streaming-middleware","distance":0.3006},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/smooth-stream","distance":0.3326},{"site":"ai-sdk","path":"/docs/ai-sdk-core/testing","distance":0.3615},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-value","distance":0.4103},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/read-streamable-value","distance":0.4109}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/simulate-streaming-middleware","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/smooth-stream","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/testing","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-value","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/read-streamable-value","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/simulate-streaming-middleware","title":"simulateStreamingMiddleware","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/simulate-readable-stream","distance":0.3006},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/extract-json-middleware","distance":0.3261},{"site":"ai-sdk","path":"/docs/ai-sdk-core/testing","distance":0.3472},{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","distance":0.3542},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/smooth-stream","distance":0.3583}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/simulate-readable-stream","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/extract-json-middleware","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/testing","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/smooth-stream","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/smooth-stream","title":"smoothStream","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text","distance":0.242},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-translate","distance":0.3212},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/simulate-readable-stream","distance":0.3326},{"site":"chat-sdk","path":"/docs/streaming","distance":0.3376},{"site":"ai-sdk","path":"/cookbook/next/custom-stream-format","distance":0.3439}],"related":[{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-translate","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/simulate-readable-stream","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/custom-stream-format","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-transcribe","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text","title":"streamText","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/reasoning"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/computer-use"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5"},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1"},{"site":"ai-sdk","path":"/cookbook/guides/multi-modal-chatbot"},{"site":"ai-sdk","path":"/cookbook/guides/o1"},{"site":"ai-sdk","path":"/cookbook/guides/o3"},{"site":"ai-sdk","path":"/cookbook/guides/openai-responses"},{"site":"ai-sdk","path":"/cookbook/guides/rag-chatbot"},{"site":"ai-sdk","path":"/cookbook/next/caching-middleware"},{"site":"ai-sdk","path":"/cookbook/next/stream-object"},{"site":"ai-sdk","path":"/docs/advanced/caching"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/devtools"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/reasoning"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-react-components"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-tool-usage"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/object-generation"},{"site":"ai-sdk","path":"/docs/foundations/prompts"},{"site":"ai-sdk","path":"/docs/foundations/streaming"},{"site":"ai-sdk","path":"/docs/foundations/tools"},{"site":"ai-sdk","path":"/docs/getting-started/expo"},{"site":"ai-sdk","path":"/docs/getting-started/navigating-the-library"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-router"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-pages-router"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs"},{"site":"ai-sdk","path":"/docs/getting-started/nuxt"},{"site":"ai-sdk","path":"/docs/getting-started/svelte"},{"site":"ai-sdk","path":"/docs/getting-started/tanstack-start"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-0"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/has-tool-call"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/is-step-count"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/sandbox"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool-loop-agent"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-object"},{"site":"ai-sdk","path":"/docs/troubleshooting/client-stream-error"},{"site":"ai-sdk","path":"/docs/troubleshooting/high-memory-usage-with-images"},{"site":"ai-sdk","path":"/docs/troubleshooting/strange-stream-output"},{"site":"ai-sdk","path":"/docs/troubleshooting/stream-text-not-working"},{"site":"eve","path":"/docs/guides/instrumentation"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app"},{"site":"workflow","path":"/docs/ai"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text","distance":0.0263},{"site":"ai-sdk","path":"/docs/ai-sdk-core/settings","distance":0.226},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/stream-ui","distance":0.2267},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-agent","distance":0.2448},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool-loop-agent","distance":0.2579}],"related":[{"site":"eve","path":"/docs/guides/instrumentation","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","via":"inbound"},{"site":"workflow","path":"/docs/ai","via":"inbound"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/get-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/list-messages","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-streaming","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/settings","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/stream-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-agent","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-transcribe","title":"experimental_streamTranscribe","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-translate","distance":0.1749},{"site":"ai-sdk","path":"/docs/ai-sdk-core/translation","distance":0.2474},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/transcribe","distance":0.2722},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","distance":0.2923},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/speech-to-text","distance":0.3011}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/speech-to-text","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-translate","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/translation","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/streaming","via":"neighbor"},{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/transcribe","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-translate","title":"experimental_streamTranslate","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/translation"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/translation","distance":0.1218},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-transcribe","distance":0.1749},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text","distance":0.2635},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/smooth-stream","distance":0.3212},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs","distance":0.3322}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/translation","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-transcribe","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/speech-to-text","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/smooth-stream","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool","title":"tool","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/dynamic-tool","distance":0.2374},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool-loop-agent","distance":0.3022},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-realtime-tool-definitions","distance":0.3112},{"site":"eve","path":"/docs/tools","distance":0.3175},{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.3255}],"related":[{"site":"eve","path":"/docs/tools","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/types","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/dynamic-tool","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool-loop-agent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-realtime-tool-definitions","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool-loop-agent","title":"ToolLoopAgent","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/devtools"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream-response"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/loop-finished"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/sandbox"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-agent"},{"site":"vercel-kb","path":"/kb/guide/liveblocks-chat-sdk-ai-sdk"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/lifecycle-callbacks","distance":0.1858},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-agent","distance":0.1911},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","distance":0.2144},{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","distance":0.2512},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text","distance":0.2579}],"related":[{"site":"vercel-kb","path":"/kb/guide/liveblocks-chat-sdk-ai-sdk","via":"inbound"},{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/lifecycle-callbacks","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-agent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/building-agents","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/transcribe","title":"transcribe","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google-vertex"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/mistral"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-transcribe","distance":0.2722},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-speech","distance":0.2742},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","distance":0.2877},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/speech-to-text","distance":0.3379},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fish-audio","distance":0.3593}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/speech-to-text","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/transcripts","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-transcribe","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-speech","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fish-audio","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/ui-message","title":"UIMessage","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/message-metadata"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream-response"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/pipe-agent-ui-stream-to-response"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/infer-ui-tool"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat"},{"site":"eve","path":"/docs/guides/frontend/overview"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/convert-to-model-messages","distance":0.2679},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/model-message","distance":0.2963},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/streaming-data","distance":0.3247},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/message-metadata","distance":0.3382},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/validate-ui-messages","distance":0.3549}],"related":[{"site":"eve","path":"/docs/guides/frontend/overview","via":"inbound"},{"site":"chat-sdk","path":"/docs/ai/types","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/message","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/convert-to-model-messages","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/model-message","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/streaming-data","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/message-metadata","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/validate-ui-messages","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/upload-file","title":"uploadFile","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/file-uploads"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-file-uploads","distance":0.141},{"site":"ai-sdk","path":"/docs/ai-sdk-core/file-uploads","distance":0.1488},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/upload-skill","distance":0.2799},{"site":"ai-sdk","path":"/docs/ai-sdk-core/skill-uploads","distance":0.3973},{"site":"chat-sdk","path":"/docs/files","distance":0.4396}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-file-uploads","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/file-uploads","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/upload-skill","via":"neighbor"},{"site":"chat-sdk","path":"/docs/files","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-skill-uploads","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/skill-uploads","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/custom-provider","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/upload-skill","title":"uploadSkill","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/skill-uploads"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/skill-uploads","distance":0.1319},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-skill-uploads","distance":0.1802},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/upload-file","distance":0.2799},{"site":"ai-sdk","path":"/docs/ai-sdk-core/file-uploads","distance":0.2936},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-file-uploads","distance":0.3013}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-skill-uploads","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/skill-uploads","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-file-uploads","via":"neighbor"},{"site":"eve","path":"/docs/skills","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/upload-file","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/file-uploads","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/skills","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/custom-provider","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/agent-skills","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/valibot-schema","title":"valibotSchema","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data"},{"site":"ai-sdk","path":"/docs/foundations/tools"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/json-schema","distance":0.3218},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/zod-schema","distance":0.4148},{"site":"ai-sdk","path":"/cookbook/node/generate-object","distance":0.5393},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-object","distance":0.5398},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output","distance":0.5433}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/json-schema","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/output-schema","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/zod-schema","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/structured-outputs","via":"neighbor"},{"site":"chat-sdk","path":"/docs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-schema","via":"neighbor"},{"site":"vercel-docs","path":"/docs/botid/verified-bots","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/tools","via":"inbound"},{"site":"ai-sdk","path":"/cookbook/node/generate-object","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-object","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/validate-ui-messages","title":"validateUIMessages","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/safe-validate-ui-messages"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/safe-validate-ui-messages","distance":0.0523},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/convert-to-model-messages","distance":0.3491},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/ui-message","distance":0.3549},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/reading-ui-message-streams","distance":0.4421},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/message-metadata","distance":0.4425}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/safe-validate-ui-messages","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/to-ai-messages","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/convert-to-model-messages","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/ui-message","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/reading-ui-message-streams","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/message-metadata","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/wrap-image-model","title":"wrapImageModel","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/wrap-language-model","distance":0.206},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/language-model-v2-middleware","distance":0.3509},{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","distance":0.4208},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-image","distance":0.4353},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/simulate-streaming-middleware","distance":0.4465}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/wrap-language-model","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/language-model-v2-middleware","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-image","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/simulate-streaming-middleware","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/wrap-language-model","title":"wrapLanguageModel","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/language-model-v2-middleware","distance":0.2045},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/wrap-image-model","distance":0.206},{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","distance":0.3281},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/default-settings-middleware","distance":0.4},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/simulate-streaming-middleware","distance":0.4054}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/language-model-v2-middleware","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/wrap-image-model","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/default-settings-middleware","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/simulate-streaming-middleware","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/add-tool-input-examples-middleware","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/zod-schema","title":"zodSchema","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data"},{"site":"ai-sdk","path":"/docs/foundations/tools"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/json-schema","distance":0.2307},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/valibot-schema","distance":0.4148},{"site":"ai-sdk","path":"/docs/troubleshooting/no-object-generated-content-filter","distance":0.4216},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output","distance":0.4377},{"site":"ai-sdk","path":"/cookbook/node/generate-object","distance":0.4403}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/json-schema","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/output-schema","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/structured-outputs","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/valibot-schema","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/no-object-generated-content-filter","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-object","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors","title":"AI SDK Errors","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-api-call-error"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-download-error"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-empty-response-body-error"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-argument-error"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-data-content-error"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-message-role-error"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-prompt-error"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-response-data-error"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-approval-error"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-input-error"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-json-parse-error"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-load-api-key-error"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-load-setting-error"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-message-conversion-error"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-image-generated-error"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-object-generated-error"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-output-generated-error"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-speech-generated-error"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-model-error"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-provider-error"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-provider-reference-error"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-tool-error"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-transcript-generated-error"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-translation-generated-error"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-video-generated-error"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-retry-error"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-too-many-embedding-values-for-call-error"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-call-not-found-for-approval-error"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-call-repair-error"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-type-validation-error"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-ui-message-stream-error"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-unsupported-functionality-error"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/error-handling"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core","distance":0.3247},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core","distance":0.3391},{"site":"ai-sdk","path":"/docs/troubleshooting/missing-tool-results-error","distance":0.3943},{"site":"ai-sdk","path":"/docs/ai-sdk-ui","distance":0.3945},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","distance":0.4006}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/to-ai-messages","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/missing-tool-results-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/error-handling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/error-handling","via":"inbound"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-api-call-error","title":"AI_APICallError","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-retry-error","distance":0.3295},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-download-error","distance":0.3381},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-response-data-error","distance":0.3764},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-argument-error","distance":0.4061},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-type-validation-error","distance":0.4167}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-retry-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-download-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-response-data-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-argument-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-type-validation-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-download-error","title":"AI_DownloadError","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-api-call-error","distance":0.3381},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-response-data-error","distance":0.3494},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-retry-error","distance":0.3509},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-message-conversion-error","distance":0.3835},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","distance":0.3884}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-api-call-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-response-data-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-retry-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-message-conversion-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-empty-response-body-error","title":"AI_EmptyResponseBodyError","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-response-data-error","distance":0.2905},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","distance":0.3565},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-message-role-error","distance":0.4197},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-load-api-key-error","distance":0.4199},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-translation-generated-error","distance":0.4205}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-response-data-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-message-role-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-load-api-key-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-translation-generated-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-argument-error","title":"AI_InvalidArgumentError","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-input-error","distance":0.2721},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-message-role-error","distance":0.2778},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-response-data-error","distance":0.2963},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-type-validation-error","distance":0.3375},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-data-content-error","distance":0.3616}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-input-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-message-role-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-response-data-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-type-validation-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-data-content-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-data-content-error","title":"AI_InvalidDataContentError","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/foundations/prompts"}],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-response-data-error","distance":0.2651},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-prompt-error","distance":0.2688},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","distance":0.3341},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-message-role-error","distance":0.3368},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-argument-error","distance":0.3616}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-response-data-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-prompt-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-message-role-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-argument-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-message-role-error","title":"AI_InvalidMessageRoleError","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-argument-error","distance":0.2778},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-response-data-error","distance":0.304},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-message-conversion-error","distance":0.3074},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-input-error","distance":0.3141},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-data-content-error","distance":0.3368}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-argument-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-response-data-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-message-conversion-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-input-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-data-content-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-prompt-error","title":"AI_InvalidPromptError","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-data-content-error","distance":0.2688},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-message-role-error","distance":0.3724},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-argument-error","distance":0.3738},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-input-error","distance":0.396},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-response-data-error","distance":0.4001}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-data-content-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-message-role-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-argument-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-input-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-response-data-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-response-data-error","title":"AI_InvalidResponseDataError","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-data-content-error","distance":0.2651},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-empty-response-body-error","distance":0.2905},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-argument-error","distance":0.2963},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-message-role-error","distance":0.304},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-input-error","distance":0.318}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-data-content-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-empty-response-body-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-argument-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-message-role-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-input-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-approval-error","title":"AI_InvalidToolApprovalError","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-approval-signature-error","distance":0.1392},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-call-not-found-for-approval-error","distance":0.1931},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-input-error","distance":0.2195},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-tool-error","distance":0.2832},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-call-repair-error","distance":0.3456}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-approval-signature-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-call-not-found-for-approval-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-input-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-tool-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-call-repair-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-approval-signature-error","title":"AI_InvalidToolApprovalSignatureError","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-approval-error","distance":0.1392},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-call-not-found-for-approval-error","distance":0.2551},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-input-error","distance":0.277},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-call-repair-error","distance":0.3351},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-tool-error","distance":0.3392}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-approval-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-call-not-found-for-approval-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-input-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-call-repair-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-tool-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-input-error","title":"AI_InvalidToolInputError","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-approval-error","distance":0.2195},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-tool-error","distance":0.2315},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-argument-error","distance":0.2721},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-approval-signature-error","distance":0.277},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-call-repair-error","distance":0.2797}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-approval-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-tool-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-argument-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-approval-signature-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-call-repair-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-json-parse-error","title":"AI_JSONParseError","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-message-conversion-error","distance":0.371},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-type-validation-error","distance":0.3717},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-download-error","distance":0.3897},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-object-generated-error","distance":0.4089},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","distance":0.4169}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-message-conversion-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-type-validation-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-download-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-object-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-load-api-key-error","title":"AI_LoadAPIKeyError","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-load-setting-error","distance":0.2208},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-response-data-error","distance":0.4072},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","distance":0.4094},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-argument-error","distance":0.4131},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-message-conversion-error","distance":0.4142}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-load-setting-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-response-data-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-argument-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-message-conversion-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-load-setting-error","title":"AI_LoadSettingError","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-load-api-key-error","distance":0.2208},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-message-role-error","distance":0.3668},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-message-conversion-error","distance":0.3761},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-download-error","distance":0.3948},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-argument-error","distance":0.4023}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-load-api-key-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-message-role-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-message-conversion-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-download-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-argument-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-message-conversion-error","title":"AI_MessageConversionError","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-message-role-error","distance":0.3074},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","distance":0.3659},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-json-parse-error","distance":0.371},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-load-setting-error","distance":0.3761},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-response-data-error","distance":0.3781}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-message-role-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-json-parse-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-load-setting-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-response-data-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","title":"AI_NoContentGeneratedError","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-image-generated-error","distance":0.1985},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-video-generated-error","distance":0.2317},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-output-generated-error","distance":0.237},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-object-generated-error","distance":0.2433},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-speech-generated-error","distance":0.2636}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-image-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-video-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-output-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-object-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-speech-generated-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-image-generated-error","title":"AI_NoImageGeneratedError","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/image-generation"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-video-generated-error","distance":0.1322},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","distance":0.1985},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-object-generated-error","distance":0.202},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-speech-generated-error","distance":0.2515},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-output-generated-error","distance":0.2665}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-video-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-object-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-speech-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-output-generated-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-object-generated-error","title":"AI_NoObjectGeneratedError","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-image-generated-error","distance":0.202},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-video-generated-error","distance":0.2162},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","distance":0.2433},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-output-generated-error","distance":0.2468},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-speech-generated-error","distance":0.2736}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-image-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-video-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-output-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-speech-generated-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-output-generated-error","title":"AI_NoOutputGeneratedError","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","distance":0.237},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-object-generated-error","distance":0.2468},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-image-generated-error","distance":0.2665},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-speech-generated-error","distance":0.2667},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-translation-generated-error","distance":0.2713}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-object-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-image-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-speech-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-translation-generated-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-speech-generated-error","title":"AI_NoSpeechGeneratedError","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-translation-generated-error","distance":0.1323},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-transcript-generated-error","distance":0.1658},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-video-generated-error","distance":0.2418},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-image-generated-error","distance":0.2515},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","distance":0.2636}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-translation-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-transcript-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-video-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-image-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-model-error","title":"AI_NoSuchModelError","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-provider-error","distance":0.2297},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-tool-error","distance":0.2846},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-provider-reference-error","distance":0.3445},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-object-generated-error","distance":0.3467},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-image-generated-error","distance":0.3545}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-provider-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-tool-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-provider-reference-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-object-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-image-generated-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-provider-error","title":"AI_NoSuchProviderError","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-provider-reference-error","distance":0.1349},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-model-error","distance":0.2297},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-tool-error","distance":0.2661},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","distance":0.3014},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-image-generated-error","distance":0.3279}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-provider-reference-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-model-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-tool-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-image-generated-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-provider-reference-error","title":"AI_NoSuchProviderReferenceError","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-provider-error","distance":0.1349},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","distance":0.3343},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-tool-error","distance":0.3398},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-model-error","distance":0.3445},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-image-generated-error","distance":0.4064}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-provider-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-tool-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-model-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-image-generated-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-tool-error","title":"AI_NoSuchToolError","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-input-error","distance":0.2315},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-provider-error","distance":0.2661},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-approval-error","distance":0.2832},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-model-error","distance":0.2846},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-call-repair-error","distance":0.3094}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-input-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-provider-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-approval-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-model-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-call-repair-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-transcript-generated-error","title":"AI_NoTranscriptGeneratedError","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-speech-generated-error","distance":0.1658},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-translation-generated-error","distance":0.1909},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-video-generated-error","distance":0.2706},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-image-generated-error","distance":0.2823},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","distance":0.292}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-speech-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-translation-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-video-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-image-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-translation-generated-error","title":"AI_NoTranslationGeneratedError","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/translation"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-speech-generated-error","distance":0.1323},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-transcript-generated-error","distance":0.1909},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-output-generated-error","distance":0.2713},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-video-generated-error","distance":0.2849},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-object-generated-error","distance":0.2913}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-speech-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-transcript-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-output-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-video-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-object-generated-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-video-generated-error","title":"AI_NoVideoGeneratedError","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-image-generated-error","distance":0.1322},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-object-generated-error","distance":0.2162},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","distance":0.2317},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-speech-generated-error","distance":0.2418},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-transcript-generated-error","distance":0.2706}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-image-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-object-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-speech-generated-error","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-transcript-generated-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-retry-error","title":"AI_RetryError","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-api-call-error","distance":0.3295},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-download-error","distance":0.3509},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-message-conversion-error","distance":0.3841},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-argument-error","distance":0.4014},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-response-data-error","distance":0.4155}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-api-call-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-download-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-message-conversion-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-argument-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-response-data-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-too-many-embedding-values-for-call-error","title":"AI_TooManyEmbeddingValuesForCallError","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-provider-error","distance":0.3992},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/embed-many","distance":0.4412},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors","distance":0.4572},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-provider-reference-error","distance":0.458},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","distance":0.4707}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-provider-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/embed-many","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-provider-reference-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-call-not-found-for-approval-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-call-not-found-for-approval-error","title":"AI_ToolCallNotFoundForApprovalError","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-approval-error","distance":0.1931},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-approval-signature-error","distance":0.2551},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-call-repair-error","distance":0.3065},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-tool-error","distance":0.3184},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-input-error","distance":0.3783}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-approval-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-approval-signature-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-call-repair-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-tool-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-input-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-call-repair-error","title":"ToolCallRepairError","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-input-error","distance":0.2797},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-call-not-found-for-approval-error","distance":0.3065},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-tool-error","distance":0.3094},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-approval-signature-error","distance":0.3351},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-approval-error","distance":0.3456}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-input-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-call-not-found-for-approval-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-tool-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-approval-signature-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-approval-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-type-validation-error","title":"AI_TypeValidationError","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-input-error","distance":0.336},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-argument-error","distance":0.3375},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-response-data-error","distance":0.3597},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-json-parse-error","distance":0.3717},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-message-conversion-error","distance":0.3912}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-input-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-argument-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-response-data-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-json-parse-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-message-conversion-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-ui-message-stream-error","title":"AI_UIMessageStreamError","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream","distance":0.347},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/reading-ui-message-streams","distance":0.3802},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/read-ui-message-stream","distance":0.3823},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-an-error-occurred","distance":0.4145},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream","distance":0.4328}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/reading-ui-message-streams","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/read-ui-message-stream","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-an-error-occurred","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-unsupported-functionality-error","title":"AI_UnsupportedFunctionalityError","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-message-role-error","distance":0.3857},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-argument-error","distance":0.3939},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-message-conversion-error","distance":0.404},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-response-data-error","distance":0.4063},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","distance":0.4183}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-message-role-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-argument-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-message-conversion-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-response-data-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc","title":"AI SDK RSC","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc","distance":0.0755},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview","distance":0.1463},{"site":"ai-sdk","path":"/docs/ai-sdk-ui","distance":0.1879},{"site":"ai-sdk","path":"/docs/reference","distance":0.2191},{"site":"ai-sdk","path":"/docs/getting-started/navigating-the-library","distance":0.2396}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/navigating-the-library","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-ai","title":"createAI","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/saving-and-restoring-states"},{"site":"ai-sdk","path":"/docs/troubleshooting/server-actions-in-client-components"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc","distance":0.2864},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state","distance":0.2961},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-ai-state","distance":0.3022},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/get-mutable-ai-state","distance":0.3305},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/get-ai-state","distance":0.3385}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-ai-state","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/get-mutable-ai-state","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/get-ai-state","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/saving-and-restoring-states","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-ui","title":"createStreamableUI","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui"}],"inbound":[{"site":"ai-sdk","path":"/docs/advanced/rendering-ui-with-language-models"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/error-handling"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values"},{"site":"ai-sdk","path":"/docs/getting-started/navigating-the-library"},{"site":"ai-sdk","path":"/docs/troubleshooting/unclosed-streams"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-value","distance":0.2248},{"site":"ai-sdk","path":"/docs/advanced/multiple-streamables","distance":0.2312},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values","distance":0.2321},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview","distance":0.2782},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/render","distance":0.2875}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-value","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/multiple-streamables","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/render","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-value","title":"createStreamableValue","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values"},{"site":"ai-sdk","path":"/docs/getting-started/navigating-the-library"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/read-streamable-value"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-streamable-value"},{"site":"ai-sdk","path":"/docs/troubleshooting/client-stream-error"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-streamable-value","distance":0.1674},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/read-streamable-value","distance":0.1864},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-ui","distance":0.2248},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values","distance":0.2772},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui","distance":0.3934}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-streamable-value","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/read-streamable-value","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/multiple-streamables","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/get-ai-state","title":"getAIState","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/get-mutable-ai-state","distance":0.1607},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-ai-state","distance":0.1711},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-ui-state","distance":0.2574},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-ai","distance":0.3385},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/saving-and-restoring-states","distance":0.3609}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/get-mutable-ai-state","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-ai-state","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-ui-state","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/saving-and-restoring-states","via":"neighbor"},{"site":"eve","path":"/docs/concepts/state","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/get-mutable-ai-state","title":"getMutableAIState","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/get-ai-state","distance":0.1607},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-ai-state","distance":0.2429},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-ui-state","distance":0.3104},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-ai","distance":0.3305},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/saving-and-restoring-states","distance":0.3388}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/get-ai-state","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-ai-state","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-ui-state","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/saving-and-restoring-states","via":"neighbor"},{"site":"eve","path":"/docs/concepts/state","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/read-streamable-value","title":"readStreamableValue","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-value"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-streamable-value","distance":0.1803},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-value","distance":0.1864},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values","distance":0.2868},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-ui","distance":0.3274},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text","distance":0.4024}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-streamable-value","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-ui","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/simulate-readable-stream","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/render","title":"render (Removed)","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/stream-ui"}],"inbound":[{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-1"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/stream-ui","distance":0.2263},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-ui","distance":0.2875},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-1","distance":0.295},{"site":"ai-sdk","path":"/docs/advanced/rendering-ui-with-language-models","distance":0.309},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc","distance":0.3337}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-1","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/rendering-ui-with-language-models","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/stream-ui","title":"streamUI","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-ui-record-token-usage"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/loading-state"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-react-components"},{"site":"ai-sdk","path":"/docs/getting-started/navigating-the-library"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-1"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/render"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/render","distance":0.2263},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text","distance":0.2267},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-agent","distance":0.2416},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text","distance":0.2789},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text","distance":0.284}],"related":[{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-streaming","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task-streaming","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-streaming","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/render","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-agent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-actions","title":"useActions","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui"},{"site":"ai-sdk","path":"/docs/troubleshooting/server-actions-in-client-components"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview"},{"site":"ai-sdk","path":"/docs/troubleshooting/server-actions-in-client-components"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/server-actions-in-client-components","distance":0.2974},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-ai","distance":0.3733},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/authentication","distance":0.4049},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-server","distance":0.4059},{"site":"nextjs","path":"/docs/app/guides/server-actions","distance":0.4074}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/directives/use-server","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/server-actions","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverActions","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/forms","via":"neighbor"},{"site":"chat-sdk","path":"/docs/actions","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/authentication","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-ai-state","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-ai-state","title":"useAIState","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-ui-state","distance":0.1601},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/get-ai-state","distance":0.1711},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/get-mutable-ai-state","distance":0.2429},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-ai","distance":0.3022},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/saving-and-restoring-states","distance":0.3512}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-ui-state","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/get-ai-state","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/get-mutable-ai-state","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/saving-and-restoring-states","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-streamable-value","title":"useStreamableValue","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-value"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-value","distance":0.1674},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/read-streamable-value","distance":0.1803},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-ui","distance":0.2957},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values","distance":0.3128},{"site":"ai-sdk","path":"/docs/advanced/multiple-streamables","distance":0.384}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/read-streamable-value","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/multiple-streamables","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/error-handling","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-ui-state","title":"useUIState","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-ai-state","distance":0.1601},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/get-ai-state","distance":0.2574},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/get-mutable-ai-state","distance":0.3104},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state","distance":0.3276},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/saving-and-restoring-states","distance":0.3469}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-ai-state","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/get-ai-state","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/get-mutable-ai-state","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/saving-and-restoring-states","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-tui","title":"AI SDK TUI","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/agents/terminal-ui"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/agents/terminal-ui","distance":0.2063},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-terminal-ui","distance":0.2183},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-tui/run-agent-tui","distance":0.2199},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/terminal-ui","distance":0.3286},{"site":"ai-sdk","path":"/docs/ai-sdk-ui","distance":0.3398}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-terminal-ui","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/examples/ai-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/terminal-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/overview","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-tui/run-agent-tui","title":"runAgentTUI","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/agents/building-agents"},{"site":"ai-sdk","path":"/docs/agents/overview"},{"site":"ai-sdk","path":"/docs/agents/terminal-ui"}],"inbound":[{"site":"ai-sdk","path":"/docs/agents/terminal-ui"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/terminal-ui"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/agents/terminal-ui","distance":0.0984},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-terminal-ui","distance":0.1393},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-tui","distance":0.2199},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent","distance":0.2629},{"site":"ai-sdk","path":"/docs/agents/overview","distance":0.2789}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-terminal-ui","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/agent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/terminal-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/direct-chat-transport","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/configuring-call-options","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui","title":"AI SDK UI","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-apps"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-completion"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-object"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview","distance":0.0615},{"site":"ai-sdk","path":"/docs/ai-sdk-ui","distance":0.1872},{"site":"ai-sdk","path":"/docs/getting-started/navigating-the-library","distance":0.2051},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc","distance":0.2741},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.2806}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/navigating-the-library","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/convert-to-model-messages","title":"convertToModelMessages","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/model-message"}],"inbound":[{"site":"ai-sdk","path":"/docs/agents/subagents"},{"site":"ai-sdk","path":"/docs/agents/workflow-agent"},{"site":"ai-sdk","path":"/docs/foundations/prompts"},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-tools-no-response"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/model-message","distance":0.2576},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/streaming-data","distance":0.2672},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/ui-message","distance":0.2679},{"site":"chat-sdk","path":"/docs/ai/to-ai-messages","distance":0.27},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-5-0","distance":0.2742}],"related":[{"site":"chat-sdk","path":"/docs/ai/to-ai-messages","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/types","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/streaming-data","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/ui-message","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-5-0","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/prompts","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream","title":"createUIMessageStream","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream-response","distance":0.187},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/read-ui-message-stream","distance":0.1894},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/reading-ui-message-streams","distance":0.2334},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream","distance":0.2479},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream-response","distance":0.3084}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream-response","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/read-ui-message-stream","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/reading-ui-message-streams","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream-response","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream-response","title":"createUIMessageStreamResponse","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream","distance":0.187},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/pipe-ui-message-stream-to-response","distance":0.2281},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream-response","distance":0.2592},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/read-ui-message-stream","distance":0.3233},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/reading-ui-message-streams","distance":0.333}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/pipe-ui-message-stream-to-response","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-streaming","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream-response","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/read-ui-message-stream","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/reading-ui-message-streams","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/direct-chat-transport","title":"DirectChatTransport","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/transport"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/transport","distance":0.158},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot","distance":0.1752},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-chat-transport","distance":0.2149},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","distance":0.2265},{"site":"workflow","path":"/docs/api-reference/workflow-ai/workflow-chat-transport","distance":0.2487}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning","via":"inbound"},{"site":"workflow","path":"/docs/api-reference/workflow-ai/workflow-chat-transport","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/transport","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-chat-transport","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","via":"neighbor"},{"site":"ai-sdk","path":"/providers/adapters/langchain","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/infer-ui-tool","title":"InferUITool","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/ui-message"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/infer-ui-tools"}],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/infer-ui-tools"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/infer-ui-tools","distance":0.0672},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool","distance":0.3707},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/ui-message","distance":0.3804},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/dynamic-tool","distance":0.3956},{"site":"chat-sdk","path":"/docs/ai/types","distance":0.4286}],"related":[{"site":"chat-sdk","path":"/docs/ai/types","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/dynamic-tool","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-input-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/convert-to-model-messages","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/filter-active-tools","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/infer-ui-tools","title":"InferUITools","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/infer-ui-tool"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat"}],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/infer-ui-tool"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/infer-ui-tool","distance":0.0672},{"site":"chat-sdk","path":"/docs/ai/types","distance":0.3802},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool","distance":0.3822},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/filter-active-tools","distance":0.3872},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/ui-message","distance":0.3938}],"related":[{"site":"chat-sdk","path":"/docs/ai/types","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/filter-active-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/ui-message","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/dynamic-tool","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/convert-to-model-messages","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/mcp-app-renderer","title":"experimental_MCPAppRenderer","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-apps"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-apps","distance":0.1624},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-mcp-apps","distance":0.1986},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/mcp-apps","distance":0.2238},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-mcp-client","distance":0.3344},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-tools","distance":0.3366}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-mcp-apps","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-apps","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/mcp-apps","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-mcp-server-with-nuxt","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/webmcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-mcp-client","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-tools","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/mcp-tools","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/pipe-ui-message-stream-to-response","title":"pipeUIMessageStreamToResponse","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/streaming-data"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/pipe-agent-ui-stream-to-response","distance":0.2263},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream-response","distance":0.2281},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream","distance":0.3401},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream-response","distance":0.3767},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/reading-ui-message-streams","distance":0.4034}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/pipe-agent-ui-stream-to-response","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream-response","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream-response","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/reading-ui-message-streams","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/prune-messages","title":"pruneMessages","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/model-message"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/agent-context-compaction"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/convert-to-model-messages","distance":0.3627},{"site":"ai-sdk","path":"/cookbook/guides/agent-context-compaction","distance":0.3834},{"site":"chat-sdk","path":"/docs/ai/to-ai-messages","distance":0.4034},{"site":"ai-sdk","path":"/docs/foundations/prompts","distance":0.4356},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-6-0","distance":0.4409}],"related":[{"site":"chat-sdk","path":"/docs/ai/to-ai-messages","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/prune","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/types","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/convert-to-model-messages","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/agent-context-compaction","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/prompts","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/read-ui-message-stream","title":"readUIMessageStream","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/reading-ui-message-streams"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream","distance":0.1894},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/reading-ui-message-streams","distance":0.1999},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream","distance":0.3153},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream-response","distance":0.3233},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-ui-message-stream-error","distance":0.3823}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream-response","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-ui-message-stream-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","title":"useChat","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-tool-usage"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/ui-message"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/claude-4"},{"site":"ai-sdk","path":"/cookbook/guides/deepseek-v3-2"},{"site":"ai-sdk","path":"/cookbook/guides/gemini"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5"},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1"},{"site":"ai-sdk","path":"/cookbook/guides/multi-modal-chatbot"},{"site":"ai-sdk","path":"/cookbook/guides/o1"},{"site":"ai-sdk","path":"/cookbook/guides/o3"},{"site":"ai-sdk","path":"/cookbook/guides/r1"},{"site":"ai-sdk","path":"/cookbook/guides/rag-chatbot"},{"site":"ai-sdk","path":"/cookbook/guides/sonnet-3-7"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-tool-usage"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/error-handling"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview"},{"site":"ai-sdk","path":"/docs/foundations/prompts"},{"site":"ai-sdk","path":"/docs/getting-started/expo"},{"site":"ai-sdk","path":"/docs/getting-started/navigating-the-library"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-router"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-pages-router"},{"site":"ai-sdk","path":"/docs/getting-started/nuxt"},{"site":"ai-sdk","path":"/docs/getting-started/svelte"},{"site":"ai-sdk","path":"/docs/getting-started/tanstack-start"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/infer-ui-tools"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-chat-transport"},{"site":"ai-sdk","path":"/docs/troubleshooting/ontoolcall-type-narrowing"},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-an-error-occurred"},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-failed-to-parse-stream"},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-tools-no-response"},{"site":"workflow","path":"/docs/ai"},{"site":"workflow","path":"/docs/api-reference/workflow-ai/workflow-chat-transport"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot","distance":0.2002},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/direct-chat-transport","distance":0.2265},{"site":"chat-sdk","path":"/docs/ai/types","distance":0.2283},{"site":"chat-sdk","path":"/docs/ai","distance":0.2434},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","distance":0.2489}],"related":[{"site":"workflow","path":"/docs/ai","via":"inbound"},{"site":"workflow","path":"/docs/api-reference/workflow-ai/workflow-chat-transport","via":"inbound"},{"site":"chat-sdk","path":"/docs/ai/types","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/to-ai-messages","via":"neighbor"},{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat","via":"neighbor"},{"site":"chat-sdk","path":"/docs/usage","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-streaming","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/direct-chat-transport","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/call-tools","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-completion","title":"useCompletion","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/claude-4"},{"site":"ai-sdk","path":"/cookbook/guides/deepseek-v3-2"},{"site":"ai-sdk","path":"/cookbook/guides/gemini"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5"},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1"},{"site":"ai-sdk","path":"/cookbook/guides/o1"},{"site":"ai-sdk","path":"/cookbook/guides/o3"},{"site":"ai-sdk","path":"/cookbook/guides/r1"},{"site":"ai-sdk","path":"/cookbook/guides/sonnet-3-7"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/error-handling"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview"},{"site":"ai-sdk","path":"/docs/getting-started/navigating-the-library"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui"},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-failed-to-parse-stream"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/completion","distance":0.1712},{"site":"ai-sdk","path":"/cookbook/next/mcp-tools","distance":0.3206},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/chat-completions","distance":0.3259},{"site":"ai-sdk","path":"/cookbook/next/stream-text","distance":0.3281},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","distance":0.3363}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/completion","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/chat-completions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/streaming","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/mcp-tools","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-object","title":"useObject","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/claude-4"},{"site":"ai-sdk","path":"/cookbook/guides/deepseek-v3-2"},{"site":"ai-sdk","path":"/cookbook/guides/gemini"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5"},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1"},{"site":"ai-sdk","path":"/cookbook/guides/o1"},{"site":"ai-sdk","path":"/cookbook/guides/o3"},{"site":"ai-sdk","path":"/cookbook/guides/r1"},{"site":"ai-sdk","path":"/cookbook/guides/sonnet-3-7"},{"site":"ai-sdk","path":"/cookbook/next/stream-object"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/object-generation"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview"},{"site":"ai-sdk","path":"/docs/getting-started/navigating-the-library"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/object-generation","distance":0.1836},{"site":"ai-sdk","path":"/cookbook/next/stream-object","distance":0.2416},{"site":"ai-sdk","path":"/cookbook/node/stream-object","distance":0.3076},{"site":"ai-sdk","path":"/cookbook/node/generate-object","distance":0.3194},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output","distance":0.3237}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/object-generation","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-object","via":"neighbor"},{"site":"streamdown","path":"/docs/usage","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/packages/react","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-object","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-realtime","title":"experimental_useRealtime","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/realtime"}],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-realtime-tool-definitions"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/realtime","distance":0.1164},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/realtime","distance":0.2393},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/realtime","distance":0.2672},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-realtime-tool-definitions","distance":0.2781},{"site":"ai-sdk","path":"/cookbook/next/call-tools","distance":0.3344}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/realtime","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/realtime","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-realtime-tool-definitions","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/call-tools","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-tool-usage","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/render-visual-interface-in-chat","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow","title":"AI SDK Workflow","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/agents/workflow-agent"}],"inbound":[],"requires":[],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-ai","distance":0.1788},{"site":"workflow","path":"/docs/ai","distance":0.2332},{"site":"vercel-kb","path":"/kb/guide/what-is-workflowagent","distance":0.2345},{"site":"ai-sdk","path":"/docs/agents","distance":0.2536},{"site":"ai-sdk","path":"/docs/agents/workflow-agent","distance":0.2756}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-ai","via":"neighbor"},{"site":"workflow","path":"/docs/ai","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-workflowagent","via":"neighbor"},{"site":"workflow","path":"/docs/ai/defining-tools","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-ai/workflow-chat-transport","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/durableagent-to-workflowagent","via":"neighbor"},{"site":"workflow","path":"/docs/ai/message-queueing","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/overview","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-agent","title":"WorkflowAgent","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool-loop-agent"}],"inbound":[{"site":"ai-sdk","path":"/docs/agents/workflow-agent"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool-loop-agent","distance":0.1911},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent","distance":0.2187},{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","distance":0.2211},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/stream-ui","distance":0.2416},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text","distance":0.2448}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-workflowagent","via":"neighbor"},{"site":"workflow","path":"/docs/ai","via":"neighbor"},{"site":"eve","path":"/docs/concepts/built-in-tools","via":"neighbor"},{"site":"eve","path":"/docs/agent-config","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/stream-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/building-agents","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/overview","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-chat-transport","title":"WorkflowChatTransport","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/agents/workflow-agent"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/transport"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat"}],"inbound":[{"site":"ai-sdk","path":"/docs/agents/workflow-agent"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/transport"}],"requires":[],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-ai/workflow-chat-transport","distance":0.1219},{"site":"workflow","path":"/docs/ai/resumable-streams","distance":0.1739},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/transport","distance":0.1991},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/direct-chat-transport","distance":0.2149},{"site":"workflow","path":"/docs/ai/chat-session-modeling","distance":0.248}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-ai/workflow-chat-transport","via":"neighbor"},{"site":"workflow","path":"/docs/ai/resumable-streams","via":"neighbor"},{"site":"workflow","path":"/docs/ai/chat-session-modeling","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agent-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/durable-web-research-agent-with-workflow-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/direct-chat-transport","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-resume-streams","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting","title":"Troubleshooting","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors","distance":0.4308},{"site":"ai-sdk","path":"/docs/migration-guides","distance":0.4424},{"site":"ai-sdk","path":"/docs/getting-started/coding-agents","distance":0.4563},{"site":"ai-sdk","path":"/docs/ai-sdk-core","distance":0.4657},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/error-handling","distance":0.4693}],"related":[{"site":"v0","path":"/docs/api/v1/examples/ai-tools","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/packages/ai-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/coding-agents","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/error-handling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/abort-breaks-resumable-streams","title":"Abort and resumable streams","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/advanced/stopping-streams"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-resume-streams"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-resume-streams"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-resume-streams","distance":0.1501},{"site":"ai-sdk","path":"/docs/advanced/stopping-streams","distance":0.222},{"site":"v0","path":"/docs/api/v2/guides/resuming-streams","distance":0.3233},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","distance":0.3385},{"site":"workflow","path":"/docs/ai/resumable-streams","distance":0.3457}],"related":[{"site":"v0","path":"/docs/api/v2/guides/resuming-streams","via":"neighbor"},{"site":"workflow","path":"/docs/ai/resumable-streams","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/resume-chat-stream","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/resume","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/streaming","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/stop-message","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-ai/workflow-chat-transport","via":"neighbor"},{"site":"workflow","path":"/docs/ai/chat-session-modeling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/stream-abort-handling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-chat-transport","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/error-handling","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/azure-stream-slow","title":"Azure OpenAI Slow to Stream","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-not-working-when-deployed","distance":0.4036},{"site":"ai-sdk","path":"/cookbook/api-servers/fastify","distance":0.4182},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/smooth-stream","distance":0.4325},{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-not-working-when-proxied","distance":0.4387},{"site":"ai-sdk","path":"/docs/troubleshooting/stream-text-not-working","distance":0.4393}],"related":[{"site":"vercel-kb","path":"/kb/guide/streaming-from-llm","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-not-working-when-deployed","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/api-servers/fastify","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/smooth-stream","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-not-working-when-proxied","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/stream-text-not-working","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/client-stream-error","title":"Server Action Plain Objects Error","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-value"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/server-actions-in-client-components","distance":0.3716},{"site":"ai-sdk","path":"/docs/troubleshooting/stream-text-not-working","distance":0.4148},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text","distance":0.4371},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values","distance":0.4486},{"site":"ai-sdk","path":"/docs/troubleshooting/streamable-ui-errors","distance":0.4499}],"related":[{"site":"ai-sdk","path":"/docs/troubleshooting/server-actions-in-client-components","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/stream-text-not-working","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/streamable-ui-errors","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/high-memory-usage-with-images","title":"High memory usage when processing many images","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk","distance":0.365},{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-image-prompt","distance":0.406},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text","distance":0.4086},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/openai","distance":0.417},{"site":"ai-sdk","path":"/cookbook/node/stream-object-with-image-prompt","distance":0.4364}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/openai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/image","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/image-generation","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/video","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-image-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-object-with-image-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/embed-text-batch","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/jest-cannot-find-module-ai-rsc","title":"Jest: cannot find module '@ai-sdk/rsc'","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/typescript-cannot-find-namespace-jsx","distance":0.4256},{"site":"nextjs","path":"/docs/app/guides/testing/jest","distance":0.5163},{"site":"nextjs","path":"/docs/pages/guides/testing/jest","distance":0.5204},{"site":"ai-sdk","path":"/docs/troubleshooting/typescript-performance-zod","distance":0.5625},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc","distance":0.5631}],"related":[{"site":"nextjs","path":"/docs/app/guides/testing/jest","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/testing/jest","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/typescript-cannot-find-namespace-jsx","via":"neighbor"},{"site":"workflow","path":"/docs/errors/node-js-module-in-workflow","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/testing","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/typescript-performance-zod","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-failed-to-parse-stream","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/model-is-not-assignable-to-type","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/react-maximum-update-depth-exceeded","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/missing-tool-results-error","title":"Missing Tool Results Error","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/tool-invocation-missing-result","distance":0.2846},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-approval-error","distance":0.3889},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-approval-signature-error","distance":0.39},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors","distance":0.3943},{"site":"ai-sdk","path":"/cookbook/node/call-tools","distance":0.3967}],"related":[{"site":"vercel-kb","path":"/kb/guide/what-is-an-llm-tool","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/tool-invocation-missing-result","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-approval-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-approval-signature-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/model-is-not-assignable-to-type","title":"Model is not assignable to type \"LanguageModelV1\"","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/unsupported-model-version","distance":0.3173},{"site":"ai-sdk","path":"/providers/community-providers","distance":0.4106},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-model-error","distance":0.4583},{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","distance":0.4758},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-provider-error","distance":0.4815}],"related":[{"site":"ai-sdk","path":"/docs/troubleshooting/unsupported-model-version","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-model-error","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-provider-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/no-object-generated-content-filter","title":"Object generation failed with OpenAI","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output","distance":0.2973},{"site":"ai-sdk","path":"/cookbook/node/generate-object","distance":0.3335},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data","distance":0.3361},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-object-generated-error","distance":0.3916},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/zod-schema","distance":0.4216}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/structured-outputs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/structured-outputs","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/structured-outputs","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-object","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-object-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/zod-schema","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-object","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/ontoolcall-type-narrowing","title":"Type Error with onToolCall","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-tool-usage"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/dynamic-tool"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/dynamic-tool","distance":0.2932},{"site":"ai-sdk","path":"/docs/troubleshooting/tool-invocation-missing-result","distance":0.3428},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-5-0","distance":0.3812},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool","distance":0.4173},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-tool-usage","distance":0.4247}],"related":[{"site":"chat-sdk","path":"/docs/ai/types","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/tool-invocation-missing-result","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-5-0","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-call-repair-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/missing-tool-results-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/react-maximum-update-depth-exceeded","title":"React error \"Maximum update depth exceeded\"","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-failed-to-parse-stream","distance":0.4057},{"site":"ai-sdk","path":"/docs/getting-started/navigating-the-library","distance":0.4117},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui","distance":0.4123},{"site":"ai-sdk","path":"/docs/troubleshooting/strange-stream-output","distance":0.4134},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","distance":0.419}],"related":[{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-failed-to-parse-stream","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/navigating-the-library","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/strange-stream-output","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/repeated-assistant-messages","title":"Repeated assistant messages in useChat","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/next/stream-text-multistep","distance":0.3436},{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-status-delay","distance":0.3759},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","distance":0.3769},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","distance":0.3808},{"site":"ai-sdk","path":"/docs/troubleshooting/strange-stream-output","distance":0.391}],"related":[{"site":"ai-sdk","path":"/cookbook/next/stream-text-multistep","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-status-delay","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/strange-stream-output","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/server-actions-in-client-components","title":"Server Actions in Client Components","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-ai"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-actions"}],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-actions"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-actions","distance":0.2974},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-server","distance":0.3281},{"site":"ai-sdk","path":"/docs/troubleshooting/client-stream-error","distance":0.3716},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components","distance":0.3815},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-client","distance":0.3818}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/directives/use-server","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-client","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/data-security","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/forms","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/client-stream-error","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/generate-text","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/strange-stream-output","title":"useChat/useCompletion stream output contains 0:... instead of text","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-failed-to-parse-stream","distance":0.1866},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-chat-prompt","distance":0.3523},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-an-error-occurred","distance":0.3695},{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-status-delay","distance":0.3713},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-tools-no-response","distance":0.3753}],"related":[{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-failed-to-parse-stream","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/streaming","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-an-error-occurred","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-status-delay","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-tools-no-response","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/stream-abort-handling","title":"onEnd not called when stream is aborted","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/advanced/stopping-streams","distance":0.2683},{"site":"ai-sdk","path":"/docs/troubleshooting/abort-breaks-resumable-streams","distance":0.3565},{"site":"ai-sdk","path":"/docs/ai-sdk-core/error-handling","distance":0.359},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream","distance":0.4119},{"site":"ai-sdk","path":"/docs/advanced/backpressure","distance":0.4521}],"related":[{"site":"ai-sdk","path":"/docs/advanced/stopping-streams","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/streaming","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/abort-breaks-resumable-streams","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/error-handling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/backpressure","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/stream-text-not-working","title":"streamText fails silently","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-an-error-occurred","distance":0.3093},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-file-prompt","distance":0.3408},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-failed-to-parse-stream","distance":0.3474},{"site":"ai-sdk","path":"/docs/ai-sdk-core/error-handling","distance":0.35},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text","distance":0.3667}],"related":[{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-an-error-occurred","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-file-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-failed-to-parse-stream","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/error-handling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/streamable-ui-errors","title":"Streamable UI Errors","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/unclosed-streams","distance":0.3901},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/error-handling","distance":0.4193},{"site":"ai-sdk","path":"/docs/advanced/multiple-streamables","distance":0.4296},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-ui","distance":0.4418},{"site":"ai-sdk","path":"/docs/troubleshooting/client-stream-error","distance":0.4499}],"related":[{"site":"ai-sdk","path":"/docs/troubleshooting/unclosed-streams","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/error-handling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/multiple-streamables","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/client-stream-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-not-working-when-deployed","title":"Streaming Not Working When Deployed","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-not-working-when-proxied","distance":0.2001},{"site":"ai-sdk","path":"/docs/troubleshooting/azure-stream-slow","distance":0.4036},{"site":"ai-sdk","path":"/cookbook/api-servers/fastify","distance":0.4328},{"site":"ai-sdk","path":"/cookbook/api-servers/express","distance":0.4357},{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-status-delay","distance":0.4375}],"related":[{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-not-working-when-proxied","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/streaming-from-llm","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/azure-stream-slow","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/api-servers/fastify","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/api-servers/express","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-status-delay","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-not-working-when-proxied","title":"Streaming Not Working When Proxied","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/cookbook/api-servers/express"},{"site":"ai-sdk","path":"/cookbook/api-servers/fastify"},{"site":"ai-sdk","path":"/cookbook/api-servers/hono"},{"site":"ai-sdk","path":"/cookbook/api-servers/nest"},{"site":"ai-sdk","path":"/cookbook/api-servers/node-http-server"},{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-not-working-when-deployed","distance":0.2001},{"site":"ai-sdk","path":"/docs/troubleshooting/azure-stream-slow","distance":0.4387},{"site":"ai-sdk","path":"/cookbook/api-servers/fastify","distance":0.4502},{"site":"ai-sdk","path":"/cookbook/api-servers/express","distance":0.4578},{"site":"ai-sdk","path":"/cookbook/api-servers/hono","distance":0.4709}],"related":[{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-not-working-when-deployed","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/streaming-from-llm","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/azure-stream-slow","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/api-servers/fastify","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/api-servers/express","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/api-servers/hono","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-status-delay","title":"Streaming Status Shows But No Text Appears","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","distance":0.3242},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-chat-prompt","distance":0.3493},{"site":"ai-sdk","path":"/docs/troubleshooting/strange-stream-output","distance":0.3713},{"site":"ai-sdk","path":"/docs/troubleshooting/repeated-assistant-messages","distance":0.3759},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-failed-to-parse-stream","distance":0.3951}],"related":[{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/streaming-from-llm","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/strange-stream-output","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/repeated-assistant-messages","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-failed-to-parse-stream","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/timeout-on-vercel","title":"Getting Timeouts When Deploying on Vercel","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration"}],"inbound":[{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out","distance":0.264},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration","distance":0.2901},{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","distance":0.3164},{"site":"vercel-docs","path":"/docs/functions/streaming-functions","distance":0.3222},{"site":"vercel-kb","path":"/kb/guide/how-do-i-lower-my-serverless-function-execution-time","distance":0.3229}],"related":[{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-lower-my-serverless-function-execution-time","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/limitations","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-build-error-build-step-did-not-complete-within-45-minutes","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/investigate-latency-issues-and-slowness","via":"neighbor"},{"site":"vercel-docs","path":"/docs/limits","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/tool-calling-with-structured-outputs","title":"Tool calling with structured outputs","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data","distance":0.2689},{"site":"ai-sdk","path":"/cookbook/node/call-tools-multiple-steps","distance":0.2871},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","distance":0.2987},{"site":"ai-sdk","path":"/cookbook/node/call-tools","distance":0.3065},{"site":"ai-sdk","path":"/cookbook/node/call-tools-in-parallel","distance":0.3138}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/tool-calling","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools-multiple-steps","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools-in-parallel","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/tool-invocation-missing-result","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/tool-invocation-missing-result","title":"Tool Invocation Missing Result Error","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/missing-tool-results-error","distance":0.2846},{"site":"ai-sdk","path":"/cookbook/node/call-tools","distance":0.2853},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-tool-usage","distance":0.3148},{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps","distance":0.3297},{"site":"ai-sdk","path":"/cookbook/next/render-visual-interface-in-chat","distance":0.3412}],"related":[{"site":"ai-sdk","path":"/docs/troubleshooting/missing-tool-results-error","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-tool-usage","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/render-visual-interface-in-chat","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/typescript-cannot-find-namespace-jsx","title":"TypeScript error \"Cannot find namespace 'JSX'\"","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/jest-cannot-find-module-ai-rsc","distance":0.4256},{"site":"ai-sdk","path":"/docs/troubleshooting/typescript-performance-zod","distance":0.4469},{"site":"ai-sdk","path":"/docs/troubleshooting/react-maximum-update-depth-exceeded","distance":0.4494},{"site":"ai-sdk","path":"/docs/troubleshooting/model-is-not-assignable-to-type","distance":0.5084},{"site":"nextjs","path":"/docs/app/api-reference/config/typescript","distance":0.5095}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/typescript","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-11","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/mdx-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/typescript","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/jest-cannot-find-module-ai-rsc","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/typescript-performance-zod","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/react-maximum-update-depth-exceeded","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/model-is-not-assignable-to-type","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/navigating-the-library","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/typescript-performance-zod","title":"TypeScript performance issues with Zod and AI SDK 5","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-5-0"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/no-object-generated-content-filter","distance":0.4467},{"site":"ai-sdk","path":"/docs/troubleshooting/typescript-cannot-find-namespace-jsx","distance":0.4469},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/zod-schema","distance":0.4555},{"site":"ai-sdk","path":"/docs/troubleshooting/unsupported-model-version","distance":0.4654},{"site":"nextjs","path":"/docs/app/api-reference/config/typescript","distance":0.4698}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/typescript","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/typescript","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/typescript","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/no-object-generated-content-filter","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/typescript-cannot-find-namespace-jsx","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/zod-schema","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/unsupported-model-version","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/react-maximum-update-depth-exceeded","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/unclosed-streams","title":"Unclosed Streams","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-ui"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/error-handling","distance":0.322},{"site":"ai-sdk","path":"/docs/advanced/multiple-streamables","distance":0.342},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-ui","distance":0.3642},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","distance":0.3782},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values","distance":0.3826}],"related":[{"site":"workflow","path":"/docs/foundations/streaming","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/error-handling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/multiple-streamables","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/streamable-ui-errors","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/unsupported-model-version","title":"Unsupported model version error","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-5-0"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/model-is-not-assignable-to-type","distance":0.3173},{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","distance":0.4011},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.4292},{"site":"ai-sdk","path":"/providers/community-providers/gemini-cli","distance":0.4333},{"site":"ai-sdk","path":"/providers/community-providers/ollama","distance":0.4393}],"related":[{"site":"ai-sdk","path":"/docs/troubleshooting/model-is-not-assignable-to-type","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/gemini-cli","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/ollama","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-an-error-occurred","title":"useChat \"An error occurred\"","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-failed-to-parse-stream","distance":0.2887},{"site":"ai-sdk","path":"/docs/troubleshooting/stream-text-not-working","distance":0.3093},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-tools-no-response","distance":0.3528},{"site":"ai-sdk","path":"/docs/troubleshooting/strange-stream-output","distance":0.3695},{"site":"ai-sdk","path":"/docs/troubleshooting/repeated-assistant-messages","distance":0.3989}],"related":[{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-streaming","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-failed-to-parse-stream","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/stream-text-not-working","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-tools-no-response","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/strange-stream-output","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/repeated-assistant-messages","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-custom-request-options","title":"Custom headers, body, and credentials not working with useChat","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-stale-body-data","distance":0.1897},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot","distance":0.2929},{"site":"ai-sdk","path":"/cookbook/next/send-custom-body-from-use-chat","distance":0.3418},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/transport","distance":0.3652},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","distance":0.4171}],"related":[{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-stale-body-data","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-ai/workflow-chat-transport","via":"neighbor"},{"site":"workflow","path":"/docs/ai/chat-session-modeling","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/send-custom-body-from-use-chat","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/transport","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/direct-chat-transport","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-failed-to-parse-stream","title":"useChat Failed to Parse Stream","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-completion"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/strange-stream-output","distance":0.1866},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-an-error-occurred","distance":0.2887},{"site":"ai-sdk","path":"/docs/troubleshooting/stream-text-not-working","distance":0.3474},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-tools-no-response","distance":0.3668},{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-status-delay","distance":0.3951}],"related":[{"site":"ai-sdk","path":"/docs/troubleshooting/strange-stream-output","via":"neighbor"},{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-an-error-occurred","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/stream-text-not-working","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-tools-no-response","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-status-delay","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-stale-body-data","title":"Stale body values with useChat","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-custom-request-options","distance":0.1897},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot","distance":0.3085},{"site":"ai-sdk","path":"/cookbook/next/send-custom-body-from-use-chat","distance":0.3127},{"site":"ai-sdk","path":"/cookbook/next/use-shared-chat-context","distance":0.3914},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","distance":0.4081}],"related":[{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-custom-request-options","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/send-custom-body-from-use-chat","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/use-shared-chat-context","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-tools-no-response","title":"useChat No Response","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/convert-to-model-messages"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-an-error-occurred","distance":0.3528},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/convert-to-model-messages","distance":0.3585},{"site":"ai-sdk","path":"/docs/troubleshooting/tool-invocation-missing-result","distance":0.3607},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-failed-to-parse-stream","distance":0.3668},{"site":"ai-sdk","path":"/cookbook/next/render-visual-interface-in-chat","distance":0.3669}],"related":[{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-an-error-occurred","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/tool-invocation-missing-result","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-failed-to-parse-stream","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/render-visual-interface-in-chat","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/strange-stream-output","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/adapters","title":"Adapters","summary":null,"outbound":[{"site":"ai-sdk","path":"/providers/adapters/langchain"},{"site":"ai-sdk","path":"/providers/adapters/llamaindex"}],"inbound":[],"requires":[],"neighbors":[{"site":"chat-sdk","path":"/docs/platform-adapters","distance":0.3231},{"site":"chat-sdk","path":"/docs","distance":0.3326},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui","distance":0.3469},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview","distance":0.3576},{"site":"ai-sdk","path":"/providers/adapters/llamaindex","distance":0.3652}],"related":[{"site":"chat-sdk","path":"/docs/platform-adapters","via":"neighbor"},{"site":"chat-sdk","path":"/docs","via":"neighbor"},{"site":"chat-sdk","path":"/docs/state-adapters","via":"neighbor"},{"site":"chat-sdk","path":"/docs/adapters","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/adapters","via":"neighbor"},{"site":"chat-sdk","path":"/docs/usage","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/adapters/langchain","title":"LangChain","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot"}],"inbound":[{"site":"ai-sdk","path":"/providers/adapters"},{"site":"vercel-kb","path":"/kb/guide/library-sdk-compatible-with-vercel-edge-runtime-and-functions"},{"site":"vercel-kb","path":"/kb/guide/nextjs-langchain-vercel-ai"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/direct-chat-transport","distance":0.2572},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot","distance":0.2623},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/transport","distance":0.2874},{"site":"chat-sdk","path":"/docs/streaming","distance":0.2954},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui","distance":0.2984}],"related":[{"site":"vercel-kb","path":"/kb/guide/library-sdk-compatible-with-vercel-edge-runtime-and-functions","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/nextjs-langchain-vercel-ai","via":"inbound"},{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-ai/workflow-chat-transport","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/direct-chat-transport","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/transport","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/adapters/llamaindex","title":"LlamaIndex","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/completion"}],"inbound":[{"site":"ai-sdk","path":"/providers/adapters"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","distance":0.2752},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/llamaindex","distance":0.2963},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview","distance":0.346},{"site":"vercel-kb","path":"/kb/guide/what-is-a-large-language-model","distance":0.3504},{"site":"ai-sdk","path":"/providers/community-providers/llamagate","distance":0.3534}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/llamaindex","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-a-large-language-model","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/streaming-from-llm","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/llamagate","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/llama-cpp","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses","title":"AI SDK Harnesses","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses","distance":0.109},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/overview","distance":0.1333},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters","distance":0.151},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/opencode","distance":0.1726},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/cline","distance":0.196}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-agent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/tools","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/acp","title":"Agent Client Protocol","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-agent"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/tools"}],"inbound":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/grok-build"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/grok-build","distance":0.1288},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters","distance":0.1942},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/codex","distance":0.2094},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/claude-code","distance":0.2318},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses","distance":0.2439}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/grok-build","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/sandboxed-coding-agent-with-harnessagent","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/codex","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/claude-code","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/cline","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/opencode","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/claude-code","title":"Claude Code","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-agent"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/tools"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/opencode","distance":0.1023},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/cline","distance":0.1519},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents","distance":0.1588},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/codex","distance":0.1685},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-agent","distance":0.1816}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/opencode","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/claude-code","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/sandboxed-coding-agent-with-harnessagent","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/cline","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/codex","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/pi","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/cline","title":"Cline","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-agent"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/tools"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/pi"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/claude-code","distance":0.1519},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents","distance":0.157},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-agent","distance":0.1704},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/opencode","distance":0.1782},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/pi","distance":0.1871}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/claude-code","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/opencode","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/overview","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/grok-build","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/codex","title":"Codex","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-agent"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/tools"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/opencode","distance":0.1272},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/claude-code","distance":0.1685},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents","distance":0.1984},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses","distance":0.209},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/acp","distance":0.2094}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/opencode","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openai-codex","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/claude-code","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/acp","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/pi","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents","title":"Deep Agents","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-agent"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/tools"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/opencode","distance":0.1477},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/cline","distance":0.157},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/claude-code","distance":0.1588},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-agent","distance":0.1678},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/pi","distance":0.1773}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/opencode","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/sandboxed-coding-agent-with-harnessagent","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/cline","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/claude-code","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/pi","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/codex","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/grok-build","title":"Grok Build","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-agent"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/tools"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/acp"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/acp","distance":0.1288},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/opencode","distance":0.1998},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents","distance":0.2033},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters","distance":0.2069},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/pi","distance":0.2097}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/grok-build","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/sandboxed-coding-agent-with-harnessagent","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/opencode","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/pi","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/cline","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/claude-code","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/opencode","title":"OpenCode","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-agent"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/tools"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/claude-code","distance":0.1023},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/codex","distance":0.1272},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents","distance":0.1477},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/pi","distance":0.1619},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses","distance":0.1726}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/claude-code","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/codex","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/pi","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/sandboxed-coding-agent-with-harnessagent","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/cline","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/pi","title":"Pi","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-agent"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/tools"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/cline"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/opencode","distance":0.1619},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents","distance":0.1773},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/claude-code","distance":0.1817},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/cline","distance":0.1871},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-agent","distance":0.1916}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/opencode","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/claude-code","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/cline","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/grok-build","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers","title":"AI SDK Providers","summary":null,"outbound":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/alibaba"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/baseten"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cerebras"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cohere"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepseek"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fireworks"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google-vertex"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/groq"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/mistral"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/moonshotai"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/xai"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/multi-modal-chatbot"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider"},{"site":"ai-sdk","path":"/docs/getting-started/expo"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-router"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-pages-router"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs"},{"site":"ai-sdk","path":"/docs/getting-started/nuxt"},{"site":"ai-sdk","path":"/docs/getting-started/svelte"},{"site":"ai-sdk","path":"/docs/getting-started/tanstack-start"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway"},{"site":"ai-sdk","path":"/providers/observability/langsmith"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/byok"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/advanced"},{"site":"workflow","path":"/docs/ai"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","distance":0.1027},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.2697},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/moonshotai","distance":0.3022},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","distance":0.3221},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","distance":0.3242}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/byok","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/advanced","via":"inbound"},{"site":"workflow","path":"/docs/ai","via":"inbound"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/image-generation","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/crusoe","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway","title":"AI Gateway","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/realtime"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google-vertex"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-timeouts"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/oidc"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/rag-chatbot"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/realtime"},{"site":"ai-sdk","path":"/docs/foundations/provider-options"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider"},{"site":"ai-sdk","path":"/docs/getting-started/expo"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-router"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-pages-router"},{"site":"ai-sdk","path":"/docs/getting-started/svelte"},{"site":"ai-sdk","path":"/docs/getting-started/tanstack-start"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/custom-reporting"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/rest-api"},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/durable-web-research-agent-with-workflow-sdk"},{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-your-own-ai-model-router"},{"site":"vercel-kb","path":"/kb/guide/linear-agent-vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/liveblocks-chat-sdk-ai-sdk"},{"site":"vercel-kb","path":"/kb/guide/slack-bot-vercel-blob"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","distance":0.2106},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","distance":0.2347},{"site":"ai-sdk","path":"/docs/ai-sdk-core/realtime","distance":0.2445},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai","distance":0.2469},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","distance":0.2497}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/custom-reporting","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/rest-api","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/durable-web-research-agent-with-workflow-sdk","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-your-own-ai-model-router","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/web-search","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/cloudflare-ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/provider-options","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/alibaba","title":"Alibaba","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/embed"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/embed-many"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-video"}],"inbound":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","distance":0.2029},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/klingai","distance":0.2318},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/bytedance","distance":0.2328},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/text-to-video","distance":0.2408},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/minimax","distance":0.2545}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/text-to-video","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/reference-to-video","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/image-to-video","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/klingai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/bytedance","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/minimax","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/amazon-bedrock","title":"Amazon Bedrock","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/settings"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/image-generation"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/reranking"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-3"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic-aws"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai","distance":0.2422},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway","distance":0.2641},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic","distance":0.2825},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/azure","distance":0.2886},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","distance":0.2998}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/web-search","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/azure","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic","title":"Anthropic","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot"},{"site":"ai-sdk","path":"/docs/foundations/prompts"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/computer-use"},{"site":"ai-sdk","path":"/cookbook/next/generate-object-with-file-prompt"},{"site":"ai-sdk","path":"/docs/foundations/prompts"},{"site":"ai-sdk","path":"/docs/foundations/provider-options"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"},{"site":"ai-sdk","path":"/docs/foundations/tools"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic-aws"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/automatic-caching"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-skill-uploads"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/anthropic","distance":0.1861},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/reasoning","distance":0.2503},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning","distance":0.2702},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/amazon-bedrock","distance":0.2825},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/reasoning","distance":0.2837}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/automatic-caching","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-skill-uploads","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/anthropic","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/reasoning","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/amazon-bedrock","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/xai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/reasoning","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/provider-options","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic-aws","title":"Claude Platform on AWS","summary":null,"outbound":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/amazon-bedrock"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/claude-code","distance":0.2853},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api","distance":0.2868},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/claude-code","distance":0.3117},{"site":"ai-sdk","path":"/providers/community-providers/anthropic-vertex-ai","distance":0.3242},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/amazon-bedrock","distance":0.3496}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/claude-code","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/advanced","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/claude-code","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/anthropic-vertex-ai","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/claude-4","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/sonnet-3-7","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/assemblyai","title":"AssemblyAI","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram","distance":0.2153},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fish-audio","distance":0.2468},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","distance":0.2601},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs","distance":0.2641},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/revai","distance":0.2823}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/speech-to-text","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fish-audio","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/revai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/azure","title":"Azure OpenAI","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/settings"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/r1"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/xai","distance":0.2487},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/open-responses","distance":0.2525},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai","distance":0.258},{"site":"ai-sdk","path":"/providers/openai-compatible-providers","distance":0.2715},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.2766}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/web-search","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/xai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/open-responses","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepseek","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/baseten","title":"Baseten","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","distance":0.2983},{"site":"ai-sdk","path":"/providers/openai-compatible-providers","distance":0.3},{"site":"ai-sdk","path":"/providers/community-providers/mixedbread","distance":0.3087},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","distance":0.3159},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.3167}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/mixedbread","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/black-forest-labs","title":"Black Forest Labs","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-image"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-video"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/image-generation"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/openai"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/bytedance","distance":0.2147},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","distance":0.2158},{"site":"ai-sdk","path":"/providers/community-providers/runpod","distance":0.2463},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fireworks","distance":0.274},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/klingai","distance":0.2742}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/openai","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/text-to-video","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/video","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/bytedance","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/runpod","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fireworks","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/klingai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/bytedance","title":"ByteDance","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-image"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-video"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","distance":0.1862},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/text-to-video","distance":0.1922},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/black-forest-labs","distance":0.2147},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/klingai","distance":0.2229},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/reference-to-video","distance":0.2314}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/text-to-video","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/reference-to-video","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/video","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/image-to-video","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/black-forest-labs","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/klingai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/alibaba","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cartesia","title":"Cartesia","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/realtime"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","distance":0.2023},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs","distance":0.219},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram","distance":0.2457},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fish-audio","distance":0.247},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/speech-to-text","distance":0.2707}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/speech-to-text","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fish-audio","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/groq","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/mistral","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cerebras","title":"Cerebras","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot"}],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.2434},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepseek","distance":0.261},{"site":"ai-sdk","path":"/providers/community-providers/crusoe","distance":0.2649},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cohere","distance":0.2726},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/moonshotai","distance":0.2771}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/reasoning","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepseek","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/crusoe","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cohere","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/moonshotai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cohere","title":"Cohere","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/reranking"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers"},{"site":"vercel-kb","path":"/kb/guide/library-sdk-compatible-with-vercel-edge-runtime-and-functions"},{"site":"vercel-kb","path":"/kb/guide/nextjs-langchain-vercel-ai"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai","distance":0.1549},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/voyage","distance":0.1982},{"site":"ai-sdk","path":"/docs/ai-sdk-core/reranking","distance":0.2019},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/cohere-rerank","distance":0.2537},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/mistral","distance":0.2649}],"related":[{"site":"vercel-kb","path":"/kb/guide/library-sdk-compatible-with-vercel-edge-runtime-and-functions","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/nextjs-langchain-vercel-ai","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/cohere-rerank","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/voyage","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/reranking","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/mistral","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram","title":"Deepgram","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","distance":0.2028},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/assemblyai","distance":0.2153},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs","distance":0.2254},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/groq","distance":0.2418},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fish-audio","distance":0.244}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/assemblyai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/groq","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fish-audio","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","title":"DeepInfra","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/embed"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-image"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/image-generation"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.2172},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","distance":0.2195},{"site":"ai-sdk","path":"/docs/ai-sdk-core/image-generation","distance":0.2311},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fireworks","distance":0.2311},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/mistral","distance":0.2504}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/image-generation","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fireworks","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/mistral","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepseek","title":"DeepSeek","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/r1"},{"site":"ai-sdk","path":"/cookbook/node/generate-object-reasoning"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.206},{"site":"ai-sdk","path":"/cookbook/guides/r1","distance":0.211},{"site":"ai-sdk","path":"/cookbook/guides/deepseek-v3-2","distance":0.2478},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cerebras","distance":0.261},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/moonshotai","distance":0.2697}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"inbound"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/r1","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/deepseek-v3-2","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cerebras","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/moonshotai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs","title":"ElevenLabs","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fish-audio","distance":0.211},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","distance":0.2147},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cartesia","distance":0.219},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram","distance":0.2254},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/groq","distance":0.2609}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/speech-to-text","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fish-audio","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cartesia","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/groq","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/assemblyai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fal","title":"Fal","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-image"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/image-generation"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/runpod","distance":0.2463},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.2703},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/replicate","distance":0.2801},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram","distance":0.2834},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fish-audio","distance":0.2852}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","via":"inbound"},{"site":"ai-sdk","path":"/providers/community-providers/runpod","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/replicate","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fish-audio","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fireworks","title":"Fireworks","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/settings"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-image"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1"},{"site":"ai-sdk","path":"/cookbook/guides/r1"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/image-generation"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/image-generation","distance":0.2123},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","distance":0.2311},{"site":"ai-sdk","path":"/providers/community-providers/runpod","distance":0.2576},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/black-forest-labs","distance":0.274},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/replicate","distance":0.2771}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/image-generation","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/runpod","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/black-forest-labs","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/replicate","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fish-audio","title":"Fish Audio","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs","distance":0.211},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","distance":0.2435},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram","distance":0.244},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/assemblyai","distance":0.2468},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cartesia","distance":0.247}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/speech-to-text","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/assemblyai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cartesia","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/gladia","title":"Gladia","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram","distance":0.2603},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/revai","distance":0.2748},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","distance":0.3138},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/assemblyai","distance":0.3158},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/groq","distance":0.3171}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/revai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/assemblyai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/groq","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/gmicloud","title":"GMI Cloud","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","distance":0.3306},{"site":"ai-sdk","path":"/providers/community-providers/cloudflare-ai-gateway","distance":0.3403},{"site":"ai-sdk","path":"/providers/community-providers/gemini-cli","distance":0.3466},{"site":"ai-sdk","path":"/providers/community-providers/apertis","distance":0.3555},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/nearai","distance":0.3663}],"related":[{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/cloudflare-ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/gemini-cli","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/apertis","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/nearai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google","title":"Google","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/realtime"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/settings"},{"site":"ai-sdk","path":"/docs/foundations/prompts"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-image"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-translate"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/gemini"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/image-generation"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/translation"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google-vertex","distance":0.2345},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/xai","distance":0.2991},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/groq","distance":0.3028},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/google","distance":0.3033},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/web-search","distance":0.3037}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/google","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/web-search","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google-vertex","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/xai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/groq","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/azure","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gemini","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google-vertex","title":"Google Vertex AI","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/settings"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot"},{"site":"ai-sdk","path":"/docs/foundations/prompts"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-image"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-speech"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-video"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/transcribe"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/image-generation"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/openai"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/anthropic-vertex-ai","distance":0.2247},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google","distance":0.2345},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway","distance":0.2565},{"site":"ai-sdk","path":"/providers/community-providers/gemini-cli","distance":0.2865},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/amazon-bedrock","distance":0.3037}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/openai","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/google","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/oidc/gcp","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/anthropic-vertex-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/gemini-cli","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/amazon-bedrock","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/azure","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/groq","title":"Groq","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/r1"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/xai","distance":0.2055},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram","distance":0.2418},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","distance":0.2429},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs","distance":0.2609},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/mistral","distance":0.2656}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/xai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/mistral","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","title":"Hugging Face","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core"}],"inbound":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"},{"site":"vercel-kb","path":"/kb/guide/nextjs-langchain-vercel-ai"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepseek","distance":0.206},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/moonshotai","distance":0.2163},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","distance":0.2172},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","distance":0.2398},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cerebras","distance":0.2434}],"related":[{"site":"vercel-kb","path":"/kb/guide/nextjs-langchain-vercel-ai","via":"inbound"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepseek","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/moonshotai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cerebras","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/hume","title":"Hume","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.276},{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech","distance":0.3192},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/lmnt","distance":0.3194},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fal","distance":0.3226},{"site":"ai-sdk","path":"/providers/community-providers/aihubmix","distance":0.3332}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/lmnt","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fal","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/aihubmix","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/klingai","title":"Kling AI","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-video"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","distance":0.1786},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/image-to-video","distance":0.2084},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/bytedance","distance":0.2229},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/motion-control","distance":0.2256},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/alibaba","distance":0.2318}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/image-to-video","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/motion-control","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/text-to-video","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/video","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/reference-to-video","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/bytedance","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/alibaba","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/black-forest-labs","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/moonshotai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/lmnt","title":"LMNT","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech","distance":0.3016},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/hume","distance":0.3194},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram","distance":0.3359},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fal","distance":0.3411},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/open-responses","distance":0.3419}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/hume","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fal","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/open-responses","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/luma","title":"Luma","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-image"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/image-generation"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/replicate","distance":0.2735},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/prodia","distance":0.2952},{"site":"ai-sdk","path":"/providers/community-providers/runpod","distance":0.2952},{"site":"ai-sdk","path":"/providers/community-providers/firemoon","distance":0.3001},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","distance":0.305}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/openai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/replicate","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/prodia","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/runpod","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/firemoon","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/minimax","title":"MiniMax","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-video"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/minimax","distance":0.1475},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/moonshotai","distance":0.2538},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/alibaba","distance":0.2545},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.2573},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","distance":0.2623}],"related":[{"site":"ai-sdk","path":"/providers/community-providers/minimax","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/moonshotai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/alibaba","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/mistral","title":"Mistral AI","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/settings"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-speech"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/transcribe"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","distance":0.2504},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cohere","distance":0.2649},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/groq","distance":0.2656},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","distance":0.273},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cartesia","distance":0.2754}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cohere","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/groq","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cartesia","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/moonshotai","title":"Moonshot AI","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot"}],"inbound":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.2163},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/minimax","distance":0.2538},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepseek","distance":0.2697},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cerebras","distance":0.2771},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fireworks","distance":0.2882}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/minimax","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepseek","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cerebras","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fireworks","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/open-responses","title":"Open Responses","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/reasoning"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/azure","distance":0.2525},{"site":"ai-sdk","path":"/docs/foundations/provider-options","distance":0.2554},{"site":"ai-sdk","path":"/providers/openai-compatible-providers","distance":0.2611},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","distance":0.2621},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses","distance":0.2813}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/azure","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/provider-options","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai","title":"OpenAI","summary":null,"outbound":[{"site":"ai-sdk","path":"/cookbook/next/human-in-the-loop"},{"site":"ai-sdk","path":"/docs/ai-sdk-core"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/image-generation"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-tools"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/realtime"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/settings"},{"site":"ai-sdk","path":"/docs/foundations/prompts"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-translate"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/o1"},{"site":"ai-sdk","path":"/cookbook/guides/o3"},{"site":"ai-sdk","path":"/cookbook/guides/openai-responses"},{"site":"ai-sdk","path":"/cookbook/next/generate-object-with-file-prompt"},{"site":"ai-sdk","path":"/cookbook/node/generate-object-reasoning"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/image-generation"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/prompt-engineering"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/translation"},{"site":"ai-sdk","path":"/docs/foundations/prompts"},{"site":"ai-sdk","path":"/docs/foundations/provider-options"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"},{"site":"ai-sdk","path":"/docs/foundations/tools"},{"site":"ai-sdk","path":"/docs/troubleshooting/no-object-generated-content-filter"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/azure"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/open-responses"},{"site":"ai-sdk","path":"/providers/community-providers/crosshatch"},{"site":"ai-sdk","path":"/providers/observability/langsmith"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-skill-uploads"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","distance":0.2323},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/amazon-bedrock","distance":0.2422},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway","distance":0.2469},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/azure","distance":0.258},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/xai","distance":0.2653}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-skill-uploads","via":"inbound"},{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/amazon-bedrock","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/azure","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/xai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/perplexity","title":"Perplexity","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.2615},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","distance":0.27},{"site":"ai-sdk","path":"/providers/openai-compatible-providers","distance":0.279},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","distance":0.2828},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/mistral","distance":0.2862}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/perplexity","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/mistral","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/prodia","title":"Prodia","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-image"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/replicate","distance":0.2336},{"site":"ai-sdk","path":"/providers/community-providers/runpod","distance":0.2518},{"site":"ai-sdk","path":"/providers/community-providers/firemoon","distance":0.2822},{"site":"ai-sdk","path":"/providers/openai-compatible-providers","distance":0.2894},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/luma","distance":0.2952}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/replicate","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/runpod","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/firemoon","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/luma","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/quiverai","title":"QuiverAI","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-image"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk","distance":0.3382},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/replicate","distance":0.3419},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/image","distance":0.3454},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","distance":0.3503},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-image","distance":0.3546}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/image","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/openai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/replicate","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/luma","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/klingai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/prodia","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/replicate","title":"Replicate","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-image"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/image-generation"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation"},{"site":"vercel-kb","path":"/kb/guide/library-sdk-compatible-with-vercel-edge-runtime-and-functions"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/runpod","distance":0.181},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/prodia","distance":0.2336},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","distance":0.2508},{"site":"ai-sdk","path":"/docs/ai-sdk-core/image-generation","distance":0.2671},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/luma","distance":0.2735}],"related":[{"site":"vercel-kb","path":"/kb/guide/library-sdk-compatible-with-vercel-edge-runtime-and-functions","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/runpod","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/prodia","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/image-generation","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/luma","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/revai","title":"Rev.ai","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram","distance":0.265},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","distance":0.2663},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/gladia","distance":0.2748},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/assemblyai","distance":0.2823},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs","distance":0.2909}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/speech-to-text","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/gladia","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/assemblyai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai","title":"Together.ai","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/embed"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-image"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/rerank"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/r1"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/image-generation"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/reranking"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cohere","distance":0.1549},{"site":"ai-sdk","path":"/docs/ai-sdk-core/reranking","distance":0.2182},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","distance":0.2537},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/voyage","distance":0.2548},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/xai","distance":0.2762}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cohere","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/reranking","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/voyage","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/xai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/voyage","title":"Voyage AI","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/voyage-ai","distance":0.1749},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cohere","distance":0.1982},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai","distance":0.2548},{"site":"ai-sdk","path":"/docs/ai-sdk-core/reranking","distance":0.2765},{"site":"ai-sdk","path":"/providers/community-providers/zeroentropy","distance":0.2999}],"related":[{"site":"ai-sdk","path":"/providers/community-providers/voyage-ai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/cohere-rerank","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/reranking","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cohere","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/reranking","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/zeroentropy","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/xai","title":"xAI Grok","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/realtime"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-image"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-video"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/image-generation"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/groq","distance":0.2055},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/azure","distance":0.2487},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.2625},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai","distance":0.2653},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","distance":0.2671}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/groq","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/azure","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers","title":"Community Providers","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider"},{"site":"ai-sdk","path":"/docs/getting-started/expo"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-router"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-pages-router"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs"},{"site":"ai-sdk","path":"/docs/getting-started/nuxt"},{"site":"ai-sdk","path":"/docs/getting-started/svelte"},{"site":"ai-sdk","path":"/docs/getting-started/tanstack-start"},{"site":"ai-sdk","path":"/providers/community-providers/custom-providers"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2836},{"site":"ai-sdk","path":"/providers/community-providers/sap-ai","distance":0.3281},{"site":"ai-sdk","path":"/docs/introduction","distance":0.3376},{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","distance":0.3415},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","distance":0.359}],"related":[{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/docs/introduction","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/a2a","title":"A2A","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/acp","distance":0.3159},{"site":"ai-sdk","path":"/providers/community-providers/aihubmix","distance":0.3296},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","distance":0.331},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.3503},{"site":"ai-sdk","path":"/providers/community-providers/browser-ai","distance":0.3585}],"related":[{"site":"ai-sdk","path":"/providers/community-providers/acp","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/aihubmix","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/browser-ai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/acp","title":"ACP (Agent Client Protocol)","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/mcp-sampling","distance":0.2424},{"site":"eve","path":"/docs/protocols/acp","distance":0.2748},{"site":"ai-sdk","path":"/providers/community-providers/claude-code","distance":0.2849},{"site":"nextjs","path":"/docs/app/guides/mcp","distance":0.307},{"site":"ai-sdk","path":"/providers/community-providers/a2a","distance":0.3159}],"related":[{"site":"eve","path":"/docs/protocols/acp","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/mcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/mcp-sampling","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/claude-code","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/a2a","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/acp","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/mcp-tools","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/aihubmix","title":"Aihubmix","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/apertis","distance":0.2648},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.2844},{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","distance":0.2857},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","distance":0.2943},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","distance":0.299}],"related":[{"site":"ai-sdk","path":"/providers/community-providers/apertis","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","title":"AI/ML API","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/apertis","distance":0.2294},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2367},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","distance":0.2877},{"site":"ai-sdk","path":"/providers/community-providers/aihubmix","distance":0.2943},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","distance":0.2956}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-provider","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/apertis","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/aihubmix","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/cloudflare-ai-gateway","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/anthropic-vertex-ai","title":"Anthropic Vertex","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output"}],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google-vertex","distance":0.2247},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2696},{"site":"ai-sdk","path":"/providers/community-providers/gemini-cli","distance":0.3071},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic-aws","distance":0.3242},{"site":"ai-sdk","path":"/providers/community-providers/apertis","distance":0.3377}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google-vertex","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/gemini-cli","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic-aws","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/apertis","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/apertis","title":"Apertis","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","distance":0.2294},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2393},{"site":"ai-sdk","path":"/providers/community-providers/openrouter","distance":0.2524},{"site":"ai-sdk","path":"/providers/community-providers/aihubmix","distance":0.2648},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","distance":0.2777}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/openrouter","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/aihubmix","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/automatic1111","title":"Automatic1111","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/replicate","distance":0.322},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/prodia","distance":0.3297},{"site":"ai-sdk","path":"/providers/community-providers/runpod","distance":0.3433},{"site":"ai-sdk","path":"/providers/community-providers/firemoon","distance":0.3508},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/luma","distance":0.352}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/openai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/replicate","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/prodia","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/runpod","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/firemoon","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/luma","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/azure-ai","title":"Azure AI","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/qvac","distance":0.2733},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","distance":0.2867},{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","distance":0.3023},{"site":"ai-sdk","path":"/providers/community-providers/qwen","distance":0.3074},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/azure","distance":0.3108}],"related":[{"site":"ai-sdk","path":"/providers/community-providers/qvac","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/qwen","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/azure","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/browser-ai","title":"Browser AI","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2705},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","distance":0.2809},{"site":"ai-sdk","path":"/docs/introduction","distance":0.2831},{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","distance":0.2859},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","distance":0.2935}],"related":[{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/introduction","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/cencori","title":"Cencori","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2907},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","distance":0.2947},{"site":"ai-sdk","path":"/providers/community-providers/opencode-sdk","distance":0.305},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","distance":0.3119},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cerebras","distance":0.3167}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/rest-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/opencode-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cerebras","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/portkey","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/helicone","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/claude-code","title":"Claude Code","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/opencode-sdk","distance":0.2329},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/claude-code","distance":0.2537},{"site":"ai-sdk","path":"/providers/community-providers/codex-cli","distance":0.2613},{"site":"ai-sdk","path":"/providers/community-providers/acp","distance":0.2849},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic-aws","distance":0.2853}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/claude-code","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/opencode-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/codex-cli","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/acp","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic-aws","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/codex-app-server","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/cloudflare-ai-gateway","title":"Cloudflare AI Gateway","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/cloudflare-workers-ai","distance":0.2251},{"site":"vercel-docs","path":"/docs/ai-gateway","distance":0.2254},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","distance":0.2487},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2538},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway","distance":0.2545}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/cloudflare-workers-ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/apertis","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/neon-ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/cloudflare-workers-ai","title":"Cloudflare Workers AI","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output"}],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/cloudflare-ai-gateway","distance":0.2251},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","distance":0.3082},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","distance":0.3087},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/heroku","distance":0.3117},{"site":"ai-sdk","path":"/providers/community-providers/browser-ai","distance":0.3123}],"related":[{"site":"ai-sdk","path":"/providers/community-providers/cloudflare-ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/heroku","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/browser-ai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/codex-app-server","title":"Codex CLI (App Server)","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/codex-cli","distance":0.1038},{"site":"ai-sdk","path":"/providers/community-providers/opencode-sdk","distance":0.2383},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openai-codex","distance":0.2843},{"site":"ai-sdk","path":"/providers/community-providers/claude-code","distance":0.291},{"site":"ai-sdk","path":"/providers/community-providers/acp","distance":0.3372}],"related":[{"site":"ai-sdk","path":"/providers/community-providers/codex-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openai-codex","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/opencode-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/claude-code","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/acp","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/cencori","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/codex-cli","title":"Codex CLI","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/codex-app-server","distance":0.1038},{"site":"ai-sdk","path":"/providers/community-providers/opencode-sdk","distance":0.231},{"site":"ai-sdk","path":"/providers/community-providers/claude-code","distance":0.2613},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openai-codex","distance":0.266},{"site":"ai-sdk","path":"/providers/community-providers/gemini-cli","distance":0.2925}],"related":[{"site":"ai-sdk","path":"/providers/community-providers/codex-app-server","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openai-codex","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/opencode-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/claude-code","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/gemini-cli","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cerebras","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/crosshatch","title":"Crosshatch","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai"}],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.3033},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","distance":0.304},{"site":"ai-sdk","path":"/providers/community-providers/aihubmix","distance":0.323},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/heroku","distance":0.3278},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.33}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/aihubmix","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/heroku","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/crusoe","title":"Crusoe","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.2534},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cerebras","distance":0.2649},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","distance":0.2821},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepseek","distance":0.2889},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","distance":0.2905}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cerebras","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepseek","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/custom-providers","title":"Writing a Custom Provider","summary":null,"outbound":[{"site":"ai-sdk","path":"/providers/community-providers"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/multi-modal-chatbot"},{"site":"ai-sdk","path":"/cookbook/guides/rag-chatbot"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs"},{"site":"ai-sdk","path":"/docs/getting-started/nuxt"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-1"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","distance":0.2616},{"site":"ai-sdk","path":"/docs/foundations/prompts","distance":0.2663},{"site":"ai-sdk","path":"/providers/openai-compatible-providers","distance":0.2871},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","distance":0.2893},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text","distance":0.2947}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/prompts","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/dify","title":"Dify","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/flowise","distance":0.3584},{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","distance":0.3895},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","distance":0.3968},{"site":"ai-sdk","path":"/providers/community-providers/zhipu","distance":0.4063},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","distance":0.4068}],"related":[{"site":"ai-sdk","path":"/providers/community-providers/flowise","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/zhipu","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/firemoon","title":"Firemoon","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/prodia","distance":0.2822},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fireworks","distance":0.2838},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/luma","distance":0.3001},{"site":"ai-sdk","path":"/providers/community-providers/runpod","distance":0.3108},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fal","distance":0.3291}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/prodia","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fireworks","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/luma","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/runpod","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fal","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/flowise","title":"Flowise","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/dify","distance":0.3584},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","distance":0.3633},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.3666},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","distance":0.384},{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","distance":0.3843}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/dify","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","title":"FriendliAI","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/r1"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","distance":0.253},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.2559},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/open-responses","distance":0.2621},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/lmstudio","distance":0.2708},{"site":"ai-sdk","path":"/providers/community-providers/browser-ai","distance":0.2809}],"related":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/open-responses","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/lmstudio","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/browser-ai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/gemini-cli","title":"Gemini CLI","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/guides/gemini","distance":0.2652},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google-vertex","distance":0.2865},{"site":"ai-sdk","path":"/providers/community-providers/codex-cli","distance":0.2925},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.3014},{"site":"ai-sdk","path":"/providers/community-providers/opencode-sdk","distance":0.3046}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/google","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gemini","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google-vertex","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/codex-cli","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/opencode-sdk","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/helicone","title":"Helicone","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/observability/helicone","distance":0.1352},{"site":"ai-sdk","path":"/providers/community-providers/aihubmix","distance":0.3193},{"site":"ai-sdk","path":"/providers/community-providers/cencori","distance":0.3238},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.3283},{"site":"vercel-docs","path":"/docs/ai-gateway","distance":0.3366}],"related":[{"site":"ai-sdk","path":"/providers/observability/helicone","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/aihubmix","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/cencori","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/apertis","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/hindsight","title":"Hindsight","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/agents/memory"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/agents/memory","distance":0.2311},{"site":"ai-sdk","path":"/providers/community-providers/supermemory","distance":0.3042},{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.3099},{"site":"v0","path":"/docs/api/v1/packages/ai-tools","distance":0.3129},{"site":"eve","path":"/docs/patterns/multi-tenant-memory","distance":0.3287}],"related":[{"site":"v0","path":"/docs/api/v1/packages/ai-tools","via":"neighbor"},{"site":"eve","path":"/docs/patterns/multi-tenant-memory","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/examples/ai-tools","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/adapters/ai-tools","via":"neighbor"},{"site":"eve","path":"/docs/tools","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/memory","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/supermemory","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/mem0","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","title":"Inflection AI","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2734},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","distance":0.2741},{"site":"ai-sdk","path":"/providers/community-providers/spark","distance":0.2845},{"site":"ai-sdk","path":"/providers/community-providers/aihubmix","distance":0.2857},{"site":"ai-sdk","path":"/providers/community-providers/browser-ai","distance":0.2859}],"related":[{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/spark","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/aihubmix","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/browser-ai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/interfaze","title":"Interfaze","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.2944},{"site":"ai-sdk","path":"/providers/openai-compatible-providers","distance":0.3083},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","distance":0.3224},{"site":"ai-sdk","path":"/providers/community-providers/aihubmix","distance":0.3238},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","distance":0.3242}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/aihubmix","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepseek","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/jina-ai","title":"Jina AI","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/mixedbread","distance":0.2916},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","distance":0.2916},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","distance":0.2984},{"site":"ai-sdk","path":"/providers/community-providers/voyage-ai","distance":0.3161},{"site":"ai-sdk","path":"/providers/community-providers/qwen","distance":0.3346}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/mixedbread","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/voyage-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/qwen","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/langdb","title":"LangDB","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/r1"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/langchain","distance":0.3138},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","distance":0.336},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/langfuse","distance":0.3366},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/lmstudio","distance":0.3437},{"site":"vercel-kb","path":"/kb/guide/nextjs-langchain-vercel-ai","distance":0.3496}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/langchain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/langfuse","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/nextjs-langchain-vercel-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/lmstudio","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/langwatch","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/langfuse","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/letta","title":"Letta","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/agents/memory"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.3365},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.337},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","distance":0.341},{"site":"ai-sdk","path":"/docs/introduction","distance":0.3528},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","distance":0.3607}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/llamagate","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/llama-cpp","title":"llama.cpp","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/llamagate","distance":0.2159},{"site":"ai-sdk","path":"/providers/community-providers/ollama","distance":0.3109},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","distance":0.3213},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","distance":0.327},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.3341}],"related":[{"site":"ai-sdk","path":"/providers/community-providers/llamagate","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/ollama","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/llamagate","title":"LlamaGate","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/llama-cpp","distance":0.2159},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","distance":0.2632},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/llamaindex","distance":0.2803},{"site":"ai-sdk","path":"/providers/community-providers/ollama","distance":0.3034},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.3133}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/llamaindex","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-a-large-language-model","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/llama-cpp","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/ollama","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/ollm","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/mcp-sampling","title":"MCP Sampling AI Provider","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output"}],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/acp","distance":0.2424},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-tools","distance":0.3205},{"site":"ai-sdk","path":"/cookbook/node/mcp-tools","distance":0.3319},{"site":"ai-sdk","path":"/cookbook/next/mcp-tools","distance":0.3563},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/xai","distance":0.3571}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-mcp-apps","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/mcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/acp","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-tools","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/mcp-tools","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/mcp-tools","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/xai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/mem0","title":"Mem0","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/introduction"}],"inbound":[{"site":"ai-sdk","path":"/docs/agents/memory"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/supermemory","distance":0.2735},{"site":"ai-sdk","path":"/docs/agents/memory","distance":0.2953},{"site":"ai-sdk","path":"/providers/community-providers/cencori","distance":0.3585},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.3592},{"site":"ai-sdk","path":"/providers/community-providers/hindsight","distance":0.3615}],"related":[{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"neighbor"},{"site":"v0","path":"/docs/faqs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/supermemory","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/memory","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/cencori","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/hindsight","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/minimax","title":"MiniMax","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/minimax","distance":0.1475},{"site":"ai-sdk","path":"/providers/observability/maxim","distance":0.2721},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","distance":0.3129},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.3139},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","distance":0.3243}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/minimax","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-generation","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/maxim","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/mixedbread","title":"Mixedbread","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","distance":0.2561},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","distance":0.2817},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/mistral","distance":0.282},{"site":"ai-sdk","path":"/providers/community-providers/jina-ai","distance":0.2916},{"site":"ai-sdk","path":"/providers/community-providers/aihubmix","distance":0.3051}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/mistral","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/jina-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/aihubmix","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/neon-ai-gateway","title":"Neon AI Gateway","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway","distance":0.2973},{"site":"ai-sdk","path":"/providers/community-providers/cloudflare-ai-gateway","distance":0.3028},{"site":"vercel-docs","path":"/docs/ai-gateway","distance":0.3061},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","distance":0.315},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis","distance":0.3348}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/cloudflare-ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/nearai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/nia","title":"Nia","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","distance":0.3806},{"site":"v0","path":"/docs/api/v1/packages/ai-tools","distance":0.3846},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/nim","distance":0.3941},{"site":"ai-sdk","path":"/providers/community-providers/interfaze","distance":0.3958},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.3962}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/packages/ai-tools","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/examples/ai-tools","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/adapters/ai-tools","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/nim","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/interfaze","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/ollama","title":"Ollama","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/ollm","distance":0.2205},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2734},{"site":"ai-sdk","path":"/providers/community-providers/llamagate","distance":0.3034},{"site":"ai-sdk","path":"/providers/community-providers/llama-cpp","distance":0.3109},{"site":"ai-sdk","path":"/providers/community-providers/browser-ai","distance":0.3133}],"related":[{"site":"ai-sdk","path":"/providers/community-providers/ollm","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/llamagate","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/llama-cpp","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/browser-ai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/ollm","title":"OLLM","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/ollama","distance":0.2205},{"site":"ai-sdk","path":"/providers/community-providers/llamagate","distance":0.3244},{"site":"ai-sdk","path":"/providers/community-providers/openrouter","distance":0.3249},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","distance":0.3325},{"site":"vercel-kb","path":"/kb/guide/what-is-a-large-language-model","distance":0.3347}],"related":[{"site":"vercel-kb","path":"/kb/guide/what-is-a-large-language-model","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/ollama","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/llamagate","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/openrouter","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/o1","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/opencode-sdk","title":"OpenCode","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/codex-cli","distance":0.231},{"site":"ai-sdk","path":"/providers/community-providers/claude-code","distance":0.2329},{"site":"ai-sdk","path":"/providers/community-providers/codex-app-server","distance":0.2383},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","distance":0.2632},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2788}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/opencode","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/codex-cli","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/claude-code","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/codex-app-server","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/openrouter","title":"OpenRouter","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/apertis","distance":0.2524},{"site":"ai-sdk","path":"/providers/community-providers/opencode-sdk","distance":0.2876},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2948},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","distance":0.3005},{"site":"ai-sdk","path":"/providers/community-providers/requesty","distance":0.3006}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/apertis","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/opencode-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/requesty","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/browser-ai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/portkey","title":"Portkey","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output"}],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/apertis","distance":0.3197},{"site":"ai-sdk","path":"/providers/community-providers/cencori","distance":0.3218},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.3231},{"site":"vercel-docs","path":"/docs/ai-gateway","distance":0.3313},{"site":"ai-sdk","path":"/providers/community-providers/openrouter","distance":0.3317}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/apertis","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/cencori","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/openrouter","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/qvac","title":"QVAC","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/azure-ai","distance":0.2733},{"site":"ai-sdk","path":"/providers/community-providers/qwen","distance":0.301},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.3128},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","distance":0.3404},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","distance":0.3412}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/azure-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/qwen","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/qwen","title":"Qwen","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.2624},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/alibaba","distance":0.2771},{"site":"ai-sdk","path":"/providers/community-providers/crusoe","distance":0.3002},{"site":"ai-sdk","path":"/providers/community-providers/qvac","distance":0.301},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","distance":0.302}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/alibaba","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/crusoe","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/qvac","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/react-native-apple","title":"React Native Apple","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/getting-started/expo"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","distance":0.3203},{"site":"vercel-docs","path":"/docs/ai-sdk","distance":0.3346},{"site":"ai-sdk","path":"/providers/community-providers/aihubmix","distance":0.3411},{"site":"ai-sdk","path":"/providers/community-providers/browser-ai","distance":0.3458},{"site":"ai-sdk","path":"/docs/introduction","distance":0.3464}],"related":[{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/aihubmix","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/browser-ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/introduction","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/requesty","title":"Requesty","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/apertis","distance":0.2992},{"site":"ai-sdk","path":"/providers/community-providers/openrouter","distance":0.3006},{"site":"ai-sdk","path":"/providers/community-providers/cloudflare-ai-gateway","distance":0.3158},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","distance":0.3179},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","distance":0.3204}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/apertis","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/openrouter","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/cloudflare-ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/r1","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/runpod","title":"Runpod","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/replicate","distance":0.181},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/black-forest-labs","distance":0.2463},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fal","distance":0.2463},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/prodia","distance":0.2518},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","distance":0.256}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/replicate","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/black-forest-labs","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fal","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/prodia","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/sambanova","title":"SambaNova","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.2901},{"site":"ai-sdk","path":"/providers/openai-compatible-providers","distance":0.2922},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","distance":0.2963},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.3207},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","distance":0.3261}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/sap-ai","title":"SAP AI Core","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2831},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","distance":0.2926},{"site":"ai-sdk","path":"/providers/community-providers/browser-ai","distance":0.3015},{"site":"ai-sdk","path":"/providers/community-providers/apertis","distance":0.3017},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","distance":0.3061}],"related":[{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/browser-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/apertis","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/sarvam","title":"Sarvam","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/sambanova","distance":0.3772},{"site":"ai-sdk","path":"/providers/community-providers/sap-ai","distance":0.39},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/revai","distance":0.3977},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram","distance":0.4004},{"site":"ai-sdk","path":"/providers/community-providers/soniox","distance":0.403}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/speech-to-text","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/sambanova","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/sap-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/revai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/soniox","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/soniox","title":"Soniox","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram","distance":0.3281},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cartesia","distance":0.3289},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs","distance":0.3317},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","distance":0.3406},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fish-audio","distance":0.3421}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/speech-to-text","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cartesia","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fish-audio","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/spark","title":"Spark","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","distance":0.2845},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.3162},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","distance":0.3176},{"site":"ai-sdk","path":"/providers/community-providers/sap-ai","distance":0.3364},{"site":"ai-sdk","path":"/providers/community-providers/browser-ai","distance":0.3427}],"related":[{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/sap-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/browser-ai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/supermemory","title":"Supermemory","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/agents/memory"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/agents/memory","distance":0.2592},{"site":"ai-sdk","path":"/providers/community-providers/mem0","distance":0.2735},{"site":"ai-sdk","path":"/providers/community-providers/hindsight","distance":0.3042},{"site":"ai-sdk","path":"/providers/community-providers/aihubmix","distance":0.3827},{"site":"eve","path":"/docs/patterns/multi-tenant-memory","distance":0.3892}],"related":[{"site":"eve","path":"/docs/patterns/multi-tenant-memory","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/memory","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-ai-sdk-vs-tanstack-ai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/mem0","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/hindsight","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/aihubmix","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/openai-responses","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/vectorstores","title":"vectorstores","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vector-databases","distance":0.2842},{"site":"vercel-kb","path":"/kb/guide/understanding-vector-databases-for-ai-apps","distance":0.3141},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","distance":0.3497},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/embeddings","distance":0.3509},{"site":"vercel-docs","path":"/docs/ai-sdk","distance":0.3557}],"related":[{"site":"vercel-kb","path":"/kb/guide/vector-databases","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/understanding-vector-databases-for-ai-apps","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/embeddings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-provider","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/mem0","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/voyage-ai","title":"Voyage AI","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/voyage","distance":0.1749},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","distance":0.2467},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","distance":0.269},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/mistral","distance":0.2974},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cohere","distance":0.313}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/voyage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/embeddings","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/mistral","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cohere","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/zeroentropy","title":"ZeroEntropy","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cohere","distance":0.2711},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/voyage","distance":0.2999},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/perplexity","distance":0.3136},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai","distance":0.3164},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","distance":0.3264}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cohere","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/voyage","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/perplexity","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/zhipu","title":"Zhipu AI (Z.AI)","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/aihubmix","distance":0.3081},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.3262},{"site":"ai-sdk","path":"/providers/community-providers/apertis","distance":0.3345},{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","distance":0.3378},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","distance":0.3418}],"related":[{"site":"ai-sdk","path":"/providers/community-providers/aihubmix","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/apertis","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/observability","title":"Observability Integrations","summary":null,"outbound":[{"site":"ai-sdk","path":"/providers/observability/axiom"},{"site":"ai-sdk","path":"/providers/observability/braintrust"},{"site":"ai-sdk","path":"/providers/observability/confident-ai"},{"site":"ai-sdk","path":"/providers/observability/helicone"},{"site":"ai-sdk","path":"/providers/observability/laminar"},{"site":"ai-sdk","path":"/providers/observability/langfuse"},{"site":"ai-sdk","path":"/providers/observability/langsmith"},{"site":"ai-sdk","path":"/providers/observability/langwatch"},{"site":"ai-sdk","path":"/providers/observability/latitude"},{"site":"ai-sdk","path":"/providers/observability/maxim"},{"site":"ai-sdk","path":"/providers/observability/mlflow"},{"site":"ai-sdk","path":"/providers/observability/posthog"},{"site":"ai-sdk","path":"/providers/observability/raindrop"},{"site":"ai-sdk","path":"/providers/observability/respan"},{"site":"ai-sdk","path":"/providers/observability/scorecard"},{"site":"ai-sdk","path":"/providers/observability/sentry"},{"site":"ai-sdk","path":"/providers/observability/signoz"},{"site":"ai-sdk","path":"/providers/observability/traceloop"},{"site":"ai-sdk","path":"/providers/observability/weave"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/telemetry"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/observability/axiom","distance":0.3069},{"site":"ai-sdk","path":"/providers/observability/braintrust","distance":0.3526},{"site":"ai-sdk","path":"/providers/observability/helicone","distance":0.3675},{"site":"ai-sdk","path":"/providers/observability/arize-ax","distance":0.3762},{"site":"ai-sdk","path":"/providers/observability/confident-ai","distance":0.3812}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model","via":"neighbor"},{"site":"ai-sdk","path":"/docs/introduction","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/telemetry","via":"inbound"}]},{"site":"ai-sdk","path":"/providers/observability/arize-ax","title":"Arize AX","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/observability/axiom","distance":0.2318},{"site":"ai-sdk","path":"/providers/observability/respan","distance":0.2475},{"site":"ai-sdk","path":"/providers/observability/braintrust","distance":0.2588},{"site":"ai-sdk","path":"/providers/observability/signoz","distance":0.2777},{"site":"ai-sdk","path":"/providers/observability/sentry","distance":0.2799}],"related":[{"site":"nextjs","path":"/docs/pages/guides/open-telemetry","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/open-telemetry","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/observability","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/axiom","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/respan","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/braintrust","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/signoz","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/sentry","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/observability/axiom","title":"Axiom","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/providers/observability"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/observability/arize-ax","distance":0.2318},{"site":"ai-sdk","path":"/providers/observability","distance":0.3069},{"site":"ai-sdk","path":"/providers/observability/braintrust","distance":0.321},{"site":"ai-sdk","path":"/providers/observability/confident-ai","distance":0.3264},{"site":"ai-sdk","path":"/providers/observability/maxim","distance":0.3413}],"related":[{"site":"vercel-docs","path":"/docs/eve/observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/arize-ax","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/braintrust","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/confident-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/maxim","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/respan","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/observability/braintrust","title":"Braintrust","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/providers/observability"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/observability/arize-ax","distance":0.2588},{"site":"ai-sdk","path":"/providers/observability/signoz","distance":0.2848},{"site":"ai-sdk","path":"/providers/observability/mlflow","distance":0.2881},{"site":"ai-sdk","path":"/providers/observability/confident-ai","distance":0.2909},{"site":"ai-sdk","path":"/providers/observability/traceloop","distance":0.2932}],"related":[{"site":"vercel-docs","path":"/docs/eve/observability","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/arize-ax","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/signoz","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/mlflow","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/confident-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/traceloop","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/observability/confident-ai","title":"Confident AI","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/telemetry"}],"inbound":[{"site":"ai-sdk","path":"/providers/observability"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/observability/mlflow","distance":0.2684},{"site":"ai-sdk","path":"/providers/observability/braintrust","distance":0.2909},{"site":"ai-sdk","path":"/providers/observability/langfuse","distance":0.3006},{"site":"ai-sdk","path":"/providers/observability/patronus","distance":0.307},{"site":"ai-sdk","path":"/providers/observability/laminar","distance":0.3128}],"related":[{"site":"ai-sdk","path":"/providers/observability/mlflow","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/braintrust","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/langfuse","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/patronus","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/laminar","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/observability/helicone","title":"Helicone","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/providers/observability"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/helicone","distance":0.1352},{"site":"ai-sdk","path":"/providers/observability/confident-ai","distance":0.3421},{"site":"ai-sdk","path":"/providers/community-providers/cencori","distance":0.3604},{"site":"ai-sdk","path":"/providers/observability","distance":0.3675},{"site":"ai-sdk","path":"/providers/community-providers/aihubmix","distance":0.3697}],"related":[{"site":"ai-sdk","path":"/providers/community-providers/helicone","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/confident-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/cencori","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/aihubmix","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/axiom","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/observability/laminar","title":"Laminar","summary":null,"outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverExternalPackages"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation"}],"inbound":[{"site":"ai-sdk","path":"/providers/observability"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/observability/langfuse","distance":0.2561},{"site":"ai-sdk","path":"/docs/ai-sdk-core/telemetry","distance":0.2993},{"site":"nextjs","path":"/docs/pages/guides/open-telemetry","distance":0.3052},{"site":"nextjs","path":"/docs/app/guides/open-telemetry","distance":0.307},{"site":"ai-sdk","path":"/providers/observability/langwatch","distance":0.3111}],"related":[{"site":"nextjs","path":"/docs/pages/guides/open-telemetry","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/open-telemetry","via":"neighbor"},{"site":"vercel-docs","path":"/docs/tracing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/tracing/instrumentation","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/langfuse","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/telemetry","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/langwatch","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/confident-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/mlflow","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/observability/langfuse","title":"Langfuse","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/telemetry"}],"inbound":[{"site":"ai-sdk","path":"/providers/observability"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/observability/langwatch","distance":0.2223},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/langfuse","distance":0.2424},{"site":"ai-sdk","path":"/providers/observability/mlflow","distance":0.2501},{"site":"ai-sdk","path":"/providers/observability/laminar","distance":0.2561},{"site":"ai-sdk","path":"/providers/observability/langsmith","distance":0.2791}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/langfuse","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/tracing/instrumentation","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/langwatch","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/mlflow","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/laminar","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/langsmith","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/arize-ax","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/observability/langsmith","title":"LangSmith","summary":null,"outbound":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai"}],"inbound":[{"site":"ai-sdk","path":"/providers/observability"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/observability/langwatch","distance":0.2764},{"site":"ai-sdk","path":"/providers/observability/langfuse","distance":0.2791},{"site":"ai-sdk","path":"/providers/observability/mlflow","distance":0.2961},{"site":"ai-sdk","path":"/providers/observability/confident-ai","distance":0.3269},{"site":"ai-sdk","path":"/providers/observability/laminar","distance":0.3274}],"related":[{"site":"vercel-kb","path":"/kb/guide/nextjs-langchain-vercel-ai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/langchain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/langchain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/observability","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/langwatch","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/langfuse","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/mlflow","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/confident-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/laminar","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/observability/langwatch","title":"LangWatch","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/providers/observability"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/observability/langfuse","distance":0.2223},{"site":"ai-sdk","path":"/providers/observability/langsmith","distance":0.2764},{"site":"ai-sdk","path":"/providers/observability/laminar","distance":0.3111},{"site":"ai-sdk","path":"/providers/observability/mlflow","distance":0.3145},{"site":"ai-sdk","path":"/providers/observability/posthog","distance":0.3241}],"related":[{"site":"vercel-kb","path":"/kb/guide/nextjs-langchain-vercel-ai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/langchain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/langfuse","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/langsmith","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/laminar","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/mlflow","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/posthog","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/observability/latitude","title":"Latitude","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/providers/observability"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/observability/langfuse","distance":0.3397},{"site":"ai-sdk","path":"/providers/observability/braintrust","distance":0.3493},{"site":"ai-sdk","path":"/providers/observability/sentry","distance":0.3535},{"site":"ai-sdk","path":"/providers/observability/signoz","distance":0.3539},{"site":"ai-sdk","path":"/providers/observability/langwatch","distance":0.355}],"related":[{"site":"ai-sdk","path":"/providers/observability/langfuse","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/braintrust","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/sentry","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/signoz","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/langwatch","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/observability/maxim","title":"Maxim","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/providers/observability"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/minimax","distance":0.2721},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","distance":0.2947},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk","distance":0.299},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.302},{"site":"vercel-docs","path":"/docs/ai-sdk","distance":0.303}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agents-chat-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/streaming-from-llm","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/minimax","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/mlflow","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/confident-ai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/observability/mlflow","title":"MLflow","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/telemetry"},{"site":"vercel-docs","path":"/docs/tracing/instrumentation"}],"inbound":[{"site":"ai-sdk","path":"/providers/observability"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/observability/signoz","distance":0.2414},{"site":"ai-sdk","path":"/providers/observability/langfuse","distance":0.2501},{"site":"ai-sdk","path":"/providers/observability/sentry","distance":0.2595},{"site":"ai-sdk","path":"/providers/observability/confident-ai","distance":0.2684},{"site":"ai-sdk","path":"/providers/observability/traceloop","distance":0.2781}],"related":[{"site":"vercel-docs","path":"/docs/eve/observability","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/streaming-from-llm","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/signoz","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/langfuse","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/sentry","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/confident-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/traceloop","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/observability/patronus","title":"Patronus","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/observability/posthog","distance":0.2938},{"site":"ai-sdk","path":"/providers/observability/braintrust","distance":0.3011},{"site":"ai-sdk","path":"/providers/observability/confident-ai","distance":0.307},{"site":"ai-sdk","path":"/providers/observability/arize-ax","distance":0.3164},{"site":"ai-sdk","path":"/providers/observability/signoz","distance":0.328}],"related":[{"site":"nextjs","path":"/docs/app/guides/open-telemetry","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/observability","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/open-telemetry","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/posthog","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/braintrust","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/confident-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/arize-ax","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/signoz","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/observability/posthog","title":"PostHog","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/telemetry"}],"inbound":[{"site":"ai-sdk","path":"/providers/observability"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/observability/patronus","distance":0.2938},{"site":"ai-sdk","path":"/providers/observability/traceloop","distance":0.3114},{"site":"ai-sdk","path":"/providers/observability/confident-ai","distance":0.3203},{"site":"ai-sdk","path":"/providers/observability/braintrust","distance":0.3225},{"site":"ai-sdk","path":"/providers/observability/langwatch","distance":0.3241}],"related":[{"site":"flags-sdk","path":"/docs/providers/openfeature/posthog","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/posthog","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/patronus","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/traceloop","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/confident-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/braintrust","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/langwatch","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/observability/raindrop","title":"Raindrop","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/telemetry"}],"inbound":[{"site":"ai-sdk","path":"/providers/observability"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/observability/braintrust","distance":0.3276},{"site":"ai-sdk","path":"/providers/observability/sentry","distance":0.348},{"site":"ai-sdk","path":"/providers/observability/confident-ai","distance":0.3521},{"site":"ai-sdk","path":"/docs/ai-sdk-core/devtools","distance":0.354},{"site":"ai-sdk","path":"/providers/observability/signoz","distance":0.3571}],"related":[{"site":"vercel-docs","path":"/docs/eve/observability","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/braintrust","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/sentry","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/confident-ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/devtools","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/signoz","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/observability/respan","title":"Respan","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/providers/observability"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/observability/arize-ax","distance":0.2475},{"site":"ai-sdk","path":"/providers/observability/sentry","distance":0.3279},{"site":"ai-sdk","path":"/providers/observability/axiom","distance":0.3449},{"site":"ai-sdk","path":"/providers/observability/langfuse","distance":0.3451},{"site":"ai-sdk","path":"/providers/observability/signoz","distance":0.3483}],"related":[{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/open-telemetry","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/open-telemetry","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/observability","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/arize-ax","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/sentry","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/axiom","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/langfuse","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/signoz","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/observability/scorecard","title":"Scorecard","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/telemetry"}],"inbound":[{"site":"ai-sdk","path":"/providers/observability"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/observability/traceloop","distance":0.3178},{"site":"ai-sdk","path":"/providers/observability/posthog","distance":0.3355},{"site":"ai-sdk","path":"/providers/observability/confident-ai","distance":0.3485},{"site":"ai-sdk","path":"/providers/observability/mlflow","distance":0.3582},{"site":"ai-sdk","path":"/providers/observability/patronus","distance":0.3593}],"related":[{"site":"ai-sdk","path":"/providers/observability/traceloop","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/posthog","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/confident-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/mlflow","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/patronus","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/observability/sentry","title":"Sentry","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/telemetry"}],"inbound":[{"site":"ai-sdk","path":"/providers/observability"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/observability/mlflow","distance":0.2595},{"site":"ai-sdk","path":"/providers/observability/signoz","distance":0.2605},{"site":"ai-sdk","path":"/providers/observability/arize-ax","distance":0.2799},{"site":"ai-sdk","path":"/providers/observability/langfuse","distance":0.2866},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","distance":0.2914}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/observability","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/mlflow","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/signoz","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/arize-ax","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/langfuse","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/respan","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/observability/signoz","title":"SigNoz","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/telemetry"}],"inbound":[{"site":"ai-sdk","path":"/providers/observability"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/observability/mlflow","distance":0.2414},{"site":"ai-sdk","path":"/providers/observability/sentry","distance":0.2605},{"site":"ai-sdk","path":"/providers/observability/arize-ax","distance":0.2777},{"site":"vercel-docs","path":"/docs/tracing/instrumentation","distance":0.2829},{"site":"ai-sdk","path":"/providers/observability/braintrust","distance":0.2848}],"related":[{"site":"vercel-docs","path":"/docs/tracing/instrumentation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/open-telemetry","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/open-telemetry","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/tracing","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/mlflow","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/sentry","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/arize-ax","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/braintrust","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/langfuse","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/observability/traceloop","title":"Traceloop","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/telemetry"}],"inbound":[{"site":"ai-sdk","path":"/providers/observability"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/observability/mlflow","distance":0.2781},{"site":"ai-sdk","path":"/providers/observability/braintrust","distance":0.2932},{"site":"ai-sdk","path":"/providers/observability/posthog","distance":0.3114},{"site":"ai-sdk","path":"/providers/observability/confident-ai","distance":0.3176},{"site":"ai-sdk","path":"/providers/observability/scorecard","distance":0.3178}],"related":[{"site":"ai-sdk","path":"/providers/observability/mlflow","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/braintrust","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/posthog","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/confident-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/scorecard","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/observability/weave","title":"Weave","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/telemetry"}],"inbound":[{"site":"ai-sdk","path":"/providers/observability"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/observability/traceloop","distance":0.3245},{"site":"ai-sdk","path":"/providers/observability/braintrust","distance":0.3434},{"site":"ai-sdk","path":"/providers/observability/arize-ax","distance":0.3444},{"site":"ai-sdk","path":"/providers/observability/signoz","distance":0.3594},{"site":"ai-sdk","path":"/providers/observability/confident-ai","distance":0.3715}],"related":[{"site":"vercel-docs","path":"/docs/eve/observability","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/traceloop","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/braintrust","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/arize-ax","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/signoz","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/axiom","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/openai-compatible-providers","title":"OpenAI Compatible Providers","summary":null,"outbound":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/heroku"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/lmstudio"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/nearai"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/nim"}],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider"},{"site":"ai-sdk","path":"/docs/getting-started/expo"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-router"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-pages-router"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs"},{"site":"ai-sdk","path":"/docs/getting-started/nuxt"},{"site":"ai-sdk","path":"/docs/getting-started/svelte"},{"site":"ai-sdk","path":"/docs/getting-started/tanstack-start"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","distance":0.2235},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/open-responses","distance":0.2611},{"site":"ai-sdk","path":"/docs/foundations/provider-options","distance":0.2633},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.2641},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","distance":0.2703}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions","via":"inbound"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/open-responses","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/provider-options","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/azure","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","title":"Clarifai","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers/heroku","distance":0.2442},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","distance":0.253},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.255},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.2628},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepseek","distance":0.2766}],"related":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers/heroku","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepseek","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","title":"Writing a Custom Provider","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2119},{"site":"ai-sdk","path":"/providers/openai-compatible-providers","distance":0.2235},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","distance":0.243},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/custom-provider","distance":0.246},{"site":"ai-sdk","path":"/providers/community-providers/opencode-sdk","distance":0.2632}],"related":[{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/custom-provider","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/opencode-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/heroku","title":"Heroku","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output"}],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","distance":0.2442},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2866},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/nearai","distance":0.2995},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","distance":0.3047},{"site":"ai-sdk","path":"/providers/community-providers/aihubmix","distance":0.3072}],"related":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/nearai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/aihubmix","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/lmstudio","title":"LM Studio","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/embed-many"}],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/friendliai","distance":0.2708},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","distance":0.2905},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/open-responses","distance":0.2929},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","distance":0.3215},{"site":"ai-sdk","path":"/docs/foundations/overview","distance":0.3295}],"related":[{"site":"ai-sdk","path":"/providers/community-providers/friendliai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/open-responses","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/overview","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/nearai","title":"NEAR AI Cloud","summary":null,"outbound":[],"inbound":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","distance":0.2769},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/nim","distance":0.2862},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/heroku","distance":0.2995},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","distance":0.32},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.3337}],"related":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/nim","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/heroku","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/nim","title":"NVIDIA NIM","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output"}],"inbound":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers/nearai","distance":0.2862},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","distance":0.2927},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","distance":0.3165},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.3252},{"site":"ai-sdk","path":"/providers/community-providers/sambanova","distance":0.3339}],"related":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers/nearai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/sambanova","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs","title":"Introduction","summary":"A unified SDK for building chat bots across Slack, Microsoft Teams, Google Chat, Discord, Telegram, and more.","outbound":[{"site":"chat-sdk","path":"/docs/platform-adapters"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk"},{"site":"vercel-kb","path":"/kb/guide/building-community-moderation-agents-using-ai-sdk"},{"site":"vercel-kb","path":"/kb/guide/chat-sdk-and-eve"},{"site":"vercel-kb","path":"/kb/guide/run-and-track-deploys-from-slack"},{"site":"vercel-kb","path":"/kb/guide/triage-form-submissions-with-chat-sdk"}],"requires":[],"neighbors":[{"site":"chat-sdk","path":"/docs/usage","distance":0.1138},{"site":"chat-sdk","path":"/docs/platform-adapters","distance":0.1282},{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.16},{"site":"chat-sdk","path":"/docs/getting-started","distance":0.1755},{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk","distance":0.1776}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/building-community-moderation-agents-using-ai-sdk","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/chat-sdk-and-eve","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/run-and-track-deploys-from-slack","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/triage-form-submissions-with-chat-sdk","via":"inbound"},{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/actions","title":"Actions","summary":"Handle button clicks and interactive card events across platforms.","outbound":[{"site":"chat-sdk","path":"/docs/cards"},{"site":"chat-sdk","path":"/docs/modals"}],"inbound":[{"site":"chat-sdk","path":"/docs/cards"},{"site":"chat-sdk","path":"/docs/handling-events"},{"site":"chat-sdk","path":"/docs/modals"},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk"},{"site":"vercel-kb","path":"/kb/guide/human-in-the-loop-with-chat-sdk-and-workflow-sdk"}],"requires":[{"site":"chat-sdk","path":"/docs/cards"}],"neighbors":[{"site":"chat-sdk","path":"/docs/modals","distance":0.2135},{"site":"chat-sdk","path":"/docs/cards","distance":0.2252},{"site":"chat-sdk","path":"/docs/posting-messages","distance":0.2993},{"site":"chat-sdk","path":"/docs/api/chat","distance":0.3077},{"site":"chat-sdk","path":"/docs/approvals","distance":0.3203}],"related":[{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/human-in-the-loop-with-chat-sdk-and-workflow-sdk","via":"inbound"},{"site":"nextjs","path":"/docs/app/guides/forms","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/server-actions","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data","via":"neighbor"},{"site":"chat-sdk","path":"/docs/posting-messages","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/chat","via":"neighbor"},{"site":"chat-sdk","path":"/docs/approvals","via":"neighbor"},{"site":"chat-sdk","path":"/docs/slash-commands","via":"neighbor"},{"site":"chat-sdk","path":"/docs/threads-messages-channels","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/adapters","title":"Overview","summary":"Overview of Chat SDK adapters and the static adapter catalog.","outbound":[{"site":"chat-sdk","path":"/docs/contributing/building"},{"site":"chat-sdk","path":"/docs/contributing/publishing"},{"site":"chat-sdk","path":"/docs/contributing/vendor-official"},{"site":"chat-sdk","path":"/docs/platform-adapters"},{"site":"chat-sdk","path":"/docs/state-adapters"}],"inbound":[{"site":"chat-sdk","path":"/docs/contributing/vendor-official"},{"site":"chat-sdk","path":"/docs/usage"}],"requires":[{"site":"chat-sdk","path":"/docs/getting-started"}],"neighbors":[{"site":"chat-sdk","path":"/docs/platform-adapters","distance":0.2006},{"site":"chat-sdk","path":"/docs","distance":0.2069},{"site":"chat-sdk","path":"/docs/contributing/publishing","distance":0.209},{"site":"chat-sdk","path":"/docs/contributing/vendor-official","distance":0.2548},{"site":"chat-sdk","path":"/docs/contributing/documenting","distance":0.2626}],"related":[{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/adapters","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","via":"neighbor"},{"site":"chat-sdk","path":"/docs/getting-started","via":"requires"},{"site":"chat-sdk","path":"/docs/contributing/documenting","via":"neighbor"},{"site":"chat-sdk","path":"/docs/usage","via":"neighbor"},{"site":"chat-sdk","path":"/docs/testing","via":"neighbor"},{"site":"chat-sdk","path":"/docs/error-handling","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/ai","title":"Overview","summary":"AI utilities that ship with Chat SDK — agent tools, message conversion, and supporting types.","outbound":[{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools"},{"site":"chat-sdk","path":"/docs/ai/to-ai-messages"},{"site":"chat-sdk","path":"/docs/ai/types"},{"site":"chat-sdk","path":"/docs/streaming"},{"site":"vercel-kb","path":"/kb/guide/human-in-the-loop-with-chat-sdk-and-workflow-sdk"}],"inbound":[{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools"},{"site":"chat-sdk","path":"/docs/ai/to-ai-messages"},{"site":"chat-sdk","path":"/docs/api"},{"site":"vercel-kb","path":"/kb/guide/slack-bot-vercel-blob"}],"requires":[{"site":"chat-sdk","path":"/docs"}],"neighbors":[{"site":"chat-sdk","path":"/docs/ai/types","distance":0.1367},{"site":"chat-sdk","path":"/docs/api","distance":0.1448},{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","distance":0.1475},{"site":"chat-sdk","path":"/docs","distance":0.1851},{"site":"chat-sdk","path":"/docs/ai/to-ai-messages","distance":0.1864}],"related":[{"site":"vercel-kb","path":"/kb/guide/slack-bot-vercel-blob","via":"inbound"},{"site":"v0","path":"/docs/api/v1/packages/ai-tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/examples/ai-tools","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/adapters/ai-tools","via":"neighbor"},{"site":"workflow","path":"/docs/ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","via":"neighbor"},{"site":"chat-sdk","path":"/docs/usage","via":"neighbor"},{"site":"chat-sdk","path":"/docs/threads-messages-channels","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","title":"AI SDK Tools","summary":"Give an AI agent the ability to operate inside your workspace. Post messages, send DMs, react, edit, delete; all with built-in approval gates.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"},{"site":"chat-sdk","path":"/docs/ai"},{"site":"chat-sdk","path":"/docs/ai/to-ai-messages"}],"inbound":[{"site":"chat-sdk","path":"/docs/ai"},{"site":"chat-sdk","path":"/docs/ai/to-ai-messages"},{"site":"chat-sdk","path":"/docs/ai/types"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk"}],"requires":[{"site":"chat-sdk","path":"/docs/usage"}],"neighbors":[{"site":"chat-sdk","path":"/docs/ai/types","distance":0.1228},{"site":"chat-sdk","path":"/docs/ai","distance":0.1475},{"site":"v0","path":"/docs/api/v1/packages/ai-tools","distance":0.2256},{"site":"eve","path":"/docs/tools","distance":0.2279},{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.2365}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"inbound"},{"site":"v0","path":"/docs/api/v1/packages/ai-tools","via":"neighbor"},{"site":"eve","path":"/docs/tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"},{"site":"eve","path":"/docs/reference/typescript-api","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-tool-usage","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/tool-approvals","via":"neighbor"},{"site":"eve","path":"/docs/concepts/built-in-tools","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/types","via":"neighbor"},{"site":"chat-sdk","path":"/docs/usage","via":"requires"}]},{"site":"chat-sdk","path":"/docs/ai/to-ai-messages","title":"toAiMessages","summary":"Convert Chat SDK messages to AI SDK conversation format.","outbound":[{"site":"chat-sdk","path":"/docs/ai"},{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools"},{"site":"chat-sdk","path":"/docs/api/message"}],"inbound":[{"site":"chat-sdk","path":"/docs/ai"},{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools"},{"site":"chat-sdk","path":"/docs/ai/types"},{"site":"chat-sdk","path":"/docs/api/message"},{"site":"chat-sdk","path":"/docs/handling-events"},{"site":"chat-sdk","path":"/docs/posting-messages"},{"site":"chat-sdk","path":"/docs/streaming"}],"requires":[{"site":"chat-sdk","path":"/docs/ai"}],"neighbors":[{"site":"chat-sdk","path":"/docs/ai","distance":0.1864},{"site":"chat-sdk","path":"/docs/ai/types","distance":0.2046},{"site":"chat-sdk","path":"/docs/api/message","distance":0.2208},{"site":"chat-sdk","path":"/docs/streaming","distance":0.2492},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","distance":0.2522}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/convert-to-model-messages","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/messages","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/types","via":"neighbor"},{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api","via":"neighbor"},{"site":"chat-sdk","path":"/docs/posting-messages","via":"neighbor"},{"site":"chat-sdk","path":"/docs/threads-messages-channels","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/ai/types","title":"Types","summary":"TypeScript types exported from the chat/ai subpath.","outbound":[{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools"},{"site":"chat-sdk","path":"/docs/ai/to-ai-messages"},{"site":"chat-sdk","path":"/docs/api/chat"}],"inbound":[{"site":"chat-sdk","path":"/docs/ai"}],"requires":[{"site":"chat-sdk","path":"/docs/ai"}],"neighbors":[{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","distance":0.1228},{"site":"chat-sdk","path":"/docs/ai","distance":0.1367},{"site":"chat-sdk","path":"/docs/api","distance":0.202},{"site":"chat-sdk","path":"/docs/ai/to-ai-messages","distance":0.2046},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","distance":0.2283}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/packages/ai-tools","via":"neighbor"},{"site":"eve","path":"/docs/reference/typescript-api","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-tool-usage","via":"neighbor"},{"site":"eve","path":"/docs/tools","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/adapters/ai-tools","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api","via":"neighbor"},{"site":"chat-sdk","path":"/docs/threads-messages-channels","via":"neighbor"},{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"chat-sdk","path":"/docs/usage","via":"neighbor"},{"site":"chat-sdk","path":"/docs/posting-messages","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/api","title":"Overview","summary":"API reference for the Chat SDK core package.","outbound":[{"site":"chat-sdk","path":"/docs/ai"},{"site":"chat-sdk","path":"/docs/api/cards"},{"site":"chat-sdk","path":"/docs/api/channel"},{"site":"chat-sdk","path":"/docs/api/chat"},{"site":"chat-sdk","path":"/docs/api/markdown"},{"site":"chat-sdk","path":"/docs/api/message"},{"site":"chat-sdk","path":"/docs/api/modals"},{"site":"chat-sdk","path":"/docs/api/postable-message"},{"site":"chat-sdk","path":"/docs/api/thread"}],"inbound":[],"requires":[{"site":"chat-sdk","path":"/docs"}],"neighbors":[{"site":"chat-sdk","path":"/docs/ai","distance":0.1448},{"site":"chat-sdk","path":"/docs/ai/types","distance":0.202},{"site":"chat-sdk","path":"/docs","distance":0.2267},{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.2492},{"site":"chat-sdk","path":"/docs/ai/to-ai-messages","distance":0.2614}],"related":[{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/types","via":"neighbor"},{"site":"chat-sdk","path":"/docs/threads-messages-channels","via":"neighbor"},{"site":"chat-sdk","path":"/docs/usage","via":"neighbor"},{"site":"chat-sdk","path":"/docs/posting-messages","via":"neighbor"},{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/api/cards","title":"Cards","summary":"Rich card components for cross-platform interactive messages.","outbound":[],"inbound":[{"site":"chat-sdk","path":"/docs/api"},{"site":"chat-sdk","path":"/docs/api/postable-message"},{"site":"eve","path":"/docs/channels/overview"}],"requires":[{"site":"chat-sdk","path":"/docs/api"}],"neighbors":[{"site":"chat-sdk","path":"/docs/cards","distance":0.119},{"site":"chat-sdk","path":"/docs/api/modals","distance":0.248},{"site":"chat-sdk","path":"/docs/posting-messages","distance":0.259},{"site":"chat-sdk","path":"/docs/api/postable-message","distance":0.2808},{"site":"chat-sdk","path":"/docs/api/markdown","distance":0.287}],"related":[{"site":"eve","path":"/docs/channels/overview","via":"inbound"},{"site":"chat-sdk","path":"/docs/cards","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/product-card","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started","via":"neighbor"},{"site":"streamdown","path":"/docs/components","via":"neighbor"},{"site":"streamdown","path":"/docs/typography","via":"neighbor"},{"site":"nextjs","path":"/docs/community/contribution-guide","via":"neighbor"},{"site":"streamdown","path":"/docs/configuration","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/modals","via":"neighbor"},{"site":"chat-sdk","path":"/docs/posting-messages","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/postable-message","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/api/channel","title":"Channel","summary":"Channel container that holds threads, with methods for listing, posting, and iteration.","outbound":[{"site":"chat-sdk","path":"/docs/api/postable-message"},{"site":"chat-sdk","path":"/docs/api/thread"}],"inbound":[{"site":"chat-sdk","path":"/docs/api"}],"requires":[{"site":"chat-sdk","path":"/docs/api"}],"neighbors":[{"site":"chat-sdk","path":"/docs/api/thread","distance":0.1519},{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.1536},{"site":"chat-sdk","path":"/docs/api/postable-message","distance":0.2299},{"site":"eve","path":"/docs/channels/custom","distance":0.2449},{"site":"chat-sdk","path":"/docs/posting-messages","distance":0.2546}],"related":[{"site":"eve","path":"/docs/channels/custom","via":"neighbor"},{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"eve","path":"/docs/channels/overview","via":"neighbor"},{"site":"chat-sdk","path":"/docs/threads-messages-channels","via":"neighbor"},{"site":"eve","path":"/docs/channels/telegram","via":"neighbor"},{"site":"chat-sdk","path":"/docs/posting-messages","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/message","via":"neighbor"},{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"chat-sdk","path":"/docs/usage","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/api/chat","title":"Chat","summary":"The main entry point for creating a multi-platform chat bot.","outbound":[],"inbound":[{"site":"chat-sdk","path":"/docs/ai/types"},{"site":"chat-sdk","path":"/docs/api"},{"site":"chat-sdk","path":"/docs/api/modals"},{"site":"chat-sdk","path":"/docs/subject"},{"site":"chat-sdk","path":"/docs/threads-messages-channels"},{"site":"chat-sdk","path":"/docs/usage"}],"requires":[{"site":"chat-sdk","path":"/docs/api"}],"neighbors":[{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.1572},{"site":"chat-sdk","path":"/docs/usage","distance":0.1737},{"site":"chat-sdk","path":"/docs/handling-events","distance":0.1787},{"site":"chat-sdk","path":"/docs/api/thread","distance":0.2413},{"site":"chat-sdk","path":"/docs","distance":0.2475}],"related":[{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk","via":"neighbor"},{"site":"chat-sdk","path":"/docs/threads-messages-channels","via":"neighbor"},{"site":"chat-sdk","path":"/docs/usage","via":"neighbor"},{"site":"chat-sdk","path":"/docs/handling-events","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/thread","via":"neighbor"},{"site":"chat-sdk","path":"/docs/platform-adapters","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/api/markdown","title":"Markdown","summary":"AST builder functions and utilities for programmatic message formatting.","outbound":[],"inbound":[{"site":"chat-sdk","path":"/docs/api"},{"site":"chat-sdk","path":"/docs/api/postable-message"}],"requires":[{"site":"chat-sdk","path":"/docs/api"}],"neighbors":[{"site":"chat-sdk","path":"/docs/posting-messages","distance":0.2302},{"site":"chat-sdk","path":"/docs/api/message","distance":0.2618},{"site":"chat-sdk","path":"/docs/contributing/building","distance":0.2719},{"site":"chat-sdk","path":"/docs/api/postable-message","distance":0.2741},{"site":"chat-sdk","path":"/docs/cards","distance":0.2824}],"related":[{"site":"nextjs","path":"/docs/app/guides/mdx","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/mdx","via":"neighbor"},{"site":"streamdown","path":"/docs/gfm","via":"neighbor"},{"site":"streamdown","path":"/docs/components","via":"neighbor"},{"site":"streamdown","path":"/docs/configuration","via":"neighbor"},{"site":"chat-sdk","path":"/docs/posting-messages","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/message","via":"neighbor"},{"site":"chat-sdk","path":"/docs/contributing/building","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/postable-message","via":"neighbor"},{"site":"chat-sdk","path":"/docs/cards","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/api/message","title":"Message","summary":"Normalized message format with text, AST, author, and metadata.","outbound":[{"site":"chat-sdk","path":"/docs/ai/to-ai-messages"},{"site":"chat-sdk","path":"/docs/subject"}],"inbound":[{"site":"chat-sdk","path":"/docs/ai/to-ai-messages"},{"site":"chat-sdk","path":"/docs/api"},{"site":"chat-sdk","path":"/docs/handling-events"},{"site":"chat-sdk","path":"/docs/subject"}],"requires":[{"site":"chat-sdk","path":"/docs/api"}],"neighbors":[{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.2154},{"site":"chat-sdk","path":"/docs/ai/to-ai-messages","distance":0.2208},{"site":"chat-sdk","path":"/docs/api/thread","distance":0.2337},{"site":"chat-sdk","path":"/docs/api/postable-message","distance":0.2601},{"site":"chat-sdk","path":"/docs/api/markdown","distance":0.2618}],"related":[{"site":"v0","path":"/docs/api/v1/reference/chats/get-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/update","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","via":"neighbor"},{"site":"chat-sdk","path":"/docs/threads-messages-channels","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/thread","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/postable-message","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/markdown","via":"neighbor"},{"site":"chat-sdk","path":"/docs/posting-messages","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/api/modals","title":"Modals","summary":"Modal form components for collecting user input.","outbound":[{"site":"chat-sdk","path":"/docs/api/chat"},{"site":"chat-sdk","path":"/docs/modals"}],"inbound":[{"site":"chat-sdk","path":"/docs/api"}],"requires":[{"site":"chat-sdk","path":"/docs/api"}],"neighbors":[{"site":"chat-sdk","path":"/docs/modals","distance":0.1389},{"site":"chat-sdk","path":"/docs/api/cards","distance":0.248},{"site":"chat-sdk","path":"/docs/cards","distance":0.2772},{"site":"streamdown","path":"/docs/link-safety","distance":0.3397},{"site":"chat-sdk","path":"/docs/actions","distance":0.3409}],"related":[{"site":"streamdown","path":"/docs/link-safety","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities","via":"neighbor"},{"site":"streamdown","path":"/docs/configuration","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/third-party-libraries","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/cards","via":"neighbor"},{"site":"chat-sdk","path":"/docs/cards","via":"neighbor"},{"site":"chat-sdk","path":"/docs/actions","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/markdown","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/types","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/api/postable-message","title":"PostableMessage","summary":"The union type accepted by thread.post() for sending messages.","outbound":[{"site":"chat-sdk","path":"/docs/api/cards"},{"site":"chat-sdk","path":"/docs/api/markdown"},{"site":"chat-sdk","path":"/docs/streaming"}],"inbound":[{"site":"chat-sdk","path":"/docs/api"},{"site":"chat-sdk","path":"/docs/api/channel"}],"requires":[{"site":"chat-sdk","path":"/docs/api"}],"neighbors":[{"site":"chat-sdk","path":"/docs/posting-messages","distance":0.1182},{"site":"chat-sdk","path":"/docs/streaming","distance":0.143},{"site":"chat-sdk","path":"/docs/api/thread","distance":0.1792},{"site":"chat-sdk","path":"/docs/api/channel","distance":0.2299},{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.2467}],"related":[{"site":"chat-sdk","path":"/docs/posting-messages","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-streaming","via":"neighbor"},{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"eve","path":"/docs/channels/custom","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/thread","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/channel","via":"neighbor"},{"site":"chat-sdk","path":"/docs/threads-messages-channels","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/message","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/api/thread","title":"Thread","summary":"Represents a conversation thread with methods for posting, subscribing, and state management.","outbound":[{"site":"chat-sdk","path":"/docs/posting-messages"}],"inbound":[{"site":"chat-sdk","path":"/docs/api"},{"site":"chat-sdk","path":"/docs/api/channel"},{"site":"chat-sdk","path":"/docs/handling-events"},{"site":"vercel-kb","path":"/kb/guide/human-in-the-loop-with-chat-sdk-and-workflow-sdk"}],"requires":[{"site":"chat-sdk","path":"/docs/api"}],"neighbors":[{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.119},{"site":"chat-sdk","path":"/docs/api/channel","distance":0.1519},{"site":"chat-sdk","path":"/docs/api/postable-message","distance":0.1792},{"site":"chat-sdk","path":"/docs/posting-messages","distance":0.205},{"site":"chat-sdk","path":"/docs/api/message","distance":0.2337}],"related":[{"site":"vercel-kb","path":"/kb/guide/human-in-the-loop-with-chat-sdk-and-workflow-sdk","via":"inbound"},{"site":"chat-sdk","path":"/docs/threads-messages-channels","via":"neighbor"},{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/channel","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/postable-message","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/message","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/chat","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/api/transcripts","title":"Transcripts","summary":"Cross-platform per-user transcript persistence — configuration, methods, and entry shape.","outbound":[{"site":"chat-sdk","path":"/docs/conversation-history"}],"inbound":[{"site":"chat-sdk","path":"/docs/conversation-history"}],"requires":[{"site":"chat-sdk","path":"/docs/api"}],"neighbors":[{"site":"chat-sdk","path":"/docs/conversation-history","distance":0.1076},{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.3481},{"site":"chat-sdk","path":"/docs/api/thread","distance":0.3626},{"site":"chat-sdk","path":"/docs/concurrency","distance":0.3689},{"site":"chat-sdk","path":"/docs/usage","distance":0.3806}],"related":[{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/fork","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/update","via":"neighbor"},{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/transcribe","via":"neighbor"},{"site":"chat-sdk","path":"/docs/threads-messages-channels","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/thread","via":"neighbor"},{"site":"chat-sdk","path":"/docs/concurrency","via":"neighbor"},{"site":"chat-sdk","path":"/docs/usage","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/channel","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/approvals","title":"Approvals","summary":"Pause a durable workflow until a human approves it in chat.","outbound":[{"site":"vercel-kb","path":"/kb/guide/human-in-the-loop-with-chat-sdk-and-workflow-sdk"},{"site":"workflow","path":"/docs/getting-started"}],"inbound":[],"requires":[{"site":"chat-sdk","path":"/docs/actions"},{"site":"chat-sdk","path":"/docs/cards"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/human-in-the-loop-with-chat-sdk-and-workflow-sdk","distance":0.1694},{"site":"workflow","path":"/docs/ai/human-in-the-loop","distance":0.2674},{"site":"ai-sdk","path":"/docs/agents/tool-approvals","distance":0.2897},{"site":"ai-sdk","path":"/cookbook/next/human-in-the-loop","distance":0.3067},{"site":"eve","path":"/docs/human-in-the-loop","distance":0.3071}],"related":[{"site":"workflow","path":"/docs/ai/human-in-the-loop","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/tool-approvals","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/human-in-the-loop","via":"neighbor"},{"site":"eve","path":"/docs/human-in-the-loop","via":"neighbor"},{"site":"workflow","path":"/docs/ai","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-workflowagent","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"chat-sdk","path":"/docs/actions","via":"requires"},{"site":"chat-sdk","path":"/docs/cards","via":"requires"},{"site":"workflow","path":"/docs/foundations/hooks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows/python","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/next","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/cards","title":"Cards","summary":"Send rich interactive cards with buttons, fields, and images across all platforms.","outbound":[{"site":"chat-sdk","path":"/docs/actions"},{"site":"chat-sdk","path":"/docs/modals"}],"inbound":[{"site":"chat-sdk","path":"/docs/actions"},{"site":"chat-sdk","path":"/docs/posting-messages"},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/daily-digest-bot-with-chat-sdk-and-workflow-sdk"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk"}],"requires":[{"site":"chat-sdk","path":"/docs/usage"}],"neighbors":[{"site":"chat-sdk","path":"/docs/api/cards","distance":0.119},{"site":"chat-sdk","path":"/docs/posting-messages","distance":0.1604},{"site":"chat-sdk","path":"/docs/actions","distance":0.2252},{"site":"chat-sdk","path":"/docs","distance":0.2367},{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.2435}],"related":[{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/daily-digest-bot-with-chat-sdk-and-workflow-sdk","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","via":"inbound"},{"site":"chat-sdk","path":"/docs/api/cards","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/triage-form-submissions-with-chat-sdk","via":"neighbor"},{"site":"chat-sdk","path":"/docs/posting-messages","via":"neighbor"},{"site":"chat-sdk","path":"/docs/usage","via":"requires"},{"site":"chat-sdk","path":"/docs/threads-messages-channels","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/postable-message","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/concurrency","title":"Overlapping Messages","summary":"Control how overlapping messages on the same thread are handled - burst, queue, debounce, drop, or process concurrently.","outbound":[],"inbound":[],"requires":[{"site":"chat-sdk","path":"/docs/handling-events"}],"neighbors":[{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.2005},{"site":"chat-sdk","path":"/docs/usage","distance":0.2047},{"site":"chat-sdk","path":"/docs/streaming","distance":0.2508},{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk","distance":0.2525},{"site":"chat-sdk","path":"/docs/error-handling","distance":0.2572}],"related":[{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk","via":"neighbor"},{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"eve","path":"/docs/channels/custom","via":"neighbor"},{"site":"eve","path":"/docs/channels/slack","via":"neighbor"},{"site":"chat-sdk","path":"/docs/handling-events","via":"requires"},{"site":"chat-sdk","path":"/docs/threads-messages-channels","via":"neighbor"},{"site":"chat-sdk","path":"/docs/usage","via":"neighbor"},{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"chat-sdk","path":"/docs/error-handling","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/contributing/building","title":"Building an adapter","summary":"Learn how to build your own Chat SDK adapter for any messaging platform.","outbound":[{"site":"chat-sdk","path":"/docs/contributing/publishing"},{"site":"chat-sdk","path":"/docs/contributing/vendor-official"}],"inbound":[{"site":"chat-sdk","path":"/docs/adapters"},{"site":"chat-sdk","path":"/docs/contributing/vendor-official"},{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk"}],"requires":[{"site":"chat-sdk","path":"/docs/adapters"},{"site":"chat-sdk","path":"/docs/getting-started"}],"neighbors":[{"site":"chat-sdk","path":"/docs/platform-adapters","distance":0.2451},{"site":"chat-sdk","path":"/docs/api/markdown","distance":0.2719},{"site":"chat-sdk","path":"/docs/posting-messages","distance":0.2763},{"site":"chat-sdk","path":"/docs/contributing/documenting","distance":0.2849},{"site":"chat-sdk","path":"/docs/contributing/testing","distance":0.2907}],"related":[{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk","via":"inbound"},{"site":"v0","path":"/docs/api/v1/guides/displaying-chat-messages","via":"neighbor"},{"site":"chat-sdk","path":"/docs/adapters","via":"requires"},{"site":"chat-sdk","path":"/docs/getting-started","via":"requires"},{"site":"chat-sdk","path":"/docs/platform-adapters","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/markdown","via":"neighbor"},{"site":"chat-sdk","path":"/docs/posting-messages","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/contributing/documenting","title":"Documenting your adapter","summary":"Write a README, configuration reference, and usage examples for your adapter.","outbound":[],"inbound":[{"site":"chat-sdk","path":"/docs/contributing/vendor-official"}],"requires":[{"site":"chat-sdk","path":"/docs/contributing/building"},{"site":"chat-sdk","path":"/docs/contributing/testing"}],"neighbors":[{"site":"chat-sdk","path":"/docs/contributing/publishing","distance":0.1448},{"site":"chat-sdk","path":"/docs/contributing/testing","distance":0.1911},{"site":"chat-sdk","path":"/docs/platform-adapters","distance":0.2056},{"site":"chat-sdk","path":"/docs","distance":0.2197},{"site":"chat-sdk","path":"/docs/contributing/vendor-official","distance":0.2259}],"related":[{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"chat-sdk","path":"/docs/contributing/publishing","via":"neighbor"},{"site":"chat-sdk","path":"/docs/contributing/testing","via":"neighbor"},{"site":"chat-sdk","path":"/docs/contributing/building","via":"requires"},{"site":"chat-sdk","path":"/docs/platform-adapters","via":"neighbor"},{"site":"chat-sdk","path":"/docs/contributing/vendor-official","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/contributing/publishing","title":"Publishing your adapter","summary":"Package, version, and publish your community Chat SDK adapter to npm.","outbound":[{"site":"chat-sdk","path":"/docs/contributing/vendor-official"}],"inbound":[{"site":"chat-sdk","path":"/docs/adapters"},{"site":"chat-sdk","path":"/docs/contributing/building"},{"site":"chat-sdk","path":"/docs/contributing/vendor-official"}],"requires":[{"site":"chat-sdk","path":"/docs/contributing/building"},{"site":"chat-sdk","path":"/docs/contributing/documenting"},{"site":"chat-sdk","path":"/docs/contributing/testing"}],"neighbors":[{"site":"chat-sdk","path":"/docs/contributing/documenting","distance":0.1448},{"site":"chat-sdk","path":"/docs/contributing/vendor-official","distance":0.1535},{"site":"chat-sdk","path":"/docs/platform-adapters","distance":0.2067},{"site":"chat-sdk","path":"/docs/adapters","distance":0.209},{"site":"chat-sdk","path":"/docs","distance":0.2234}],"related":[{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"chat-sdk","path":"/docs/contributing/documenting","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/adapters","via":"neighbor"},{"site":"chat-sdk","path":"/docs/contributing/building","via":"requires"},{"site":"chat-sdk","path":"/docs/contributing/testing","via":"requires"},{"site":"chat-sdk","path":"/docs/platform-adapters","via":"neighbor"},{"site":"chat-sdk","path":"/docs/testing","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/contributing/testing","title":"Testing adapters","summary":"Write unit tests, integration tests, and replay tests for community Chat SDK adapters.","outbound":[{"site":"chat-sdk","path":"/docs/testing"}],"inbound":[{"site":"chat-sdk","path":"/docs/contributing/vendor-official"},{"site":"chat-sdk","path":"/docs/testing"}],"requires":[{"site":"chat-sdk","path":"/docs/contributing/building"}],"neighbors":[{"site":"chat-sdk","path":"/docs/testing","distance":0.1721},{"site":"chat-sdk","path":"/docs/contributing/documenting","distance":0.1911},{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.2423},{"site":"chat-sdk","path":"/docs/usage","distance":0.2485},{"site":"chat-sdk","path":"/docs","distance":0.2523}],"related":[{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"workflow","path":"/docs/testing","via":"neighbor"},{"site":"chat-sdk","path":"/docs/contributing/documenting","via":"neighbor"},{"site":"chat-sdk","path":"/docs/contributing/building","via":"requires"},{"site":"chat-sdk","path":"/docs/threads-messages-channels","via":"neighbor"},{"site":"chat-sdk","path":"/docs/usage","via":"neighbor"},{"site":"chat-sdk","path":"/docs/platform-adapters","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/contributing/vendor-official","title":"List a vendor-official adapter","summary":"Qualify for the vendor-official tier and add your adapter to the Chat SDK docs, chat/adapters catalog, create-chat-sdk, and eve.dev/integrations.","outbound":[{"site":"chat-sdk","path":"/docs/adapters"},{"site":"chat-sdk","path":"/docs/contributing/building"},{"site":"chat-sdk","path":"/docs/contributing/documenting"},{"site":"chat-sdk","path":"/docs/contributing/publishing"},{"site":"chat-sdk","path":"/docs/contributing/testing"},{"site":"chat-sdk","path":"/docs/create-chat-sdk"}],"inbound":[{"site":"chat-sdk","path":"/docs/adapters"},{"site":"chat-sdk","path":"/docs/contributing/building"},{"site":"chat-sdk","path":"/docs/contributing/publishing"}],"requires":[{"site":"chat-sdk","path":"/docs/contributing/building"},{"site":"chat-sdk","path":"/docs/contributing/publishing"}],"neighbors":[{"site":"chat-sdk","path":"/docs/contributing/publishing","distance":0.1535},{"site":"chat-sdk","path":"/docs/contributing/documenting","distance":0.2259},{"site":"chat-sdk","path":"/docs/platform-adapters","distance":0.2454},{"site":"chat-sdk","path":"/docs/adapters","distance":0.2548},{"site":"chat-sdk","path":"/docs","distance":0.2943}],"related":[{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/chat-sdk-and-eve","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/adapters","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/custom-adapters","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","via":"neighbor"},{"site":"chat-sdk","path":"/docs/platform-adapters","via":"neighbor"},{"site":"chat-sdk","path":"/docs/vercel-connect","via":"neighbor"},{"site":"chat-sdk","path":"/docs/testing","via":"neighbor"},{"site":"chat-sdk","path":"/docs/getting-started","via":"neighbor"},{"site":"chat-sdk","path":"/docs/state-adapters","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/conversation-history","title":"Conversation History","summary":"Persist messages per user across every platform — for LLM context, audit, or compliance.","outbound":[{"site":"chat-sdk","path":"/docs/api/transcripts"}],"inbound":[{"site":"chat-sdk","path":"/docs/api/transcripts"}],"requires":[{"site":"chat-sdk","path":"/docs/state-adapters"}],"neighbors":[{"site":"chat-sdk","path":"/docs/api/transcripts","distance":0.1076},{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.2373},{"site":"chat-sdk","path":"/docs/concurrency","distance":0.266},{"site":"chat-sdk","path":"/docs/usage","distance":0.2691},{"site":"chat-sdk","path":"/docs","distance":0.3007}],"related":[{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk","via":"neighbor"},{"site":"chat-sdk","path":"/docs/state-adapters","via":"requires"},{"site":"chat-sdk","path":"/docs/threads-messages-channels","via":"neighbor"},{"site":"chat-sdk","path":"/docs/concurrency","via":"neighbor"},{"site":"chat-sdk","path":"/docs/usage","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/thread","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/create-chat-sdk","title":"CLI","summary":"Scaffold a Chat SDK bot app with a single command.","outbound":[{"site":"chat-sdk","path":"/docs/vercel-connect"},{"site":"vercel-docs","path":"/docs/cron-jobs/usage-and-pricing"}],"inbound":[{"site":"chat-sdk","path":"/docs/contributing/vendor-official"},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/linear-agent-vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/slack-bot-vercel-blob"}],"requires":[{"site":"chat-sdk","path":"/docs"}],"neighbors":[{"site":"chat-sdk","path":"/docs/vercel-connect","distance":0.1824},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-slack-bot-with-next-js-and-redis","distance":0.1859},{"site":"vercel-kb","path":"/kb/guide/create-a-discord-support-bot-with-nuxt-and-redis","distance":0.2003},{"site":"chat-sdk","path":"/docs","distance":0.2024},{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect","distance":0.2147}],"related":[{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/linear-agent-vercel-connect","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/slack-bot-vercel-blob","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-slack-bot-with-next-js-and-redis","via":"neighbor"},{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"chat-sdk","path":"/docs/usage","via":"neighbor"},{"site":"chat-sdk","path":"/docs/contributing/documenting","via":"neighbor"},{"site":"chat-sdk","path":"/docs/platform-adapters","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/direct-messages","title":"Direct Messages","summary":"Initiate DM conversations with users programmatically.","outbound":[],"inbound":[{"site":"chat-sdk","path":"/docs/threads-messages-channels"}],"requires":[{"site":"chat-sdk","path":"/docs/usage"}],"neighbors":[{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.2621},{"site":"chat-sdk","path":"/docs/api/chat","distance":0.3067},{"site":"chat-sdk","path":"/docs/usage","distance":0.3088},{"site":"chat-sdk","path":"/docs/ephemeral-messages","distance":0.3279},{"site":"chat-sdk","path":"/docs/api/thread","distance":0.3418}],"related":[{"site":"chat-sdk","path":"/docs/usage","via":"requires"},{"site":"chat-sdk","path":"/docs/threads-messages-channels","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/chat","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ephemeral-messages","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/thread","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/emoji","title":"Emoji","summary":"Type-safe, cross-platform emoji that automatically convert to each platform's format.","outbound":[],"inbound":[{"site":"chat-sdk","path":"/docs/handling-events"}],"requires":[{"site":"chat-sdk","path":"/docs"}],"neighbors":[{"site":"chat-sdk","path":"/docs/cards","distance":0.3251},{"site":"chat-sdk","path":"/docs/api/markdown","distance":0.3445},{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.3502},{"site":"chat-sdk","path":"/docs/posting-messages","distance":0.3503},{"site":"chat-sdk","path":"/docs","distance":0.3585}],"related":[{"site":"vercel-kb","path":"/kb/guide/using-emoji-in-image","via":"neighbor"},{"site":"chat-sdk","path":"/docs/cards","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/markdown","via":"neighbor"},{"site":"chat-sdk","path":"/docs/threads-messages-channels","via":"neighbor"},{"site":"chat-sdk","path":"/docs/posting-messages","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/ephemeral-messages","title":"Ephemeral Messages","summary":"Send messages visible only to a specific user.","outbound":[],"inbound":[{"site":"chat-sdk","path":"/docs/slash-commands"}],"requires":[{"site":"chat-sdk","path":"/docs/usage"}],"neighbors":[{"site":"chat-sdk","path":"/docs/api/thread","distance":0.3216},{"site":"chat-sdk","path":"/docs/posting-messages","distance":0.3269},{"site":"chat-sdk","path":"/docs/direct-messages","distance":0.3279},{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.333},{"site":"chat-sdk","path":"/docs/api/channel","distance":0.3496}],"related":[{"site":"chat-sdk","path":"/docs/usage","via":"requires"},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-async","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/messages","via":"neighbor"},{"site":"eve","path":"/docs/patterns/durable-cross-channel-notifications","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/thread","via":"neighbor"},{"site":"chat-sdk","path":"/docs/posting-messages","via":"neighbor"},{"site":"chat-sdk","path":"/docs/direct-messages","via":"neighbor"},{"site":"chat-sdk","path":"/docs/threads-messages-channels","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/error-handling","title":"Error Handling","summary":"Handle rate limits, unsupported features, and other errors from adapters.","outbound":[{"site":"chat-sdk","path":"/docs/platform-adapters"},{"site":"chat-sdk","path":"/docs/usage"}],"inbound":[{"site":"chat-sdk","path":"/docs/usage"}],"requires":[{"site":"chat-sdk","path":"/docs/usage"}],"neighbors":[{"site":"chat-sdk","path":"/docs/usage","distance":0.1882},{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.1915},{"site":"chat-sdk","path":"/docs","distance":0.2028},{"site":"chat-sdk","path":"/docs/platform-adapters","distance":0.2136},{"site":"chat-sdk","path":"/docs/contributing/documenting","distance":0.2478}],"related":[{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"chat-sdk","path":"/docs/threads-messages-channels","via":"neighbor"},{"site":"chat-sdk","path":"/docs/contributing/documenting","via":"neighbor"},{"site":"chat-sdk","path":"/docs/concurrency","via":"neighbor"},{"site":"chat-sdk","path":"/docs/testing","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/chat","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/files","title":"File Uploads","summary":"Send and receive files across chat platforms.","outbound":[],"inbound":[{"site":"chat-sdk","path":"/docs/posting-messages"}],"requires":[{"site":"chat-sdk","path":"/docs/usage"}],"neighbors":[{"site":"v0","path":"/docs/images-and-videos","distance":0.2808},{"site":"chat-sdk","path":"/docs/posting-messages","distance":0.3262},{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.3338},{"site":"chat-sdk","path":"/docs/api/postable-message","distance":0.3367},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-files","distance":0.3542}],"related":[{"site":"v0","path":"/docs/images-and-videos","via":"neighbor"},{"site":"chat-sdk","path":"/docs/usage","via":"requires"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-files","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat-files","via":"neighbor"},{"site":"eve","path":"/docs/channels/telegram","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/images","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/images","via":"neighbor"},{"site":"chat-sdk","path":"/docs/posting-messages","via":"neighbor"},{"site":"chat-sdk","path":"/docs/threads-messages-channels","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/postable-message","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/message","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/getting-started","title":"Getting Started","summary":"Pick a guide to start building with Chat SDK.","outbound":[{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/claude-managed-agents-chat-sdk"}],"requires":[{"site":"chat-sdk","path":"/docs"}],"neighbors":[{"site":"chat-sdk","path":"/docs","distance":0.1755},{"site":"chat-sdk","path":"/docs/usage","distance":0.2078},{"site":"eve","path":"/docs/channels/chat-sdk","distance":0.2293},{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.2499},{"site":"chat-sdk","path":"/docs/contributing/documenting","distance":0.2516}],"related":[{"site":"vercel-kb","path":"/kb/guide/claude-managed-agents-chat-sdk","via":"inbound"},{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/chat-sdk-and-eve","via":"neighbor"},{"site":"chat-sdk","path":"/docs/usage","via":"neighbor"},{"site":"chat-sdk","path":"/docs/threads-messages-channels","via":"neighbor"},{"site":"chat-sdk","path":"/docs/contributing/documenting","via":"neighbor"},{"site":"chat-sdk","path":"/docs/platform-adapters","via":"neighbor"},{"site":"chat-sdk","path":"/docs/cards","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/handling-events","title":"Handling Events","summary":"Register handlers for mentions, messages, reactions, member joins, and platform-specific events.","outbound":[{"site":"chat-sdk","path":"/docs/actions"},{"site":"chat-sdk","path":"/docs/ai/to-ai-messages"},{"site":"chat-sdk","path":"/docs/api/message"},{"site":"chat-sdk","path":"/docs/api/thread"},{"site":"chat-sdk","path":"/docs/emoji"},{"site":"chat-sdk","path":"/docs/modals"},{"site":"chat-sdk","path":"/docs/slash-commands"}],"inbound":[],"requires":[{"site":"chat-sdk","path":"/docs/getting-started"}],"neighbors":[{"site":"chat-sdk","path":"/docs/api/chat","distance":0.1787},{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.2178},{"site":"eve","path":"/docs/channels/slack","distance":0.2653},{"site":"chat-sdk","path":"/docs/usage","distance":0.2708},{"site":"chat-sdk","path":"/docs/api/thread","distance":0.2862}],"related":[{"site":"eve","path":"/docs/channels/slack","via":"neighbor"},{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/chat","via":"neighbor"},{"site":"chat-sdk","path":"/docs/getting-started","via":"requires"},{"site":"chat-sdk","path":"/docs/threads-messages-channels","via":"neighbor"},{"site":"chat-sdk","path":"/docs/usage","via":"neighbor"},{"site":"chat-sdk","path":"/docs/concurrency","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/modals","title":"Modals","summary":"Collect structured user input through modal dialogs with text fields, dropdowns, and validation.","outbound":[{"site":"chat-sdk","path":"/docs/actions"},{"site":"chat-sdk","path":"/docs/slash-commands"}],"inbound":[{"site":"chat-sdk","path":"/docs/actions"},{"site":"chat-sdk","path":"/docs/api/modals"},{"site":"chat-sdk","path":"/docs/cards"},{"site":"chat-sdk","path":"/docs/handling-events"},{"site":"chat-sdk","path":"/docs/slash-commands"}],"requires":[{"site":"chat-sdk","path":"/docs/actions"}],"neighbors":[{"site":"chat-sdk","path":"/docs/api/modals","distance":0.1389},{"site":"chat-sdk","path":"/docs/actions","distance":0.2135},{"site":"chat-sdk","path":"/docs/cards","distance":0.2507},{"site":"chat-sdk","path":"/docs/api/chat","distance":0.28},{"site":"streamdown","path":"/docs/link-safety","distance":0.2941}],"related":[{"site":"chat-sdk","path":"/docs/api/modals","via":"neighbor"},{"site":"streamdown","path":"/docs/link-safety","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/triage-form-submissions-with-chat-sdk","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/forms","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes","via":"neighbor"},{"site":"chat-sdk","path":"/docs/cards","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/chat","via":"neighbor"},{"site":"chat-sdk","path":"/docs/threads-messages-channels","via":"neighbor"},{"site":"chat-sdk","path":"/docs/posting-messages","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/platform-adapters","title":"Platform Adapters","summary":"Platform-specific adapters that connect your bot to any messaging platform.","outbound":[{"site":"chat-sdk","path":"/docs/state-adapters"}],"inbound":[{"site":"chat-sdk","path":"/docs"},{"site":"chat-sdk","path":"/docs/adapters"},{"site":"chat-sdk","path":"/docs/error-handling"},{"site":"chat-sdk","path":"/docs/posting-messages"},{"site":"chat-sdk","path":"/docs/threads-messages-channels"}],"requires":[{"site":"chat-sdk","path":"/docs/adapters"},{"site":"chat-sdk","path":"/docs/getting-started"}],"neighbors":[{"site":"chat-sdk","path":"/docs","distance":0.1282},{"site":"chat-sdk","path":"/docs/usage","distance":0.1975},{"site":"chat-sdk","path":"/docs/adapters","distance":0.2006},{"site":"chat-sdk","path":"/docs/contributing/documenting","distance":0.2056},{"site":"chat-sdk","path":"/docs/contributing/publishing","distance":0.2067}],"related":[{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk","via":"neighbor"},{"site":"chat-sdk","path":"/docs/usage","via":"neighbor"},{"site":"chat-sdk","path":"/docs/adapters","via":"requires"},{"site":"chat-sdk","path":"/docs/getting-started","via":"requires"},{"site":"chat-sdk","path":"/docs/contributing/documenting","via":"neighbor"},{"site":"chat-sdk","path":"/docs/threads-messages-channels","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/posting-messages","title":"Posting Messages","summary":"Different ways to render and send messages with thread.post().","outbound":[{"site":"chat-sdk","path":"/docs/ai/to-ai-messages"},{"site":"chat-sdk","path":"/docs/cards"},{"site":"chat-sdk","path":"/docs/files"},{"site":"chat-sdk","path":"/docs/platform-adapters"},{"site":"chat-sdk","path":"/docs/streaming"}],"inbound":[{"site":"chat-sdk","path":"/docs/api/thread"}],"requires":[{"site":"chat-sdk","path":"/docs/usage"}],"neighbors":[{"site":"chat-sdk","path":"/docs/api/postable-message","distance":0.1182},{"site":"chat-sdk","path":"/docs/streaming","distance":0.1405},{"site":"chat-sdk","path":"/docs/cards","distance":0.1604},{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.1825},{"site":"chat-sdk","path":"/docs/api/thread","distance":0.205}],"related":[{"site":"chat-sdk","path":"/docs/api/postable-message","via":"neighbor"},{"site":"chat-sdk","path":"/docs/threads-messages-channels","via":"neighbor"},{"site":"chat-sdk","path":"/docs/usage","via":"requires"},{"site":"chat-sdk","path":"/docs/api/thread","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/markdown","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/slash-commands","title":"Slash Commands","summary":"Handle slash command invocations and respond with messages or modals.","outbound":[{"site":"chat-sdk","path":"/docs/ephemeral-messages"},{"site":"chat-sdk","path":"/docs/modals"}],"inbound":[{"site":"chat-sdk","path":"/docs/handling-events"},{"site":"chat-sdk","path":"/docs/modals"}],"requires":[{"site":"chat-sdk","path":"/docs/getting-started"}],"neighbors":[{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.2751},{"site":"eve","path":"/docs/channels/discord","distance":0.2968},{"site":"chat-sdk","path":"/docs/modals","distance":0.2998},{"site":"chat-sdk","path":"/docs/api/chat","distance":0.3074},{"site":"chat-sdk","path":"/docs/usage","distance":0.3081}],"related":[{"site":"eve","path":"/docs/channels/discord","via":"neighbor"},{"site":"chat-sdk","path":"/docs/getting-started","via":"requires"},{"site":"vercel-kb","path":"/kb/guide/run-and-track-deploys-from-slack","via":"neighbor"},{"site":"chat-sdk","path":"/docs/threads-messages-channels","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/chat","via":"neighbor"},{"site":"chat-sdk","path":"/docs/usage","via":"neighbor"},{"site":"chat-sdk","path":"/docs/handling-events","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/state-adapters","title":"State Adapters","summary":"Pluggable state adapters for thread subscriptions, distributed locking, and caching.","outbound":[],"inbound":[{"site":"chat-sdk","path":"/docs/adapters"},{"site":"chat-sdk","path":"/docs/platform-adapters"},{"site":"chat-sdk","path":"/docs/usage"}],"requires":[{"site":"chat-sdk","path":"/docs/getting-started"}],"neighbors":[{"site":"chat-sdk","path":"/docs/platform-adapters","distance":0.2359},{"site":"chat-sdk","path":"/docs","distance":0.2424},{"site":"chat-sdk","path":"/docs/usage","distance":0.2611},{"site":"chat-sdk","path":"/docs/adapters","distance":0.2698},{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.3018}],"related":[{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/adapters","via":"neighbor"},{"site":"chat-sdk","path":"/docs/getting-started","via":"requires"},{"site":"chat-sdk","path":"/docs/platform-adapters","via":"neighbor"},{"site":"chat-sdk","path":"/docs/usage","via":"neighbor"},{"site":"chat-sdk","path":"/docs/threads-messages-channels","via":"neighbor"},{"site":"chat-sdk","path":"/docs/error-handling","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/streaming","title":"Streaming","summary":"Stream real-time text responses from AI models and other async sources to chat platforms.","outbound":[{"site":"chat-sdk","path":"/docs/ai/to-ai-messages"}],"inbound":[{"site":"chat-sdk","path":"/docs/ai"},{"site":"chat-sdk","path":"/docs/api/postable-message"},{"site":"chat-sdk","path":"/docs/posting-messages"},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/create-a-discord-support-bot-with-nuxt-and-redis"},{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk"},{"site":"vercel-kb","path":"/kb/guide/linear-agent-vercel-connect"}],"requires":[{"site":"chat-sdk","path":"/docs/usage"}],"neighbors":[{"site":"chat-sdk","path":"/docs/posting-messages","distance":0.1405},{"site":"chat-sdk","path":"/docs/api/postable-message","distance":0.143},{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.1963},{"site":"chat-sdk","path":"/docs/ai","distance":0.214},{"site":"chat-sdk","path":"/docs/usage","distance":0.2228}],"related":[{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/create-a-discord-support-bot-with-nuxt-and-redis","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/linear-agent-vercel-connect","via":"inbound"},{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-streaming","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","via":"neighbor"},{"site":"chat-sdk","path":"/docs/posting-messages","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/postable-message","via":"neighbor"},{"site":"chat-sdk","path":"/docs/threads-messages-channels","via":"neighbor"},{"site":"chat-sdk","path":"/docs/usage","via":"requires"}]},{"site":"chat-sdk","path":"/docs/subject","title":"Message Subject","summary":"Fetch the parent resource that a message is about.","outbound":[{"site":"chat-sdk","path":"/docs/api/chat"},{"site":"chat-sdk","path":"/docs/api/message"}],"inbound":[{"site":"chat-sdk","path":"/docs/api/message"}],"requires":[{"site":"chat-sdk","path":"/docs/handling-events"}],"neighbors":[{"site":"chat-sdk","path":"/docs/api/message","distance":0.2905},{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.3362},{"site":"chat-sdk","path":"/docs/api/thread","distance":0.3878},{"site":"chat-sdk","path":"/docs/conversation-history","distance":0.4105},{"site":"chat-sdk","path":"/docs/api/channel","distance":0.4114}],"related":[{"site":"chat-sdk","path":"/docs/handling-events","via":"requires"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-message","via":"neighbor"},{"site":"chat-sdk","path":"/docs/threads-messages-channels","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/thread","via":"neighbor"},{"site":"chat-sdk","path":"/docs/conversation-history","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/channel","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/testing","title":"Testing","summary":"Test your bot handlers and custom adapters with @chat-adapter/tests — Vitest factories, custom matchers, and a setup file.","outbound":[{"site":"chat-sdk","path":"/docs/contributing/testing"}],"inbound":[{"site":"chat-sdk","path":"/docs/contributing/testing"}],"requires":[{"site":"chat-sdk","path":"/docs/getting-started"}],"neighbors":[{"site":"chat-sdk","path":"/docs/contributing/testing","distance":0.1721},{"site":"chat-sdk","path":"/docs","distance":0.21},{"site":"chat-sdk","path":"/docs/usage","distance":0.2226},{"site":"chat-sdk","path":"/docs/platform-adapters","distance":0.2287},{"site":"chat-sdk","path":"/docs/contributing/publishing","distance":0.2459}],"related":[{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/liveblocks-chat-sdk-ai-sdk","via":"neighbor"},{"site":"chat-sdk","path":"/docs/getting-started","via":"requires"},{"site":"chat-sdk","path":"/docs/usage","via":"neighbor"},{"site":"chat-sdk","path":"/docs/platform-adapters","via":"neighbor"},{"site":"chat-sdk","path":"/docs/contributing/publishing","via":"neighbor"},{"site":"chat-sdk","path":"/docs/threads-messages-channels","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/threads-messages-channels","title":"Threads, Messages, and Channels","summary":"Work with threads, messages, and channels across platforms.","outbound":[{"site":"chat-sdk","path":"/docs/api/chat"},{"site":"chat-sdk","path":"/docs/direct-messages"},{"site":"chat-sdk","path":"/docs/platform-adapters"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/human-in-the-loop-with-chat-sdk-and-workflow-sdk"}],"requires":[{"site":"chat-sdk","path":"/docs/usage"}],"neighbors":[{"site":"chat-sdk","path":"/docs/usage","distance":0.1092},{"site":"chat-sdk","path":"/docs/api/thread","distance":0.119},{"site":"chat-sdk","path":"/docs/api/channel","distance":0.1536},{"site":"chat-sdk","path":"/docs/api/chat","distance":0.1572},{"site":"chat-sdk","path":"/docs","distance":0.16}],"related":[{"site":"vercel-kb","path":"/kb/guide/human-in-the-loop-with-chat-sdk-and-workflow-sdk","via":"inbound"},{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"chat-sdk","path":"/docs/usage","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/thread","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/channel","via":"neighbor"},{"site":"chat-sdk","path":"/docs/posting-messages","via":"neighbor"},{"site":"chat-sdk","path":"/docs/error-handling","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/usage","title":"Creating a Chat Instance","summary":"Initialize the Chat class with adapters, state, and configuration options.","outbound":[{"site":"chat-sdk","path":"/docs/adapters"},{"site":"chat-sdk","path":"/docs/api/chat"},{"site":"chat-sdk","path":"/docs/error-handling"},{"site":"chat-sdk","path":"/docs/state-adapters"}],"inbound":[{"site":"chat-sdk","path":"/docs/error-handling"},{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk"}],"requires":[{"site":"chat-sdk","path":"/docs/getting-started"}],"neighbors":[{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.1092},{"site":"chat-sdk","path":"/docs","distance":0.1138},{"site":"chat-sdk","path":"/docs/api/chat","distance":0.1737},{"site":"eve","path":"/docs/channels/chat-sdk","distance":0.1754},{"site":"chat-sdk","path":"/docs/error-handling","distance":0.1882}],"related":[{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk","via":"inbound"},{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/liveblocks-chat-sdk-ai-sdk","via":"neighbor"},{"site":"chat-sdk","path":"/docs/threads-messages-channels","via":"neighbor"},{"site":"chat-sdk","path":"/docs/platform-adapters","via":"neighbor"},{"site":"chat-sdk","path":"/docs/getting-started","via":"requires"},{"site":"chat-sdk","path":"/docs/concurrency","via":"neighbor"},{"site":"chat-sdk","path":"/docs/testing","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/vercel-connect","title":"Vercel Connect","summary":"Authenticate Slack, Discord, GitHub, Linear, Notion, and Telegram adapters with Vercel Connect — short-lived runtime tokens for outbound calls and OIDC-verified inbound webhooks where supported.","outbound":[{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/connect/concepts/triggers"},{"site":"vercel-docs","path":"/docs/connect/ts-sdk-reference"}],"inbound":[{"site":"chat-sdk","path":"/docs/create-chat-sdk"},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/linear-agent-vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/slack-bot-vercel-blob"}],"requires":[{"site":"chat-sdk","path":"/docs"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-connect","distance":0.1483},{"site":"vercel-docs","path":"/docs/connect","distance":0.152},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","distance":0.1568},{"site":"vercel-docs","path":"/docs/connect/ts-sdk-reference","distance":0.164},{"site":"v0","path":"/docs/vercel-connect","distance":0.1773}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/linear-agent-vercel-connect","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/slack-bot-vercel-blob","via":"inbound"},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/connectors","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/tokens","via":"neighbor"},{"site":"eve","path":"/docs/connections","via":"neighbor"}]},{"site":"eve","path":"/docs/agent-config","title":"Agent configuration (agent.ts)","summary":"Configure an eve agent's model, reasoning effort, compaction, limits, and runtime behavior in agent.ts.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/how-to-use-eve-subagents"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/reference/typescript-api","distance":0.1354},{"site":"eve","path":"/docs/getting-started","distance":0.1646},{"site":"eve","path":"/docs/subagents","distance":0.1658},{"site":"eve","path":"/docs/concepts/built-in-tools","distance":0.178},{"site":"eve","path":"/docs/guides/dynamic-capabilities","distance":0.1892}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-use-eve-subagents","via":"inbound"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"eve","path":"/docs/reference/typescript-api","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","via":"neighbor"},{"site":"eve","path":"/docs/subagents","via":"neighbor"},{"site":"eve","path":"/docs/concepts/built-in-tools","via":"neighbor"},{"site":"eve","path":"/docs/guides/instrumentation","via":"neighbor"}]},{"site":"eve","path":"/docs/channels/chat-sdk","title":"Chat SDK","summary":"Bridge any Vercel Chat SDK adapter — Slack, Discord, Telegram, WhatsApp, email, and more — to your agent through one channel, using your own credentials and state store.","outbound":[],"inbound":[{"site":"vercel-kb","path":"/kb/guide/chat-sdk-and-eve"},{"site":"vercel-kb","path":"/kb/guide/eve-agent-with-resend"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/chat-sdk-and-eve","distance":0.1136},{"site":"eve","path":"/docs/channels/overview","distance":0.1382},{"site":"eve","path":"/docs/guides/frontend/overview","distance":0.1716},{"site":"chat-sdk","path":"/docs/usage","distance":0.1754},{"site":"eve","path":"/docs/channels/custom","distance":0.1764}],"related":[{"site":"vercel-kb","path":"/kb/guide/chat-sdk-and-eve","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-agent-with-resend","via":"inbound"},{"site":"chat-sdk","path":"/docs/usage","via":"neighbor"},{"site":"chat-sdk","path":"/docs","via":"neighbor"},{"site":"chat-sdk","path":"/docs/threads-messages-channels","via":"neighbor"},{"site":"chat-sdk","path":"/docs/getting-started","via":"neighbor"},{"site":"chat-sdk","path":"/docs/platform-adapters","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","via":"neighbor"},{"site":"eve","path":"/docs/channels/overview","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/overview","via":"neighbor"},{"site":"eve","path":"/docs/channels/custom","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"}]},{"site":"eve","path":"/docs/channels/custom","title":"Custom Channels","summary":"Author custom HTTP and WebSocket channels with routes, events, metadata, continuation tokens, and file uploads.","outbound":[],"inbound":[{"site":"vercel-kb","path":"/kb/guide/chat-sdk-and-eve"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/channels/overview","distance":0.1102},{"site":"eve","path":"/docs/channels/eve","distance":0.1553},{"site":"eve","path":"/docs/guides/frontend/overview","distance":0.1747},{"site":"eve","path":"/docs/channels/chat-sdk","distance":0.1764},{"site":"eve","path":"/docs/guides/hooks","distance":0.2173}],"related":[{"site":"vercel-kb","path":"/kb/guide/chat-sdk-and-eve","via":"inbound"},{"site":"chat-sdk","path":"/docs/api/channel","via":"neighbor"},{"site":"eve","path":"/docs/channels/overview","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/overview","via":"neighbor"},{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"eve","path":"/docs/guides/hooks","via":"neighbor"}]},{"site":"eve","path":"/docs/channels/discord","title":"Discord","summary":"Reach your agent from Discord HTTP Interactions, including slash commands, components, and modals.","outbound":[],"inbound":[{"site":"vercel-kb","path":"/kb/guide/chat-sdk-and-eve"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/channels/overview","distance":0.2372},{"site":"eve","path":"/docs/channels/chat-sdk","distance":0.2469},{"site":"eve","path":"/docs/channels/eve","distance":0.2542},{"site":"eve","path":"/docs/channels/github","distance":0.2643},{"site":"eve","path":"/docs/channels/telegram","distance":0.2655}],"related":[{"site":"vercel-kb","path":"/kb/guide/chat-sdk-and-eve","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/create-a-discord-support-bot-with-nuxt-and-redis","via":"neighbor"},{"site":"chat-sdk","path":"/docs/slash-commands","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","via":"neighbor"},{"site":"chat-sdk","path":"/docs/vercel-connect","via":"neighbor"},{"site":"chat-sdk","path":"/docs/create-chat-sdk","via":"neighbor"},{"site":"eve","path":"/docs/channels/overview","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"},{"site":"eve","path":"/docs/channels/telegram","via":"neighbor"},{"site":"eve","path":"/docs/channels/custom","via":"neighbor"},{"site":"eve","path":"/docs/channels/twilio","via":"neighbor"}]},{"site":"eve","path":"/docs/channels/eve","title":"eve","summary":"The default HTTP API for an agent, covering session routes, auth, and customization.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/channels/overview","distance":0.1089},{"site":"eve","path":"/docs/guides/client/overview","distance":0.1182},{"site":"eve","path":"/docs/guides/frontend/overview","distance":0.1308},{"site":"eve","path":"/docs/channels/custom","distance":0.1553},{"site":"eve","path":"/docs/guides/frontend/nextjs","distance":0.1843}],"related":[{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"eve","path":"/docs/channels/overview","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/overview","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/overview","via":"neighbor"},{"site":"eve","path":"/docs/channels/custom","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/nextjs","via":"neighbor"}]},{"site":"eve","path":"/docs/channels/github","title":"GitHub","summary":"Reach your agent from GitHub App webhooks, with comment invocation, PR diff context, sandbox checkout, and Vercel Connect credentials.","outbound":[],"inbound":[{"site":"vercel-kb","path":"/kb/guide/github-agent-eve"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","distance":0.1597},{"site":"eve","path":"/docs/channels/custom","distance":0.2395},{"site":"eve","path":"/docs/channels/overview","distance":0.2446},{"site":"eve","path":"/docs/channels/eve","distance":0.2515},{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect","distance":0.2548}],"related":[{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect","via":"neighbor"},{"site":"v0","path":"/docs/github","via":"neighbor"},{"site":"eve","path":"/docs/channels/custom","via":"neighbor"},{"site":"eve","path":"/docs/channels/overview","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"},{"site":"eve","path":"/docs/channels/discord","via":"neighbor"},{"site":"eve","path":"/docs/concepts/security-model","via":"neighbor"}]},{"site":"eve","path":"/docs/channels/linear","title":"Linear","summary":"Reach your agent through Linear Agent Sessions, with native Agent Activities for progress, questions, and responses, and Vercel Connect credentials.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/channels/custom","distance":0.2205},{"site":"vercel-kb","path":"/kb/guide/linear-agent-vercel-connect","distance":0.2253},{"site":"eve","path":"/docs/channels/overview","distance":0.2335},{"site":"eve","path":"/docs/connections","distance":0.2417},{"site":"eve","path":"/docs/channels/github","distance":0.2573}],"related":[{"site":"vercel-kb","path":"/kb/guide/linear-agent-vercel-connect","via":"neighbor"},{"site":"eve","path":"/docs/channels/custom","via":"neighbor"},{"site":"eve","path":"/docs/channels/overview","via":"neighbor"},{"site":"eve","path":"/docs/connections","via":"neighbor"},{"site":"eve","path":"/docs/channels/github","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"}]},{"site":"eve","path":"/docs/channels/mcp","title":"MCP Channel","summary":"Publish an eve agent as an MCP server with auth support.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/connections/mcp","distance":0.1965},{"site":"eve","path":"/docs/connections","distance":0.2245},{"site":"eve","path":"/docs/channels/eve","distance":0.2373},{"site":"eve","path":"/docs/channels/custom","distance":0.2461},{"site":"eve","path":"/docs/channels/overview","distance":0.2537}],"related":[{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/mcp","via":"neighbor"},{"site":"v0","path":"/docs/MCP","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"eve","path":"/docs/connections/mcp","via":"neighbor"},{"site":"eve","path":"/docs/connections","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"},{"site":"eve","path":"/docs/channels/custom","via":"neighbor"},{"site":"eve","path":"/docs/channels/overview","via":"neighbor"}]},{"site":"eve","path":"/docs/channels/overview","title":"Channels","summary":"How users reach your agent: the channel contract, the base eve HTTP channel, and authoring custom channels.","outbound":[{"site":"chat-sdk","path":"/docs/api/cards"}],"inbound":[{"site":"eve","path":"/docs/extensions"},{"site":"eve","path":"/docs/getting-started"},{"site":"eve","path":"/docs/human-in-the-loop"},{"site":"vercel-kb","path":"/kb/guide/chat-sdk-and-eve"},{"site":"vercel-kb","path":"/kb/guide/eve-agent-with-resend"},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot"},{"site":"vercel-kb","path":"/kb/guide/eve-typefully-social-media-agent"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/channels/eve","distance":0.1089},{"site":"eve","path":"/docs/channels/custom","distance":0.1102},{"site":"eve","path":"/docs/channels/chat-sdk","distance":0.1382},{"site":"eve","path":"/docs/guides/frontend/overview","distance":0.1394},{"site":"vercel-kb","path":"/kb/guide/chat-sdk-and-eve","distance":0.1885}],"related":[{"site":"vercel-kb","path":"/kb/guide/chat-sdk-and-eve","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/eve-agent-with-resend","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/eve-typefully-social-media-agent","via":"inbound"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"},{"site":"eve","path":"/docs/channels/custom","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/overview","via":"neighbor"},{"site":"eve","path":"/docs/reference/typescript-api","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/overview","via":"neighbor"}]},{"site":"eve","path":"/docs/channels/photon","title":"Photon","summary":"Connect an eve agent to iMessage through Photon.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/channels/overview","distance":0.3097},{"site":"eve","path":"/docs/channels/eve","distance":0.3277},{"site":"eve","path":"/docs/channels/telegram","distance":0.3563},{"site":"eve","path":"/docs/channels/twilio","distance":0.3603},{"site":"eve","path":"/docs/channels/discord","distance":0.3661}],"related":[{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/chat-sdk-and-eve","via":"neighbor"},{"site":"eve","path":"/docs/channels/overview","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"},{"site":"eve","path":"/docs/channels/telegram","via":"neighbor"},{"site":"eve","path":"/docs/channels/twilio","via":"neighbor"},{"site":"eve","path":"/docs/channels/discord","via":"neighbor"}]},{"site":"eve","path":"/docs/channels/slack","title":"Slack","summary":"Reach your agent from Slack app mentions and DMs with Vercel Connect-managed credentials, threaded replies, and interactive buttons.","outbound":[{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/deployment-protection-exceptions"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation"},{"site":"vercel-kb","path":"/kb/guide/vercel-connect"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/slackbot"},{"site":"vercel-kb","path":"/kb/guide/chat-sdk-and-eve"},{"site":"vercel-kb","path":"/kb/guide/eve-agent-prompt-injection"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/slack-bot-vercel-blob","distance":0.2575},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect","distance":0.2597},{"site":"chat-sdk","path":"/docs/handling-events","distance":0.2653},{"site":"eve","path":"/docs/channels/custom","distance":0.2775},{"site":"vercel-kb","path":"/kb/guide/eve-typefully-social-media-agent","distance":0.2831}],"related":[{"site":"ai-sdk","path":"/cookbook/guides/slackbot","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/chat-sdk-and-eve","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/eve-agent-prompt-injection","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/slack-bot-vercel-blob","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect","via":"neighbor"},{"site":"chat-sdk","path":"/docs/handling-events","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-typefully-social-media-agent","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/chat","via":"neighbor"},{"site":"eve","path":"/docs/channels/custom","via":"neighbor"},{"site":"eve","path":"/docs/guides/auth-and-route-protection","via":"neighbor"},{"site":"eve","path":"/docs/patterns/durable-cross-channel-notifications","via":"neighbor"},{"site":"eve","path":"/docs/channels/overview","via":"neighbor"}]},{"site":"eve","path":"/docs/channels/teams","title":"Microsoft Teams","summary":"Reach your agent from Microsoft Teams via the Bot Framework Activity protocol, with Adaptive Card human-in-the-loop prompts.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/channels/telegram","distance":0.2572},{"site":"eve","path":"/docs/channels/overview","distance":0.2668},{"site":"eve","path":"/docs/channels/custom","distance":0.273},{"site":"eve","path":"/docs/channels/twilio","distance":0.2756},{"site":"eve","path":"/docs/channels/chat-sdk","distance":0.2868}],"related":[{"site":"chat-sdk","path":"/docs/posting-messages","via":"neighbor"},{"site":"chat-sdk","path":"/docs/threads-messages-channels","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/channel","via":"neighbor"},{"site":"chat-sdk","path":"/docs/cards","via":"neighbor"},{"site":"chat-sdk","path":"/docs","via":"neighbor"},{"site":"eve","path":"/docs/channels/telegram","via":"neighbor"},{"site":"eve","path":"/docs/channels/overview","via":"neighbor"},{"site":"eve","path":"/docs/channels/custom","via":"neighbor"},{"site":"eve","path":"/docs/channels/twilio","via":"neighbor"},{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"}]},{"site":"eve","path":"/docs/channels/telegram","title":"Telegram","summary":"Reach your agent from Telegram bot webhooks, with inline-keyboard human-in-the-loop prompts and attachments.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/channels/twilio","distance":0.2144},{"site":"eve","path":"/docs/channels/overview","distance":0.2354},{"site":"eve","path":"/docs/channels/teams","distance":0.2572},{"site":"eve","path":"/docs/channels/chat-sdk","distance":0.2599},{"site":"eve","path":"/docs/channels/custom","distance":0.2634}],"related":[{"site":"chat-sdk","path":"/docs/threads-messages-channels","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/channel","via":"neighbor"},{"site":"chat-sdk","path":"/docs/usage","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/chat-sdk-and-eve","via":"neighbor"},{"site":"eve","path":"/docs/channels/twilio","via":"neighbor"},{"site":"eve","path":"/docs/channels/overview","via":"neighbor"},{"site":"eve","path":"/docs/channels/teams","via":"neighbor"},{"site":"eve","path":"/docs/channels/custom","via":"neighbor"},{"site":"eve","path":"/docs/channels/discord","via":"neighbor"}]},{"site":"eve","path":"/docs/channels/twilio","title":"Twilio","summary":"Reach your agent over SMS and speech-transcribed phone calls with Twilio.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/channels/telegram","distance":0.2144},{"site":"eve","path":"/docs/channels/overview","distance":0.2447},{"site":"eve","path":"/docs/channels/custom","distance":0.2661},{"site":"eve","path":"/docs/channels/teams","distance":0.2756},{"site":"eve","path":"/docs/channels/eve","distance":0.2824}],"related":[{"site":"chat-sdk","path":"/docs/api/channel","via":"neighbor"},{"site":"chat-sdk","path":"/docs/threads-messages-channels","via":"neighbor"},{"site":"eve","path":"/docs/channels/telegram","via":"neighbor"},{"site":"eve","path":"/docs/channels/overview","via":"neighbor"},{"site":"eve","path":"/docs/channels/custom","via":"neighbor"},{"site":"eve","path":"/docs/channels/teams","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"}]},{"site":"eve","path":"/docs/concepts/built-in-tools","title":"Built-in Tools","summary":"The default and opt-in tools eve provides, including Workflow, glob, grep, and sleep.","outbound":[{"site":"eve","path":"/docs/human-in-the-loop"}],"inbound":[{"site":"eve","path":"/docs/human-in-the-loop"},{"site":"eve","path":"/docs/tools"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/tools","distance":0.1372},{"site":"eve","path":"/docs/reference/typescript-api","distance":0.1735},{"site":"eve","path":"/docs/agent-config","distance":0.178},{"site":"eve","path":"/docs/guides/dynamic-capabilities","distance":0.1784},{"site":"eve","path":"/docs/subagents","distance":0.1865}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"neighbor"},{"site":"workflow","path":"/docs/ai","via":"neighbor"},{"site":"workflow","path":"/docs/ai/defining-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-workflowagent","via":"neighbor"},{"site":"workflow","path":"/docs/ai/sleep-and-delays","via":"neighbor"},{"site":"eve","path":"/docs/tools","via":"neighbor"},{"site":"eve","path":"/docs/reference/typescript-api","via":"neighbor"},{"site":"eve","path":"/docs/agent-config","via":"neighbor"},{"site":"eve","path":"/docs/guides/dynamic-capabilities","via":"neighbor"},{"site":"eve","path":"/docs/subagents","via":"neighbor"}]},{"site":"eve","path":"/docs/concepts/context-control","title":"Context Control","summary":"Choose what an eve agent's model sees and when, across instructions, skills, tools, the workspace, and subagents.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/instructions","distance":0.1207},{"site":"eve","path":"/docs/skills","distance":0.1913},{"site":"eve","path":"/docs/guides/dynamic-capabilities","distance":0.196},{"site":"eve","path":"/docs/agent-config","distance":0.2388},{"site":"eve","path":"/docs/guides/session-context","distance":0.2472}],"related":[{"site":"eve","path":"/docs/instructions","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/agent-skills","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-skills","via":"neighbor"},{"site":"eve","path":"/docs/skills","via":"neighbor"},{"site":"eve","path":"/docs/guides/dynamic-capabilities","via":"neighbor"},{"site":"eve","path":"/docs/agent-config","via":"neighbor"},{"site":"eve","path":"/docs/guides/session-context","via":"neighbor"}]},{"site":"eve","path":"/docs/concepts/default-harness","title":"Default Harness","summary":"How eve manages model context and compaction during an agent turn.","outbound":[],"inbound":[{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools"},{"site":"vercel-kb","path":"/kb/guide/sanity-eve-agent"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/agent-config","distance":0.2779},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-agent","distance":0.3109},{"site":"eve","path":"/docs/concepts/execution-model-and-durability","distance":0.3168},{"site":"eve","path":"/docs/concepts/built-in-tools","distance":0.317},{"site":"eve","path":"/docs/reference/typescript-api","distance":0.3268}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/sanity-eve-agent","via":"inbound"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-agent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/tools","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/cline","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"eve","path":"/docs/agent-config","via":"neighbor"},{"site":"eve","path":"/docs/concepts/execution-model-and-durability","via":"neighbor"},{"site":"eve","path":"/docs/concepts/built-in-tools","via":"neighbor"},{"site":"eve","path":"/docs/reference/typescript-api","via":"neighbor"}]},{"site":"eve","path":"/docs/concepts/execution-model-and-durability","title":"Execution Model and Durability","summary":"How an eve session runs. Durable conversations, turns that checkpoint at steps, and parked work that resumes later.","outbound":[],"inbound":[{"site":"eve","path":"/docs/getting-started"},{"site":"eve","path":"/docs/tools"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/concepts/security-model","distance":0.1892},{"site":"eve","path":"/docs/concepts/built-in-tools","distance":0.1966},{"site":"eve","path":"/docs/guides/deployment/self-hosting","distance":0.1989},{"site":"eve","path":"/docs/agent-config","distance":0.2096},{"site":"eve","path":"/docs/guides/dynamic-capabilities","distance":0.2106}],"related":[{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"eve","path":"/docs/concepts/security-model","via":"neighbor"},{"site":"eve","path":"/docs/concepts/built-in-tools","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/self-hosting","via":"neighbor"},{"site":"eve","path":"/docs/agent-config","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/overview","via":"neighbor"}]},{"site":"eve","path":"/docs/concepts/security-model","title":"Security Model","summary":"eve's trust boundaries, where secrets live, how credentials reach hosts, and what fails closed by default.","outbound":[{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/firewall"}],"inbound":[{"site":"eve","path":"/docs/connections"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/connections","distance":0.1804},{"site":"vercel-docs","path":"/docs/eve/concepts","distance":0.1886},{"site":"eve","path":"/docs/concepts/execution-model-and-durability","distance":0.1892},{"site":"eve","path":"/docs/channels/eve","distance":0.1922},{"site":"eve","path":"/docs/tutorial/ship-it","distance":0.1987}],"related":[{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot","via":"neighbor"},{"site":"eve","path":"/docs/connections","via":"neighbor"},{"site":"eve","path":"/docs/concepts/execution-model-and-durability","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/ship-it","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","via":"neighbor"}]},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming","title":"Agent sessions, runs, and streaming","summary":"The ID-addressed session contract: messages, controls, the NDJSON event stream, and reconnecting.","outbound":[{"site":"eve","path":"/docs/human-in-the-loop"}],"inbound":[{"site":"eve","path":"/docs/guides/frontend/overview"},{"site":"eve","path":"/docs/human-in-the-loop"},{"site":"eve","path":"/docs/tools"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/guides/client/streaming","distance":0.1507},{"site":"eve","path":"/docs/concepts/execution-model-and-durability","distance":0.2736},{"site":"eve","path":"/docs/guides/client/messages","distance":0.2892},{"site":"eve","path":"/docs/guides/frontend/overview","distance":0.2949},{"site":"eve","path":"/docs/guides/client/continuations","distance":0.3042}],"related":[{"site":"eve","path":"/docs/guides/client/streaming","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-resume-streams","via":"neighbor"},{"site":"workflow","path":"/docs/ai/chat-session-modeling","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/run-claude-managed-agent-tools-with-vercel-sandbox","via":"neighbor"},{"site":"workflow","path":"/docs/ai/resumable-streams","via":"neighbor"},{"site":"eve","path":"/docs/concepts/execution-model-and-durability","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/messages","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/overview","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/continuations","via":"neighbor"}]},{"site":"eve","path":"/docs/concepts/state","title":"State","summary":"Durable per-session memory with defineState: get() and update(), persisted across step boundaries.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/tutorial/remember-definitions","distance":0.1886},{"site":"eve","path":"/docs/guides/session-context","distance":0.287},{"site":"eve","path":"/docs/guides/dynamic-capabilities","distance":0.3105},{"site":"eve","path":"/docs/concepts/execution-model-and-durability","distance":0.3121},{"site":"eve","path":"/docs/patterns/multi-tenant-memory","distance":0.3227}],"related":[{"site":"eve","path":"/docs/tutorial/remember-definitions","via":"neighbor"},{"site":"eve","path":"/docs/guides/session-context","via":"neighbor"},{"site":"eve","path":"/docs/guides/dynamic-capabilities","via":"neighbor"},{"site":"eve","path":"/docs/concepts/execution-model-and-durability","via":"neighbor"},{"site":"eve","path":"/docs/patterns/multi-tenant-memory","via":"neighbor"}]},{"site":"eve","path":"/docs/connections","title":"Connections","summary":"Expose external MCP and OpenAPI servers to the model, with connection tokens the model never sees.","outbound":[{"site":"eve","path":"/docs/concepts/security-model"},{"site":"eve","path":"/docs/connections/mcp"},{"site":"eve","path":"/docs/connections/openapi"},{"site":"eve","path":"/docs/guides/auth-and-route-protection"},{"site":"eve","path":"/docs/tools"},{"site":"vercel-docs","path":"/docs/connect"}],"inbound":[{"site":"eve","path":"/docs/extensions"},{"site":"eve","path":"/docs/getting-started"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/connections/mcp","distance":0.0904},{"site":"eve","path":"/docs/connections/openapi","distance":0.1342},{"site":"eve","path":"/docs/concepts/security-model","distance":0.1804},{"site":"eve","path":"/docs/patterns/multi-tenant-auth","distance":0.185},{"site":"eve","path":"/docs/reference/typescript-api","distance":0.2077}],"related":[{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"eve","path":"/docs/patterns/multi-tenant-auth","via":"neighbor"},{"site":"eve","path":"/docs/reference/typescript-api","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"},{"site":"eve","path":"/docs/channels/mcp","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/overview","via":"neighbor"}]},{"site":"eve","path":"/docs/connections/mcp","title":"MCP Connections","summary":"Connect an eve agent to a remote MCP server, authorize it with Vercel Connect or static credentials, and control which tools the model can discover.","outbound":[{"site":"eve","path":"/docs/human-in-the-loop"},{"site":"eve","path":"/docs/tools"}],"inbound":[{"site":"eve","path":"/docs/connections"}],"requires":[{"site":"eve","path":"/docs/connections"}],"neighbors":[{"site":"eve","path":"/docs/connections","distance":0.0904},{"site":"eve","path":"/docs/connections/openapi","distance":0.1549},{"site":"eve","path":"/docs/channels/mcp","distance":0.1965},{"site":"eve","path":"/docs/tutorial/connect-a-warehouse","distance":0.2505},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp","distance":0.2601}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp","via":"neighbor"},{"site":"v0","path":"/docs/MCP","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-mcp-server-with-nuxt","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/mcp","via":"neighbor"},{"site":"eve","path":"/docs/connections/openapi","via":"neighbor"},{"site":"eve","path":"/docs/channels/mcp","via":"neighbor"},{"site":"eve","path":"/docs/patterns/multi-tenant-auth","via":"neighbor"},{"site":"eve","path":"/docs/concepts/security-model","via":"neighbor"},{"site":"eve","path":"/docs/reference/typescript-api","via":"neighbor"}]},{"site":"eve","path":"/docs/connections/openapi","title":"OpenAPI Connections","summary":"Turn an OpenAPI 3.x or Swagger 2.0 document into eve connection tools, authorize calls, and control which operations the model can discover.","outbound":[],"inbound":[{"site":"eve","path":"/docs/connections"},{"site":"v0","path":"/docs/api/v2/guides/integrating-v0-into-agents"}],"requires":[{"site":"eve","path":"/docs/connections"}],"neighbors":[{"site":"eve","path":"/docs/connections","distance":0.1342},{"site":"eve","path":"/docs/connections/mcp","distance":0.1549},{"site":"eve","path":"/docs/patterns/multi-tenant-auth","distance":0.2563},{"site":"eve","path":"/docs/reference/typescript-api","distance":0.2596},{"site":"eve","path":"/docs/concepts/security-model","distance":0.2652}],"related":[{"site":"v0","path":"/docs/api/v2/guides/integrating-v0-into-agents","via":"inbound"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"eve","path":"/docs/connections/mcp","via":"neighbor"},{"site":"eve","path":"/docs/patterns/multi-tenant-auth","via":"neighbor"},{"site":"eve","path":"/docs/reference/typescript-api","via":"neighbor"},{"site":"eve","path":"/docs/concepts/security-model","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"}]},{"site":"eve","path":"/docs/evals/assertions","title":"Assertions","summary":"Scoped methods, value assertions, the matcher mini-language, and gate vs soft severity.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/evals/cases","distance":0.1956},{"site":"eve","path":"/docs/evals/overview","distance":0.1981},{"site":"eve","path":"/docs/evals/judge","distance":0.2028},{"site":"eve","path":"/docs/human-in-the-loop","distance":0.3133},{"site":"eve","path":"/docs/evals/reporters","distance":0.3169}],"related":[{"site":"eve","path":"/docs/evals/cases","via":"neighbor"},{"site":"eve","path":"/docs/evals/overview","via":"neighbor"},{"site":"eve","path":"/docs/evals/judge","via":"neighbor"},{"site":"eve","path":"/docs/human-in-the-loop","via":"neighbor"},{"site":"eve","path":"/docs/evals/reporters","via":"neighbor"}]},{"site":"eve","path":"/docs/evals/cases","title":"Cases","summary":"Author single-turn and multi-turn evals with test(t), and fan one file out over a dataset.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/evals/overview","distance":0.0994},{"site":"eve","path":"/docs/evals/running","distance":0.1948},{"site":"eve","path":"/docs/evals/assertions","distance":0.1956},{"site":"eve","path":"/docs/evals/reporters","distance":0.2111},{"site":"eve","path":"/docs/evals/judge","distance":0.2273}],"related":[{"site":"eve","path":"/docs/evals/overview","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/an-introduction-to-evals","via":"neighbor"},{"site":"eve","path":"/docs/evals/running","via":"neighbor"},{"site":"eve","path":"/docs/evals/assertions","via":"neighbor"},{"site":"eve","path":"/docs/evals/reporters","via":"neighbor"},{"site":"eve","path":"/docs/evals/judge","via":"neighbor"}]},{"site":"eve","path":"/docs/evals/judge","title":"Judge","summary":"Grade evals with an LLM judge via t.judge.autoevals, set thresholds on the assertion, and configure the judge model.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/evals/overview","distance":0.1886},{"site":"eve","path":"/docs/evals/assertions","distance":0.2028},{"site":"eve","path":"/docs/evals/cases","distance":0.2273},{"site":"eve","path":"/docs/evals/reporters","distance":0.2416},{"site":"eve","path":"/docs/evals/running","distance":0.2885}],"related":[{"site":"vercel-kb","path":"/kb/guide/an-introduction-to-evals","via":"neighbor"},{"site":"eve","path":"/docs/evals/overview","via":"neighbor"},{"site":"eve","path":"/docs/evals/assertions","via":"neighbor"},{"site":"eve","path":"/docs/evals/cases","via":"neighbor"},{"site":"eve","path":"/docs/evals/reporters","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot","via":"neighbor"},{"site":"eve","path":"/docs/evals/running","via":"neighbor"}]},{"site":"eve","path":"/docs/evals/overview","title":"Evals","summary":"Define repeatable scored checks for an eve agent with defineEval and run them with eve eval.","outbound":[],"inbound":[{"site":"eve","path":"/docs/getting-started"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/evals/cases","distance":0.0994},{"site":"eve","path":"/docs/evals/running","distance":0.1149},{"site":"eve","path":"/docs/evals/reporters","distance":0.1599},{"site":"eve","path":"/docs/evals/judge","distance":0.1886},{"site":"eve","path":"/docs/evals/assertions","distance":0.1981}],"related":[{"site":"vercel-kb","path":"/kb/guide/an-introduction-to-evals","via":"neighbor"},{"site":"eve","path":"/docs/evals/cases","via":"neighbor"},{"site":"eve","path":"/docs/evals/running","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"eve","path":"/docs/evals/reporters","via":"neighbor"},{"site":"eve","path":"/docs/evals/judge","via":"neighbor"},{"site":"eve","path":"/docs/evals/assertions","via":"neighbor"}]},{"site":"eve","path":"/docs/evals/reporters","title":"Reporters","summary":"Ship eval results to Braintrust experiments or JUnit XML. eve runs and scores everything itself.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/evals/overview","distance":0.1599},{"site":"eve","path":"/docs/evals/running","distance":0.1745},{"site":"eve","path":"/docs/evals/cases","distance":0.2111},{"site":"eve","path":"/docs/evals/judge","distance":0.2416},{"site":"eve","path":"/docs/guides/instrumentation","distance":0.307}],"related":[{"site":"eve","path":"/docs/evals/overview","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/an-introduction-to-evals","via":"neighbor"},{"site":"eve","path":"/docs/evals/running","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/observability","via":"neighbor"},{"site":"eve","path":"/docs/evals/cases","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"eve","path":"/docs/evals/judge","via":"neighbor"},{"site":"eve","path":"/docs/guides/instrumentation","via":"neighbor"}]},{"site":"eve","path":"/docs/evals/running","title":"Running Evals","summary":"The eve eval CLI: flags, filters, exit codes, artifacts, and how to wire evals into CI.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/evals/overview","distance":0.1149},{"site":"eve","path":"/docs/evals/reporters","distance":0.1745},{"site":"eve","path":"/docs/evals/cases","distance":0.1948},{"site":"eve","path":"/docs/evals/targets","distance":0.2139},{"site":"eve","path":"/docs/guides/instrumentation","distance":0.2663}],"related":[{"site":"eve","path":"/docs/evals/overview","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/an-introduction-to-evals","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"eve","path":"/docs/evals/reporters","via":"neighbor"},{"site":"eve","path":"/docs/evals/cases","via":"neighbor"},{"site":"eve","path":"/docs/evals/targets","via":"neighbor"},{"site":"eve","path":"/docs/guides/instrumentation","via":"neighbor"}]},{"site":"eve","path":"/docs/evals/targets","title":"Targets","summary":"Point evals at a local dev server or a deployment with the same eval files.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/evals/running","distance":0.2139},{"site":"eve","path":"/docs/evals/overview","distance":0.2219},{"site":"eve","path":"/docs/evals/cases","distance":0.2617},{"site":"eve","path":"/docs/guides/instrumentation","distance":0.2998},{"site":"eve","path":"/docs/channels/eve","distance":0.3067}],"related":[{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/observability","via":"neighbor"},{"site":"eve","path":"/docs/evals/running","via":"neighbor"},{"site":"eve","path":"/docs/evals/overview","via":"neighbor"},{"site":"eve","path":"/docs/evals/cases","via":"neighbor"},{"site":"eve","path":"/docs/guides/instrumentation","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"}]},{"site":"eve","path":"/docs/extensions","title":"Extensions","summary":"Package reusable eve capabilities and mount them from npm or a monorepo workspace.","outbound":[{"site":"eve","path":"/docs/channels/overview"},{"site":"eve","path":"/docs/connections"},{"site":"eve","path":"/docs/guides/dynamic-capabilities"},{"site":"eve","path":"/docs/guides/hooks"},{"site":"eve","path":"/docs/instructions"},{"site":"eve","path":"/docs/schedules"},{"site":"eve","path":"/docs/skills"},{"site":"eve","path":"/docs/subagents"},{"site":"eve","path":"/docs/tools"}],"inbound":[{"site":"eve","path":"/docs/reference/cli"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/reference/typescript-api","distance":0.2175},{"site":"eve","path":"/docs/getting-started","distance":0.2329},{"site":"eve","path":"/docs/install-integrations","distance":0.2425},{"site":"eve","path":"/docs/agent-config","distance":0.2485},{"site":"eve","path":"/docs/subagents","distance":0.2499}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"eve","path":"/docs/reference/typescript-api","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","via":"neighbor"},{"site":"eve","path":"/docs/install-integrations","via":"neighbor"},{"site":"eve","path":"/docs/agent-config","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/overview","via":"neighbor"}]},{"site":"eve","path":"/docs/getting-started","title":"Get started with eve: durable AI agents in TypeScript","summary":"Create an eve project, configure a model, understand its filesystem layout, and run your first agent.","outbound":[{"site":"eve","path":"/docs/channels/overview"},{"site":"eve","path":"/docs/concepts/execution-model-and-durability"},{"site":"eve","path":"/docs/connections"},{"site":"eve","path":"/docs/evals/overview"},{"site":"eve","path":"/docs/guides/auth-and-route-protection"},{"site":"eve","path":"/docs/guides/deployment/overview"},{"site":"eve","path":"/docs/guides/frontend/overview"},{"site":"eve","path":"/docs/tools"},{"site":"eve","path":"/docs/tutorial/first-agent"}],"inbound":[{"site":"vercel-docs","path":"/docs/eve"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-skills"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-eve-subagents"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/eve","distance":0.1375},{"site":"vercel-docs","path":"/docs/eve/concepts","distance":0.1511},{"site":"eve","path":"/docs/agent-config","distance":0.1646},{"site":"eve","path":"/docs/tutorial/first-agent","distance":0.1698},{"site":"eve","path":"/docs/tutorial/ship-it","distance":0.1819}],"related":[{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-skills","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-eve-subagents","via":"inbound"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"neighbor"},{"site":"eve","path":"/docs/agent-config","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/ship-it","via":"neighbor"},{"site":"eve","path":"/docs/reference/typescript-api","via":"neighbor"},{"site":"eve","path":"/docs/guides/instrumentation","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/self-hosting","via":"neighbor"}]},{"site":"eve","path":"/docs/guides/auth-and-route-protection","title":"Authentication","summary":"Secure your agent's HTTP routes with an ordered auth walk, verifier helpers, and connection OAuth via Vercel Connect.","outbound":[{"site":"vercel-docs","path":"/docs/oidc"}],"inbound":[{"site":"eve","path":"/docs/connections"},{"site":"eve","path":"/docs/getting-started"},{"site":"eve","path":"/docs/tools"},{"site":"vercel-kb","path":"/kb/guide/eve-agent-prompt-injection"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-skills"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/channels/eve","distance":0.2233},{"site":"eve","path":"/docs/connections","distance":0.2349},{"site":"eve","path":"/docs/patterns/multi-tenant-auth","distance":0.249},{"site":"eve","path":"/docs/concepts/security-model","distance":0.2584},{"site":"eve","path":"/docs/channels/custom","distance":0.2811}],"related":[{"site":"vercel-kb","path":"/kb/guide/eve-agent-prompt-injection","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-skills","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-typefully-social-media-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-a-browser-agent","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"},{"site":"eve","path":"/docs/connections","via":"neighbor"},{"site":"eve","path":"/docs/patterns/multi-tenant-auth","via":"neighbor"},{"site":"eve","path":"/docs/concepts/security-model","via":"neighbor"},{"site":"eve","path":"/docs/channels/custom","via":"neighbor"}]},{"site":"eve","path":"/docs/guides/client/continuations","title":"Session State","summary":"Persist and resume eve client sessions with durable session IDs and stream cursors.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/guides/client/streaming","distance":0.2229},{"site":"eve","path":"/docs/guides/client/overview","distance":0.2637},{"site":"eve","path":"/docs/guides/client/messages","distance":0.3017},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming","distance":0.3042},{"site":"eve","path":"/docs/guides/frontend/overview","distance":0.3049}],"related":[{"site":"v0","path":"/docs/api/v2/reference/chats/resume-chat-stream","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/streaming","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-resume-streams","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-streaming","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/overview","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/messages","via":"neighbor"},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/overview","via":"neighbor"}]},{"site":"eve","path":"/docs/guides/client/messages","title":"Messages","summary":"Send text, full turn payloads, client context, attachments, and HITL responses with eve/client.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/guides/client/streaming","distance":0.1677},{"site":"eve","path":"/docs/guides/client/overview","distance":0.2335},{"site":"eve","path":"/docs/guides/frontend/overview","distance":0.2349},{"site":"eve","path":"/docs/channels/eve","distance":0.2613},{"site":"eve","path":"/docs/channels/overview","distance":0.2811}],"related":[{"site":"eve","path":"/docs/guides/client/streaming","via":"neighbor"},{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/overview","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/overview","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"},{"site":"eve","path":"/docs/channels/overview","via":"neighbor"}]},{"site":"eve","path":"/docs/guides/client/output-schema","title":"Output Schema","summary":"Request structured results from eve client turns and read typed data from MessageResult.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/guides/client/messages","distance":0.3094},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/structured-outputs","distance":0.3188},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/structured-outputs","distance":0.3253},{"site":"eve","path":"/docs/guides/client/streaming","distance":0.3384},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output","distance":0.3396}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/structured-outputs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/structured-outputs","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/structured-outputs","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-object","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/structured-outputs","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/messages","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/streaming","via":"neighbor"},{"site":"eve","path":"/docs/evals/cases","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/overview","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/overview","via":"neighbor"}]},{"site":"eve","path":"/docs/guides/client/overview","title":"Client SDK","summary":"Call an eve agent from TypeScript with Client, sessions, auth, and health checks.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/channels/eve","distance":0.1182},{"site":"eve","path":"/docs/guides/frontend/overview","distance":0.1662},{"site":"eve","path":"/docs/channels/overview","distance":0.2078},{"site":"eve","path":"/docs/guides/client/messages","distance":0.2335},{"site":"eve","path":"/docs/guides/frontend/use-eve-agent-svelte","distance":0.2397}],"related":[{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/overview","via":"neighbor"},{"site":"eve","path":"/docs/channels/overview","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/messages","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/use-eve-agent-svelte","via":"neighbor"}]},{"site":"eve","path":"/docs/guides/client/streaming","title":"Streaming","summary":"Consume eve client stream events live, reconnect by event index, and aggregate turn results.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming","distance":0.1507},{"site":"eve","path":"/docs/guides/client/messages","distance":0.1677},{"site":"eve","path":"/docs/guides/client/continuations","distance":0.2229},{"site":"eve","path":"/docs/guides/frontend/overview","distance":0.2254},{"site":"eve","path":"/docs/channels/custom","distance":0.2601}],"related":[{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"workflow","path":"/docs/ai/resumable-streams","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-resume-streams","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/resume-chat-stream","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-streaming","via":"neighbor"},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/messages","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/continuations","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/overview","via":"neighbor"},{"site":"eve","path":"/docs/channels/custom","via":"neighbor"}]},{"site":"eve","path":"/docs/guides/deployment/overview","title":"Deployment","summary":"Choose a deployment strategy and prepare an eve agent for production.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[{"site":"eve","path":"/docs/getting-started"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/guides/deployment/vercel","distance":0.1148},{"site":"eve","path":"/docs/guides/deployment/self-hosting","distance":0.1527},{"site":"vercel-docs","path":"/docs/eve","distance":0.1567},{"site":"eve","path":"/docs/guides/frontend/nextjs","distance":0.1645},{"site":"eve","path":"/docs/getting-started","distance":0.1893}],"related":[{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/give-eve-agent-secure-access-to-aws-rds-database","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/self-hosting","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/nextjs","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/ship-it","via":"neighbor"}]},{"site":"eve","path":"/docs/guides/deployment/self-hosting","title":"Self-Host eve","summary":"Run an eve agent as a Node service with your own workflow storage, sandbox backend, and routing.","outbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/guides/deployment/overview","distance":0.1527},{"site":"vercel-docs","path":"/docs/eve","distance":0.1958},{"site":"eve","path":"/docs/concepts/execution-model-and-durability","distance":0.1989},{"site":"eve","path":"/docs/guides/deployment/vercel","distance":0.2012},{"site":"eve","path":"/docs/getting-started","distance":0.2028}],"related":[{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/overview","via":"neighbor"},{"site":"eve","path":"/docs/concepts/execution-model-and-durability","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/vercel","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/nextjs","via":"neighbor"}]},{"site":"eve","path":"/docs/guides/deployment/vercel","title":"Deploy to Vercel","summary":"Deploy an eve agent with Vercel Workflow, Sandbox, Cron, and project credentials.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/guides/deployment/overview","distance":0.1148},{"site":"vercel-docs","path":"/docs/eve","distance":0.1572},{"site":"vercel-docs","path":"/docs/eve/concepts","distance":0.1938},{"site":"eve","path":"/docs/guides/deployment/self-hosting","distance":0.2012},{"site":"eve","path":"/docs/guides/frontend/nextjs","distance":0.2013}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools","via":"inbound"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-an-agent-with-openai-agents-sdk-and-vercel-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/give-eve-agent-secure-access-to-aws-rds-database","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/overview","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/self-hosting","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/nextjs","via":"neighbor"}]},{"site":"eve","path":"/docs/guides/dev-tui","title":"Terminal UI","summary":"Use eve locally or connect to a deployed agent from an interactive terminal UI.","outbound":[],"inbound":[{"site":"vercel-kb","path":"/kb/guide/eve-agent-prompt-injection"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/reference/cli","distance":0.1909},{"site":"eve","path":"/docs/guides/instrumentation","distance":0.1929},{"site":"vercel-docs","path":"/docs/eve","distance":0.2065},{"site":"eve","path":"/docs/channels/eve","distance":0.2184},{"site":"vercel-docs","path":"/docs/eve/concepts","distance":0.2236}],"related":[{"site":"vercel-kb","path":"/kb/guide/eve-agent-prompt-injection","via":"inbound"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"neighbor"},{"site":"eve","path":"/docs/reference/cli","via":"neighbor"},{"site":"eve","path":"/docs/guides/instrumentation","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/nextjs","via":"neighbor"}]},{"site":"eve","path":"/docs/guides/dynamic-capabilities","title":"Dynamic Capabilities","summary":"Resolve models, subagents, tools, skills, and instructions at runtime with defineDynamic resolver events.","outbound":[],"inbound":[{"site":"eve","path":"/docs/extensions"},{"site":"eve","path":"/docs/tools"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-skills"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-eve-subagents"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/tools","distance":0.1652},{"site":"eve","path":"/docs/concepts/built-in-tools","distance":0.1784},{"site":"eve","path":"/docs/reference/typescript-api","distance":0.1846},{"site":"eve","path":"/docs/agent-config","distance":0.1892},{"site":"eve","path":"/docs/instructions","distance":0.19}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-skills","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-eve-subagents","via":"inbound"},{"site":"eve","path":"/docs/tools","via":"neighbor"},{"site":"eve","path":"/docs/concepts/built-in-tools","via":"neighbor"},{"site":"eve","path":"/docs/reference/typescript-api","via":"neighbor"},{"site":"eve","path":"/docs/agent-config","via":"neighbor"},{"site":"eve","path":"/docs/instructions","via":"neighbor"}]},{"site":"eve","path":"/docs/guides/frontend/nextjs","title":"Next.js","summary":"Run an eve agent and a Next.js app as one project with withEve.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/guides/frontend/nuxt","distance":0.1408},{"site":"eve","path":"/docs/guides/deployment/overview","distance":0.1645},{"site":"vercel-docs","path":"/docs/eve","distance":0.1676},{"site":"eve","path":"/docs/channels/eve","distance":0.1843},{"site":"eve","path":"/docs/guides/frontend/sveltekit","distance":0.1967}],"related":[{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/nuxt","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/overview","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/sveltekit","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/vercel","via":"neighbor"}]},{"site":"eve","path":"/docs/guides/frontend/nuxt","title":"Nuxt","summary":"Run an eve agent and a Nuxt app as one project with the eve/nuxt module.","outbound":[{"site":"vercel-docs","path":"/docs/services"}],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/guides/frontend/nextjs","distance":0.1408},{"site":"eve","path":"/docs/guides/frontend/sveltekit","distance":0.1851},{"site":"eve","path":"/docs/guides/frontend/use-eve-agent-vue","distance":0.1853},{"site":"eve","path":"/docs/guides/deployment/overview","distance":0.2236},{"site":"vercel-docs","path":"/docs/eve","distance":0.2328}],"related":[{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/frameworks/nuxt","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/nextjs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/nuxt-and-vercel-connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/sveltekit","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/use-eve-agent-vue","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/overview","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/vercel","via":"neighbor"}]},{"site":"eve","path":"/docs/guides/frontend/overview","title":"Build an AI agent chat UI with useEveAgent","summary":"Put an eve agent behind a browser chat UI with useEveAgent.","outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/ui-message"},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming"},{"site":"eve","path":"/docs/human-in-the-loop"}],"inbound":[{"site":"eve","path":"/docs/getting-started"},{"site":"eve","path":"/docs/human-in-the-loop"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/channels/eve","distance":0.1308},{"site":"eve","path":"/docs/channels/overview","distance":0.1394},{"site":"eve","path":"/docs/guides/client/overview","distance":0.1662},{"site":"eve","path":"/docs/channels/chat-sdk","distance":0.1716},{"site":"eve","path":"/docs/guides/frontend/use-eve-agent-svelte","distance":0.1729}],"related":[{"site":"vercel-kb","path":"/kb/guide/chat-sdk-and-eve","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"},{"site":"eve","path":"/docs/channels/overview","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/overview","via":"neighbor"},{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/use-eve-agent-svelte","via":"neighbor"}]},{"site":"eve","path":"/docs/guides/frontend/sveltekit","title":"SvelteKit","summary":"Run an eve agent and a SvelteKit app as one project with the eveSvelteKit Vite plugin.","outbound":[{"site":"vercel-docs","path":"/docs/services"}],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/guides/frontend/use-eve-agent-svelte","distance":0.179},{"site":"eve","path":"/docs/guides/frontend/nuxt","distance":0.1851},{"site":"eve","path":"/docs/guides/frontend/nextjs","distance":0.1967},{"site":"vercel-docs","path":"/docs/eve","distance":0.2426},{"site":"eve","path":"/docs/guides/deployment/overview","distance":0.2757}],"related":[{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/frameworks/sveltekit","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-a-browser-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/use-eve-agent-svelte","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/nuxt","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/nextjs","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/overview","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","via":"neighbor"}]},{"site":"eve","path":"/docs/guides/frontend/use-eve-agent-svelte","title":"useEveAgent (Svelte)","summary":"Use the eve Svelte binding and its Svelte-specific reactive interface.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/guides/frontend/use-eve-agent-vue","distance":0.1356},{"site":"eve","path":"/docs/guides/frontend/overview","distance":0.1729},{"site":"eve","path":"/docs/guides/frontend/sveltekit","distance":0.179},{"site":"eve","path":"/docs/channels/eve","distance":0.2146},{"site":"eve","path":"/docs/guides/client/overview","distance":0.2397}],"related":[{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/use-eve-agent-vue","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/overview","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/sveltekit","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/overview","via":"neighbor"}]},{"site":"eve","path":"/docs/guides/frontend/use-eve-agent-vue","title":"useEveAgent (Vue)","summary":"Use the eve Vue composable and its Vue-specific reactive interface.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/guides/frontend/use-eve-agent-svelte","distance":0.1356},{"site":"eve","path":"/docs/guides/frontend/overview","distance":0.1742},{"site":"eve","path":"/docs/guides/frontend/nuxt","distance":0.1853},{"site":"eve","path":"/docs/channels/eve","distance":0.2101},{"site":"eve","path":"/docs/guides/frontend/nextjs","distance":0.2414}],"related":[{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/use-eve-agent-svelte","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/overview","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/nuxt","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/nextjs","via":"neighbor"}]},{"site":"eve","path":"/docs/guides/hooks","title":"Hooks","summary":"Subscribe to runtime stream events from agent/hooks/.","outbound":[],"inbound":[{"site":"eve","path":"/docs/extensions"},{"site":"vercel-kb","path":"/kb/guide/eve-agent-prompt-injection"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/guides/frontend/overview","distance":0.1762},{"site":"eve","path":"/docs/channels/custom","distance":0.2173},{"site":"eve","path":"/docs/reference/typescript-api","distance":0.2361},{"site":"eve","path":"/docs/channels/overview","distance":0.2416},{"site":"eve","path":"/docs/tools","distance":0.2532}],"related":[{"site":"vercel-kb","path":"/kb/guide/eve-agent-prompt-injection","via":"inbound"},{"site":"workflow","path":"/docs/foundations/hooks","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/overview","via":"neighbor"},{"site":"eve","path":"/docs/channels/custom","via":"neighbor"},{"site":"eve","path":"/docs/reference/typescript-api","via":"neighbor"},{"site":"eve","path":"/docs/channels/overview","via":"neighbor"},{"site":"eve","path":"/docs/tools","via":"neighbor"}]},{"site":"eve","path":"/docs/guides/instrumentation","title":"Observability","summary":"Trace an agent with OpenTelemetry in instrumentation.ts, read the workflow run tags eve emits, and debug discovery with eve info and the common-failures table.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/telemetry"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/eve/observability","distance":0.1068},{"site":"eve","path":"/docs/getting-started","distance":0.1912},{"site":"eve","path":"/docs/guides/dev-tui","distance":0.1929},{"site":"eve","path":"/docs/reference/typescript-api","distance":0.1942},{"site":"eve","path":"/docs/agent-config","distance":0.2012}],"related":[{"site":"vercel-docs","path":"/docs/eve/observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","via":"neighbor"},{"site":"eve","path":"/docs/guides/dev-tui","via":"neighbor"},{"site":"eve","path":"/docs/reference/typescript-api","via":"neighbor"},{"site":"eve","path":"/docs/agent-config","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"}]},{"site":"eve","path":"/docs/guides/remote-agents","title":"Remote Agents","summary":"Call another eve deployment as a subagent with defineRemoteAgent: same tool call as a local subagent, outbound auth, durable callback dispatch.","outbound":[],"inbound":[{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot"},{"site":"vercel-kb","path":"/kb/guide/eve-typefully-social-media-agent"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-eve-subagents"},{"site":"vercel-kb","path":"/kb/guide/marketing-team-eve"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/subagents","distance":0.1361},{"site":"vercel-kb","path":"/kb/guide/how-to-use-eve-subagents","distance":0.183},{"site":"eve","path":"/docs/agent-config","distance":0.2182},{"site":"eve","path":"/docs/getting-started","distance":0.2538},{"site":"eve","path":"/docs/concepts/execution-model-and-durability","distance":0.2585}],"related":[{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/eve-typefully-social-media-agent","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-eve-subagents","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/marketing-team-eve","via":"inbound"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"eve","path":"/docs/subagents","via":"neighbor"},{"site":"eve","path":"/docs/agent-config","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","via":"neighbor"},{"site":"eve","path":"/docs/concepts/execution-model-and-durability","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"}]},{"site":"eve","path":"/docs/guides/session-context","title":"Session Context","summary":"Use ctx.session and runtime accessors inside eve-managed execution.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/concepts/execution-model-and-durability","distance":0.2134},{"site":"eve","path":"/docs/guides/dynamic-capabilities","distance":0.2419},{"site":"eve","path":"/docs/concepts/context-control","distance":0.2472},{"site":"eve","path":"/docs/reference/typescript-api","distance":0.252},{"site":"eve","path":"/docs/guides/frontend/overview","distance":0.2733}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-runtime-and-tool-context","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"eve","path":"/docs/concepts/execution-model-and-durability","via":"neighbor"},{"site":"eve","path":"/docs/guides/dynamic-capabilities","via":"neighbor"},{"site":"eve","path":"/docs/concepts/context-control","via":"neighbor"},{"site":"eve","path":"/docs/reference/typescript-api","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/overview","via":"neighbor"}]},{"site":"eve","path":"/docs/human-in-the-loop","title":"Human-in-the-Loop","summary":"Pause a run for a person — gate a tool on approval or have the agent ask a question — and resume durably when they answer.","outbound":[{"site":"eve","path":"/docs/channels/overview"},{"site":"eve","path":"/docs/concepts/built-in-tools"},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming"},{"site":"eve","path":"/docs/guides/frontend/overview"},{"site":"eve","path":"/docs/patterns/multi-tenant-approvals"},{"site":"eve","path":"/docs/tools"}],"inbound":[{"site":"eve","path":"/docs/concepts/built-in-tools"},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming"},{"site":"eve","path":"/docs/connections/mcp"},{"site":"eve","path":"/docs/guides/frontend/overview"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools"},{"site":"vercel-kb","path":"/kb/guide/marketing-team-eve"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/tools","distance":0.1753},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","distance":0.2165},{"site":"eve","path":"/docs/guides/dynamic-capabilities","distance":0.235},{"site":"eve","path":"/docs/patterns/multi-tenant-approvals","distance":0.238},{"site":"eve","path":"/docs/guides/frontend/overview","distance":0.2426}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/marketing-team-eve","via":"inbound"},{"site":"workflow","path":"/docs/ai/human-in-the-loop","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/human-in-the-loop","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/tool-approvals","via":"neighbor"},{"site":"eve","path":"/docs/guides/dynamic-capabilities","via":"neighbor"},{"site":"eve","path":"/docs/concepts/execution-model-and-durability","via":"neighbor"},{"site":"eve","path":"/docs/connections","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/guard-the-spend","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/how-it-runs","via":"neighbor"}]},{"site":"eve","path":"/docs/install-integrations","title":"Add Integrations","summary":"Discover and install extensions and other integrations from eve and third-party sources.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/extensions","distance":0.2425},{"site":"vercel-docs","path":"/docs/eve","distance":0.2855},{"site":"eve","path":"/docs/getting-started","distance":0.2902},{"site":"vercel-docs","path":"/docs/eve/concepts","distance":0.2907},{"site":"eve","path":"/docs/guides/deployment/overview","distance":0.3047}],"related":[{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-skills","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"neighbor"},{"site":"eve","path":"/docs/extensions","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/overview","via":"neighbor"},{"site":"eve","path":"/docs/channels/overview","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/nextjs","via":"neighbor"}]},{"site":"eve","path":"/docs/instructions","title":"Instructions","summary":"Add system context or durable user context with instructions.md or instructions.ts.","outbound":[],"inbound":[{"site":"eve","path":"/docs/extensions"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/concepts/context-control","distance":0.1207},{"site":"eve","path":"/docs/guides/dynamic-capabilities","distance":0.19},{"site":"eve","path":"/docs/agent-config","distance":0.2482},{"site":"v0","path":"/docs/instructions","distance":0.2548},{"site":"eve","path":"/docs/getting-started","distance":0.2676}],"related":[{"site":"v0","path":"/docs/instructions","via":"neighbor"},{"site":"eve","path":"/docs/concepts/context-control","via":"neighbor"},{"site":"eve","path":"/docs/guides/dynamic-capabilities","via":"neighbor"},{"site":"eve","path":"/docs/agent-config","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","via":"neighbor"},{"site":"eve","path":"/docs/skills","via":"neighbor"}]},{"site":"eve","path":"/docs/patterns/durable-cross-channel-notifications","title":"Durable cross-channel notifications","summary":"Send a notification to another platform without starting an agent turn, using an application-owned outbox for retries and deduplication.","outbound":[],"inbound":[{"site":"eve","path":"/docs/tools"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/channels/custom","distance":0.2554},{"site":"eve","path":"/docs/channels/overview","distance":0.2776},{"site":"eve","path":"/docs/channels/slack","distance":0.2963},{"site":"eve","path":"/docs/patterns/dynamic-scheduling","distance":0.3276},{"site":"eve","path":"/docs/channels/github","distance":0.329}],"related":[{"site":"vercel-kb","path":"/kb/guide/chat-sdk-and-eve","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-agent-with-resend","via":"neighbor"},{"site":"chat-sdk","path":"/docs/concurrency","via":"neighbor"},{"site":"eve","path":"/docs/channels/custom","via":"neighbor"},{"site":"eve","path":"/docs/channels/overview","via":"neighbor"},{"site":"eve","path":"/docs/channels/slack","via":"neighbor"},{"site":"eve","path":"/docs/patterns/dynamic-scheduling","via":"neighbor"},{"site":"eve","path":"/docs/concepts/execution-model-and-durability","via":"neighbor"}]},{"site":"eve","path":"/docs/patterns/dynamic-scheduling","title":"Dynamic Scheduling","summary":"Compose one minute-level eve schedule, proactive channel handoff, and CRUD tools into application-managed schedules.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/schedules","distance":0.1626},{"site":"eve","path":"/docs/guides/dynamic-capabilities","distance":0.2883},{"site":"eve","path":"/docs/concepts/execution-model-and-durability","distance":0.3128},{"site":"eve","path":"/docs/agent-config","distance":0.3199},{"site":"eve","path":"/docs/patterns/durable-cross-channel-notifications","distance":0.3276}],"related":[{"site":"eve","path":"/docs/schedules","via":"neighbor"},{"site":"eve","path":"/docs/guides/dynamic-capabilities","via":"neighbor"},{"site":"eve","path":"/docs/concepts/execution-model-and-durability","via":"neighbor"},{"site":"eve","path":"/docs/agent-config","via":"neighbor"},{"site":"eve","path":"/docs/patterns/durable-cross-channel-notifications","via":"neighbor"}]},{"site":"eve","path":"/docs/patterns/multi-tenant-approvals","title":"Multi-Tenant Approvals","summary":"Resolve tenant policy asynchronously for authored tools, OpenAPI operations, and MCP tools.","outbound":[],"inbound":[{"site":"eve","path":"/docs/human-in-the-loop"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/patterns/multi-tenant-auth","distance":0.2333},{"site":"eve","path":"/docs/human-in-the-loop","distance":0.238},{"site":"eve","path":"/docs/connections","distance":0.2599},{"site":"ai-sdk","path":"/docs/agents/tool-approvals","distance":0.2845},{"site":"eve","path":"/docs/tools","distance":0.2942}],"related":[{"site":"ai-sdk","path":"/docs/agents/tool-approvals","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/policy-tool-approvals","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"neighbor"},{"site":"eve","path":"/docs/patterns/multi-tenant-auth","via":"neighbor"},{"site":"eve","path":"/docs/human-in-the-loop","via":"neighbor"},{"site":"eve","path":"/docs/connections","via":"neighbor"},{"site":"eve","path":"/docs/tools","via":"neighbor"},{"site":"eve","path":"/docs/connections/openapi","via":"neighbor"}]},{"site":"eve","path":"/docs/patterns/multi-tenant-auth","title":"Multi-Tenant Outbound Auth","summary":"Select tenant-scoped credentials inside authored tools, OpenAPI connections, and MCP connections from the active turn context.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/connections","distance":0.185},{"site":"eve","path":"/docs/patterns/multi-tenant-approvals","distance":0.2333},{"site":"eve","path":"/docs/concepts/security-model","distance":0.2345},{"site":"eve","path":"/docs/guides/auth-and-route-protection","distance":0.249},{"site":"eve","path":"/docs/connections/openapi","distance":0.2563}],"related":[{"site":"eve","path":"/docs/connections","via":"neighbor"},{"site":"eve","path":"/docs/patterns/multi-tenant-approvals","via":"neighbor"},{"site":"eve","path":"/docs/concepts/security-model","via":"neighbor"},{"site":"eve","path":"/docs/guides/auth-and-route-protection","via":"neighbor"},{"site":"eve","path":"/docs/connections/openapi","via":"neighbor"}]},{"site":"eve","path":"/docs/patterns/multi-tenant-memory","title":"Multi-Tenant Memory","summary":"Compose dynamic instructions, authenticated session context, and ordinary tools into tenant-scoped long-term memory.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/agents/memory","distance":0.2578},{"site":"eve","path":"/docs/instructions","distance":0.2983},{"site":"eve","path":"/docs/guides/dynamic-capabilities","distance":0.3001},{"site":"eve","path":"/docs/patterns/multi-tenant-auth","distance":0.3074},{"site":"eve","path":"/docs/concepts/state","distance":0.3227}],"related":[{"site":"ai-sdk","path":"/docs/agents/memory","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/hindsight","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot","via":"neighbor"},{"site":"eve","path":"/docs/instructions","via":"neighbor"},{"site":"eve","path":"/docs/guides/dynamic-capabilities","via":"neighbor"},{"site":"eve","path":"/docs/patterns/multi-tenant-auth","via":"neighbor"},{"site":"eve","path":"/docs/concepts/state","via":"neighbor"},{"site":"eve","path":"/docs/tools","via":"neighbor"}]},{"site":"eve","path":"/docs/protocols/acp","title":"Agent Client Protocol (ACP)","summary":"Use local or deployed eve agents from Agent Client Protocol clients.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/acp","distance":0.2748},{"site":"eve","path":"/docs/channels/mcp","distance":0.2826},{"site":"eve","path":"/docs/reference/cli","distance":0.3007},{"site":"eve","path":"/docs/channels/eve","distance":0.3207},{"site":"vercel-docs","path":"/docs/eve","distance":0.3216}],"related":[{"site":"ai-sdk","path":"/providers/community-providers/acp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/acp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/mcp","via":"neighbor"},{"site":"eve","path":"/docs/channels/mcp","via":"neighbor"},{"site":"eve","path":"/docs/reference/cli","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/overview","via":"neighbor"}]},{"site":"eve","path":"/docs/protocols/ucp","title":"Universal Commerce Protocol (UCP)","summary":"Serve a UCP profile at /.well-known/ucp from a custom eve channel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/channels/mcp","distance":0.336},{"site":"eve","path":"/docs/channels/custom","distance":0.3405},{"site":"eve","path":"/docs/channels/overview","distance":0.3566},{"site":"eve","path":"/docs/channels/eve","distance":0.3737},{"site":"vercel-shop","path":"/docs/anatomy/agent","distance":0.4084}],"related":[{"site":"vercel-shop","path":"/docs/anatomy/agent","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/shop-config","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/webmcp","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/cart","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/aeo-geo","via":"neighbor"},{"site":"eve","path":"/docs/channels/mcp","via":"neighbor"},{"site":"eve","path":"/docs/channels/custom","via":"neighbor"},{"site":"eve","path":"/docs/channels/overview","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"},{"site":"eve","path":"/docs/connections/mcp","via":"neighbor"}]},{"site":"eve","path":"/docs/reference/cli","title":"CLI","summary":"Reference for every eve CLI command: init, set, info, build, start, dev, logs, trace, link, deploy, eval, channels, and extension.","outbound":[{"site":"eve","path":"/docs/extensions"}],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/guides/dev-tui","distance":0.1909},{"site":"eve","path":"/docs/getting-started","distance":0.2206},{"site":"vercel-docs","path":"/docs/eve","distance":0.226},{"site":"eve","path":"/docs/guides/frontend/nextjs","distance":0.2463},{"site":"vercel-docs","path":"/docs/eve/concepts","distance":0.2568}],"related":[{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-a-browser-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-typefully-social-media-agent","via":"neighbor"},{"site":"eve","path":"/docs/guides/dev-tui","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/nextjs","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/overview","via":"neighbor"},{"site":"eve","path":"/docs/guides/instrumentation","via":"neighbor"}]},{"site":"eve","path":"/docs/reference/typescript-api","title":"TypeScript API reference","summary":"The define* helpers, the runtime ctx, and where each one is imported from.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/agent-config","distance":0.1354},{"site":"eve","path":"/docs/tools","distance":0.1543},{"site":"eve","path":"/docs/concepts/built-in-tools","distance":0.1735},{"site":"eve","path":"/docs/guides/dynamic-capabilities","distance":0.1846},{"site":"eve","path":"/docs/getting-started","distance":0.1908}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"eve","path":"/docs/agent-config","via":"neighbor"},{"site":"eve","path":"/docs/tools","via":"neighbor"},{"site":"eve","path":"/docs/concepts/built-in-tools","via":"neighbor"},{"site":"eve","path":"/docs/guides/dynamic-capabilities","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","via":"neighbor"}]},{"site":"eve","path":"/docs/responsible-use","title":"Responsible Use","summary":"Deployer responsibility and safeguards to review before using eve with sensitive, regulated, or production data.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/concepts/security-model","distance":0.3243},{"site":"eve","path":"/docs/patterns/multi-tenant-approvals","distance":0.3495},{"site":"eve","path":"/docs/agent-config","distance":0.3539},{"site":"eve","path":"/docs/guides/deployment/overview","distance":0.3568},{"site":"eve","path":"/docs/tools","distance":0.3662}],"related":[{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"eve","path":"/docs/concepts/security-model","via":"neighbor"},{"site":"eve","path":"/docs/patterns/multi-tenant-approvals","via":"neighbor"},{"site":"eve","path":"/docs/agent-config","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/overview","via":"neighbor"},{"site":"eve","path":"/docs/tools","via":"neighbor"}]},{"site":"eve","path":"/docs/sandbox","title":"Sandbox","summary":"The agent's isolated bash environment, including built-in file tools, a seeded /workspace, backends, lifecycle, and network policy.","outbound":[{"site":"vercel-docs","path":"/docs/sandbox"}],"inbound":[{"site":"eve","path":"/docs/tools"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/concepts/security-model","distance":0.2366},{"site":"vercel-docs","path":"/docs/sandbox/concepts/firewall","distance":0.2602},{"site":"vercel-kb","path":"/kb/guide/running-opencode-securely-with-the-vercel-sandbox","distance":0.2648},{"site":"vercel-docs","path":"/docs/sandbox/concepts","distance":0.2652},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","distance":0.2689}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"inbound"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/firewall","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/running-opencode-securely-with-the-vercel-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/test-container-image-vercel-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/multi-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot","via":"neighbor"},{"site":"eve","path":"/docs/concepts/security-model","via":"neighbor"},{"site":"eve","path":"/docs/concepts/execution-model-and-durability","via":"neighbor"},{"site":"eve","path":"/docs/tools","via":"inbound"}]},{"site":"eve","path":"/docs/schedules","title":"Schedules","summary":"Run an agent on a cron cadence, either a fire-and-forget prompt or a handler that hands work off to a channel.","outbound":[],"inbound":[{"site":"eve","path":"/docs/extensions"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/patterns/dynamic-scheduling","distance":0.1626},{"site":"eve","path":"/docs/channels/eve","distance":0.2423},{"site":"eve","path":"/docs/concepts/execution-model-and-durability","distance":0.2568},{"site":"eve","path":"/docs/guides/frontend/nextjs","distance":0.272},{"site":"eve","path":"/docs/channels/overview","distance":0.2747}],"related":[{"site":"vercel-docs","path":"/docs/cron-jobs/manage-cron-jobs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"eve","path":"/docs/patterns/dynamic-scheduling","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"},{"site":"eve","path":"/docs/concepts/execution-model-and-durability","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/nextjs","via":"neighbor"},{"site":"eve","path":"/docs/channels/overview","via":"neighbor"}]},{"site":"eve","path":"/docs/skills","title":"Skills","summary":"Author load-on-demand procedures the model pulls into context with load_skill.","outbound":[],"inbound":[{"site":"eve","path":"/docs/extensions"},{"site":"eve","path":"/docs/tools"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-eve-subagents"},{"site":"vercel-kb","path":"/kb/guide/marketing-team-eve"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-skills","distance":0.1373},{"site":"ai-sdk","path":"/cookbook/guides/agent-skills","distance":0.1515},{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","distance":0.172},{"site":"eve","path":"/docs/concepts/context-control","distance":0.1913},{"site":"vercel-docs","path":"/docs/agent-resources/skills","distance":0.224}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-skills","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-eve-subagents","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/marketing-team-eve","via":"inbound"},{"site":"ai-sdk","path":"/cookbook/guides/agent-skills","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/skills","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/team-playbooks","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","via":"neighbor"},{"site":"eve","path":"/docs/instructions","via":"neighbor"},{"site":"eve","path":"/docs/reference/typescript-api","via":"neighbor"},{"site":"eve","path":"/docs/concepts/built-in-tools","via":"neighbor"}]},{"site":"eve","path":"/docs/subagents","title":"Subagents","summary":"Delegate work to root-agent copies or declared specialists with their own tools and sandbox.","outbound":[],"inbound":[{"site":"eve","path":"/docs/extensions"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-eve-subagents"},{"site":"vercel-kb","path":"/kb/guide/marketing-team-eve"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-use-eve-subagents","distance":0.1011},{"site":"eve","path":"/docs/guides/remote-agents","distance":0.1361},{"site":"eve","path":"/docs/agent-config","distance":0.1658},{"site":"eve","path":"/docs/concepts/built-in-tools","distance":0.1865},{"site":"eve","path":"/docs/getting-started","distance":0.2078}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-use-eve-subagents","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/marketing-team-eve","via":"inbound"},{"site":"ai-sdk","path":"/docs/agents/subagents","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-typefully-social-media-agent","via":"neighbor"},{"site":"eve","path":"/docs/guides/remote-agents","via":"neighbor"},{"site":"eve","path":"/docs/agent-config","via":"neighbor"},{"site":"eve","path":"/docs/concepts/built-in-tools","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","via":"neighbor"},{"site":"eve","path":"/docs/guides/dynamic-capabilities","via":"neighbor"}]},{"site":"eve","path":"/docs/tools","title":"Tools","summary":"Define typed actions the agent can call, and gate sensitive ones on human approval.","outbound":[{"site":"eve","path":"/docs/concepts/built-in-tools"},{"site":"eve","path":"/docs/concepts/execution-model-and-durability"},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming"},{"site":"eve","path":"/docs/guides/auth-and-route-protection"},{"site":"eve","path":"/docs/guides/dynamic-capabilities"},{"site":"eve","path":"/docs/patterns/durable-cross-channel-notifications"},{"site":"eve","path":"/docs/sandbox"},{"site":"eve","path":"/docs/skills"}],"inbound":[{"site":"eve","path":"/docs/connections"},{"site":"eve","path":"/docs/connections/mcp"},{"site":"eve","path":"/docs/extensions"},{"site":"eve","path":"/docs/getting-started"},{"site":"eve","path":"/docs/human-in-the-loop"},{"site":"vercel-kb","path":"/kb/guide/eve-agent-prompt-injection"},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","distance":0.1035},{"site":"eve","path":"/docs/concepts/built-in-tools","distance":0.1372},{"site":"eve","path":"/docs/reference/typescript-api","distance":0.1543},{"site":"eve","path":"/docs/guides/dynamic-capabilities","distance":0.1652},{"site":"eve","path":"/docs/human-in-the-loop","distance":0.1753}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-agent-prompt-injection","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","via":"inbound"},{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","via":"neighbor"},{"site":"eve","path":"/docs/reference/typescript-api","via":"neighbor"},{"site":"eve","path":"/docs/human-in-the-loop","via":"neighbor"},{"site":"eve","path":"/docs/connections","via":"neighbor"},{"site":"eve","path":"/docs/agent-config","via":"neighbor"},{"site":"eve","path":"/docs/guides/instrumentation","via":"neighbor"}]},{"site":"eve","path":"/docs/tutorial/connect-a-warehouse","title":"Connect a Warehouse","summary":"Part 4 of the Build an Agent tutorial. Let each user connect their own warehouse over an OAuth MCP via Vercel Connect.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/connections/mcp","distance":0.2505},{"site":"eve","path":"/docs/connections","distance":0.2532},{"site":"eve","path":"/docs/tutorial/ship-it","distance":0.2854},{"site":"eve","path":"/docs/connections/openapi","distance":0.2963},{"site":"v0","path":"/docs/vercel-connect","distance":0.3124}],"related":[{"site":"v0","path":"/docs/vercel-connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-a-browser-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/give-eve-agent-secure-access-to-aws-rds-database","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/nuxt-and-vercel-connect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/linear-agent-vercel-connect","via":"neighbor"},{"site":"eve","path":"/docs/connections","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/ship-it","via":"neighbor"},{"site":"eve","path":"/docs/connections/openapi","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/first-agent","via":"neighbor"}]},{"site":"eve","path":"/docs/tutorial/first-agent","title":"Build your first agent","summary":"Part 1 of the Build an Agent tutorial. Scaffold the analytics assistant, give it an analyst persona, run it, and ask a question.","outbound":[],"inbound":[{"site":"eve","path":"/docs/getting-started"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/getting-started","distance":0.1698},{"site":"eve","path":"/docs/tutorial/ship-it","distance":0.2028},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","distance":0.2442},{"site":"vercel-docs","path":"/docs/eve","distance":0.2613},{"site":"eve","path":"/docs/tutorial/how-it-runs","distance":0.2783}],"related":[{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-eve-subagents","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/give-eve-agent-secure-access-to-aws-rds-database","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/ship-it","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/how-it-runs","via":"neighbor"},{"site":"eve","path":"/docs/agent-config","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/run-analysis","via":"neighbor"}]},{"site":"eve","path":"/docs/tutorial/guard-the-spend","title":"Guard the Spend","summary":"Part 8 of the Build an Agent tutorial. Gate expensive queries with cost-based approval. The agent pauses, asks, and resumes.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/human-in-the-loop","distance":0.2535},{"site":"eve","path":"/docs/tutorial/how-it-runs","distance":0.2685},{"site":"eve","path":"/docs/tutorial/query-sample-data","distance":0.2746},{"site":"eve","path":"/docs/tools","distance":0.3137},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","distance":0.3255}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-terminal-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/tool-approvals","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/human-in-the-loop","via":"neighbor"},{"site":"eve","path":"/docs/human-in-the-loop","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/how-it-runs","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/query-sample-data","via":"neighbor"},{"site":"eve","path":"/docs/tools","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/run-analysis","via":"neighbor"}]},{"site":"eve","path":"/docs/tutorial/how-it-runs","title":"How It Runs","summary":"Part 2 of the Build an Agent tutorial. Session, turn, and durable steps, and why a turn survives a crash.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/concepts/execution-model-and-durability","distance":0.2242},{"site":"eve","path":"/docs/tutorial/ship-it","distance":0.2641},{"site":"eve","path":"/docs/human-in-the-loop","distance":0.2651},{"site":"eve","path":"/docs/tutorial/guard-the-spend","distance":0.2685},{"site":"eve","path":"/docs/guides/dynamic-capabilities","distance":0.2736}],"related":[{"site":"workflow","path":"/docs/ai","via":"neighbor"},{"site":"eve","path":"/docs/concepts/execution-model-and-durability","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/ship-it","via":"neighbor"},{"site":"eve","path":"/docs/human-in-the-loop","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/guard-the-spend","via":"neighbor"},{"site":"eve","path":"/docs/guides/dynamic-capabilities","via":"neighbor"}]},{"site":"eve","path":"/docs/tutorial/query-sample-data","title":"Query Sample Data","summary":"Part 3 of the Build an Agent tutorial. Add a run_sql tool over the bundled sample dataset and watch the tool loop.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/tutorial/run-analysis","distance":0.2575},{"site":"eve","path":"/docs/tutorial/guard-the-spend","distance":0.2746},{"site":"eve","path":"/docs/tools","distance":0.2965},{"site":"eve","path":"/docs/tutorial/how-it-runs","distance":0.3046},{"site":"eve","path":"/docs/tutorial/first-agent","distance":0.3126}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/give-eve-agent-secure-access-to-aws-rds-database","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/examples/ai-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/run-analysis","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/guard-the-spend","via":"neighbor"},{"site":"eve","path":"/docs/tools","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/how-it-runs","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/first-agent","via":"neighbor"}]},{"site":"eve","path":"/docs/tutorial/remember-definitions","title":"Remember Definitions","summary":"Part 6 of the Build an Agent tutorial. Use defineState to remember the team's metric glossary across turns.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/concepts/state","distance":0.1886},{"site":"eve","path":"/docs/tutorial/how-it-runs","distance":0.3274},{"site":"eve","path":"/docs/patterns/multi-tenant-memory","distance":0.3541},{"site":"eve","path":"/docs/guides/dynamic-capabilities","distance":0.3558},{"site":"eve","path":"/docs/tutorial/team-playbooks","distance":0.3697}],"related":[{"site":"eve","path":"/docs/concepts/state","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/how-it-runs","via":"neighbor"},{"site":"eve","path":"/docs/patterns/multi-tenant-memory","via":"neighbor"},{"site":"eve","path":"/docs/guides/dynamic-capabilities","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/team-playbooks","via":"neighbor"}]},{"site":"eve","path":"/docs/tutorial/run-analysis","title":"Run Analysis","summary":"Part 5 of the Build an Agent tutorial. Seed the warehouse schema into the sandbox workspace, then compute and chart beyond SQL.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/tutorial/query-sample-data","distance":0.2575},{"site":"eve","path":"/docs/tutorial/ship-it","distance":0.2784},{"site":"vercel-kb","path":"/kb/guide/building-an-agent-with-openai-agents-sdk-and-vercel-sandbox","distance":0.2992},{"site":"eve","path":"/docs/tutorial/first-agent","distance":0.3045},{"site":"eve","path":"/docs/tutorial/how-it-runs","distance":0.3117}],"related":[{"site":"vercel-kb","path":"/kb/guide/building-an-agent-with-openai-agents-sdk-and-vercel-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/multi-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/python-ai-sdk-vercel-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/give-eve-agent-secure-access-to-aws-rds-database","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/anthropic-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/query-sample-data","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/ship-it","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/first-agent","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/how-it-runs","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","via":"neighbor"}]},{"site":"eve","path":"/docs/tutorial/ship-it","title":"Ship It","summary":"Part 9 of the Build an Agent tutorial. Put a web dashboard on the agent with useEveAgent, replace placeholderAuth, and deploy to Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/getting-started","distance":0.1819},{"site":"eve","path":"/docs/concepts/security-model","distance":0.1987},{"site":"eve","path":"/docs/tutorial/first-agent","distance":0.2028},{"site":"vercel-docs","path":"/docs/eve/concepts","distance":0.2073},{"site":"eve","path":"/docs/guides/deployment/vercel","distance":0.211}],"related":[{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-a-browser-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/ai-agents","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agents-chat-sdk","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","via":"neighbor"},{"site":"eve","path":"/docs/concepts/security-model","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/first-agent","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/vercel","via":"neighbor"}]},{"site":"eve","path":"/docs/tutorial/team-playbooks","title":"Team Playbooks","summary":"Part 7 of the Build an Agent tutorial. Load the caller's team playbook with a dynamic skill keyed on the principal.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/guides/dynamic-capabilities","distance":0.2461},{"site":"eve","path":"/docs/skills","distance":0.2518},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-skills","distance":0.2786},{"site":"eve","path":"/docs/tutorial/ship-it","distance":0.285},{"site":"eve","path":"/docs/concepts/context-control","distance":0.3059}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-skills","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/agent-skills","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/ai-agents","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","via":"neighbor"},{"site":"eve","path":"/docs/guides/dynamic-capabilities","via":"neighbor"},{"site":"eve","path":"/docs/skills","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/ship-it","via":"neighbor"},{"site":"eve","path":"/docs/instructions","via":"neighbor"},{"site":"eve","path":"/docs/reference/typescript-api","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/api-reference/core/core","title":"flags","summary":"The `flags` package provides the core functionality for integrating with Vercel.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/reference"},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference"}],"requires":[],"neighbors":[{"site":"flags-sdk","path":"/docs/api-reference/frameworks/next","distance":0.1668},{"site":"flags-sdk","path":"/docs/api-reference/core/react","distance":0.1912},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","distance":0.2036},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/reference","distance":0.207},{"site":"flags-sdk","path":"/docs/providers/vercel","distance":0.2123}],"related":[{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","via":"inbound"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/reference","via":"inbound"},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"inbound"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk","via":"neighbor"},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/next","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/statsig","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/launchdarkly","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/api-reference/core/react","title":"flags/react","summary":"APIs for working with feature flags in React.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/flags/flags-explorer/reference"},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","distance":0.191},{"site":"flags-sdk","path":"/docs/api-reference/core/core","distance":0.1912},{"site":"flags-sdk","path":"/docs/frameworks/next","distance":0.2038},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit","distance":0.2075},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/sveltekit","distance":0.2238}],"related":[{"site":"vercel-docs","path":"/docs/flags/flags-explorer/reference","via":"inbound"},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"inbound"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags","via":"neighbor"},{"site":"flags-sdk","path":"/docs/api-reference/core/core","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/reflag","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/statsig","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/next","title":"flags/next","summary":"APIs for working with feature flags in Next.js.","outbound":[],"inbound":[{"site":"flags-sdk","path":"/docs/frameworks/next/precompute"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started"},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference"}],"requires":[],"neighbors":[{"site":"flags-sdk","path":"/docs/api-reference/frameworks/sveltekit","distance":0.1431},{"site":"flags-sdk","path":"/docs/frameworks/next/precompute","distance":0.1554},{"site":"flags-sdk","path":"/docs/api-reference/core/core","distance":0.1668},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","distance":0.1903},{"site":"flags-sdk","path":"/docs/frameworks/next","distance":0.1942}],"related":[{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","via":"inbound"},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"inbound"},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/sveltekit","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next/precompute","via":"neighbor"},{"site":"flags-sdk","path":"/docs/api-reference/core/core","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/sveltekit","title":"flags/sveltekit","summary":"APIs for working with feature flags in SvelteKit.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference"}],"requires":[],"neighbors":[{"site":"flags-sdk","path":"/docs/frameworks/sveltekit","distance":0.1297},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/next","distance":0.1431},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/precompute","distance":0.1601},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","distance":0.1937},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/marketing-pages","distance":0.2215}],"related":[{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"inbound"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags","via":"neighbor"},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/next","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/precompute","via":"neighbor"},{"site":"flags-sdk","path":"/docs/api-reference/core/core","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/frameworks/next","title":"Quickstart","summary":"Learn how to start using the Flags SDK in your Next.js project.","outbound":[{"site":"vercel-docs","path":"/docs/flags/flags-explorer"}],"inbound":[{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","distance":0.1139},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit","distance":0.1278},{"site":"flags-sdk","path":"/docs/providers/vercel","distance":0.1369},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","distance":0.1468},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk","distance":0.1521}],"related":[{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/statsig","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/reflag","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/frameworks/next/bulk-evaluation","title":"Bulk Evaluation","summary":"Evaluate multiple feature flags at once with evaluate().","outbound":[],"inbound":[],"requires":[{"site":"flags-sdk","path":"/docs/frameworks/next"}],"neighbors":[{"site":"flags-sdk","path":"/docs/principles/evaluation-context","distance":0.2524},{"site":"flags-sdk","path":"/docs/frameworks/next/evaluation-context","distance":0.2525},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/next","distance":0.2788},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/evaluation-context","distance":0.2985},{"site":"flags-sdk","path":"/docs/principles/data-locality","distance":0.3202}],"related":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/core","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/evaluation-metrics","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-are-evaluated","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/evaluation-context","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next/evaluation-context","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/evaluation-context","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/data-locality","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/frameworks/next/dedupe","title":"Dedupe","summary":"Prevent duplicate work by deduplicating function calls.","outbound":[],"inbound":[],"requires":[{"site":"flags-sdk","path":"/docs/frameworks/next"}],"neighbors":[{"site":"flags-sdk","path":"/docs/api-reference/frameworks/next","distance":0.303},{"site":"flags-sdk","path":"/docs/frameworks/next/guides/dashboard-pages","distance":0.3665},{"site":"flags-sdk","path":"/docs/principles/evaluation-context","distance":0.3704},{"site":"flags-sdk","path":"/docs/frameworks/next/guides/marketing-pages","distance":0.3739},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/marketing-pages","distance":0.374}],"related":[{"site":"flags-sdk","path":"/docs/api-reference/frameworks/next","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next/guides/dashboard-pages","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/evaluation-context","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next/guides/marketing-pages","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/marketing-pages","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/frameworks/next/evaluation-context","title":"Evaluation Context","summary":"Segment by any criteria, using an evaluation context.","outbound":[],"inbound":[],"requires":[{"site":"flags-sdk","path":"/docs/frameworks/next"}],"neighbors":[{"site":"flags-sdk","path":"/docs/principles/evaluation-context","distance":0.0007},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/evaluation-context","distance":0.0617},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/next","distance":0.2381},{"site":"flags-sdk","path":"/docs/frameworks/next/bulk-evaluation","distance":0.2525},{"site":"flags-sdk","path":"/docs/frameworks/next/guides/marketing-pages","distance":0.2533}],"related":[{"site":"flags-sdk","path":"/docs/principles/evaluation-context","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/evaluation-context","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-are-evaluated","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/core","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"neighbor"},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/next","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/data-locality","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/frameworks/next/examples/proxy","title":"Proxy","summary":"How to use feature flags in Proxy to serve different static variants of a page.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/proxy","distance":0.2139},{"site":"flags-sdk","path":"/docs/frameworks/next/guides/marketing-pages","distance":0.2209},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy","distance":0.2722},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/proxy","distance":0.2785},{"site":"vercel-shop","path":"/docs/anatomy/proxy","distance":0.2849}],"related":[{"site":"nextjs","path":"/docs/app/getting-started/proxy","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/proxy","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/proxy","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/content-security-policy","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next/guides/marketing-pages","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/server-side-vs-client-side","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/precompute","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/frameworks/next/examples/suspense-fallbacks","title":"Suspense Fallbacks","summary":"How to use feature flags with Suspense fallbacks to serve variants of a Partial Prerendered shell.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching","distance":0.2725},{"site":"nextjs","path":"/docs/app/guides/prefetching","distance":0.2731},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/precompute","distance":0.2739},{"site":"swr","path":"/docs/suspense","distance":0.2749},{"site":"flags-sdk","path":"/docs/frameworks/next/precompute","distance":0.2777}],"related":[{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/prefetching","via":"neighbor"},{"site":"swr","path":"/docs/suspense","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/caching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/optimizing-hard-navigations","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/precompute","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/marketing-pages","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/frameworks/next/guides/dashboard-pages","title":"Dashboard Pages","summary":"Use feature flags on dashboard pages.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/dashboard-pages","distance":0.0766},{"site":"flags-sdk","path":"/docs/principles/evaluation-context","distance":0.2548},{"site":"flags-sdk","path":"/docs/frameworks/next/evaluation-context","distance":0.257},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/next","distance":0.271},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/marketing-pages","distance":0.2751}],"related":[{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/dashboard-pages","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/evaluation-context","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next/evaluation-context","via":"neighbor"},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/next","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/evaluation-context","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/frameworks/next/guides/marketing-pages","title":"Marketing Pages","summary":"Use feature flags on marketing pages.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/marketing-pages","distance":0.077},{"site":"flags-sdk","path":"/docs/frameworks/next/precompute","distance":0.2142},{"site":"flags-sdk","path":"/docs/frameworks/next/examples/proxy","distance":0.2209},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/next","distance":0.2394},{"site":"flags-sdk","path":"/docs/frameworks/next/evaluation-context","distance":0.2533}],"related":[{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/marketing-pages","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next/precompute","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next/examples/proxy","via":"neighbor"},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/next","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next/evaluation-context","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/frameworks/next/precompute","title":"Precompute","summary":"Using the precompute pattern in Next.js","outbound":[{"site":"flags-sdk","path":"/docs/api-reference/frameworks/next"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params"}],"inbound":[],"requires":[{"site":"flags-sdk","path":"/docs/frameworks/next"}],"neighbors":[{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/precompute","distance":0.1047},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/next","distance":0.1554},{"site":"flags-sdk","path":"/docs/principles/precompute","distance":0.193},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/marketing-pages","distance":0.202},{"site":"flags-sdk","path":"/docs/frameworks/next/guides/marketing-pages","distance":0.2142}],"related":[{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/precompute","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/prefetching","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/public-static-pages","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/precompute","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit","title":"Quickstart","summary":"Using the Flags SDK in SvelteKit","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"flags-sdk","path":"/docs/frameworks/next","distance":0.1278},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","distance":0.1282},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/sveltekit","distance":0.1297},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","distance":0.1351},{"site":"flags-sdk","path":"/docs/providers/vercel","distance":0.1421}],"related":[{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/evaluation-context","title":"Evaluation Context","summary":"Segment by any criteria, using an evaluation context","outbound":[],"inbound":[],"requires":[{"site":"flags-sdk","path":"/docs/frameworks/sveltekit"}],"neighbors":[{"site":"flags-sdk","path":"/docs/frameworks/next/evaluation-context","distance":0.0617},{"site":"flags-sdk","path":"/docs/principles/evaluation-context","distance":0.0626},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/marketing-pages","distance":0.2558},{"site":"flags-sdk","path":"/docs/frameworks/next/guides/marketing-pages","distance":0.2923},{"site":"flags-sdk","path":"/docs/frameworks/next/guides/dashboard-pages","distance":0.2924}],"related":[{"site":"flags-sdk","path":"/docs/frameworks/next/evaluation-context","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/evaluation-context","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/entities","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-are-evaluated","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/core","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/marketing-pages","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/data-locality","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/precompute","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/dashboard-pages","title":"Dashboard Pages","summary":"Use feature flags on dynamic pages.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"flags-sdk","path":"/docs/frameworks/next/guides/dashboard-pages","distance":0.0766},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/marketing-pages","distance":0.27},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit","distance":0.3026},{"site":"flags-sdk","path":"/docs/frameworks/next/guides/marketing-pages","distance":0.3108},{"site":"flags-sdk","path":"/docs/principles/server-side-vs-client-side","distance":0.311}],"related":[{"site":"flags-sdk","path":"/docs/frameworks/next/guides/dashboard-pages","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/marketing-pages","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next/guides/marketing-pages","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/server-side-vs-client-side","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/data-locality","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/marketing-pages","title":"Marketing Pages","summary":"Use feature flags on static pages.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"flags-sdk","path":"/docs/frameworks/next/guides/marketing-pages","distance":0.077},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/precompute","distance":0.1474},{"site":"flags-sdk","path":"/docs/frameworks/next/precompute","distance":0.202},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/sveltekit","distance":0.2215},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/next","distance":0.243}],"related":[{"site":"flags-sdk","path":"/docs/frameworks/next/guides/marketing-pages","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/precompute","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next/precompute","via":"neighbor"},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/sveltekit","via":"neighbor"},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/next","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/precompute","title":"Precompute","summary":"Using the precompute pattern in SvelteKit","outbound":[],"inbound":[],"requires":[{"site":"flags-sdk","path":"/docs/frameworks/sveltekit"}],"neighbors":[{"site":"flags-sdk","path":"/docs/frameworks/next/precompute","distance":0.1047},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/marketing-pages","distance":0.1474},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/sveltekit","distance":0.1601},{"site":"flags-sdk","path":"/docs/principles/precompute","distance":0.1803},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit","distance":0.2094}],"related":[{"site":"flags-sdk","path":"/docs/frameworks/next/precompute","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/prefetching","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/marketing-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/public-static-pages","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/precompute","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/principles/data-locality","title":"Data Locality","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"}],"inbound":[],"requires":[],"neighbors":[{"site":"flags-sdk","path":"/docs/principles/server-side-vs-client-side","distance":0.2442},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/core","distance":0.2526},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/openfeature","distance":0.268},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","distance":0.2695},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-are-evaluated","distance":0.2722}],"related":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/core","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/openfeature","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-are-evaluated","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/feature-flag","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/server-side-vs-client-side","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/evaluation-context","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next/evaluation-context","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/launchdarkly","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/principles/evaluation-context","title":"Evaluation Context","summary":"Segment by any criteria, using an evaluation context.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"flags-sdk","path":"/docs/frameworks/next/evaluation-context","distance":0.0007},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/evaluation-context","distance":0.0626},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/next","distance":0.2367},{"site":"flags-sdk","path":"/docs/frameworks/next/bulk-evaluation","distance":0.2524},{"site":"flags-sdk","path":"/docs/frameworks/next/guides/dashboard-pages","distance":0.2548}],"related":[{"site":"flags-sdk","path":"/docs/frameworks/next/evaluation-context","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/evaluation-context","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-are-evaluated","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/core","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"neighbor"},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/next","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/data-locality","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","title":"Flags as Code","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","distance":0.1495},{"site":"flags-sdk","path":"/docs/frameworks/next","distance":0.1624},{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","distance":0.1932},{"site":"flags-sdk","path":"/docs/providers/openfeature","distance":0.1939},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit","distance":0.1958}],"related":[{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/statsig","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/flagsmith","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/principles/precompute","title":"Precompute","summary":"Precomputing describes a pattern where Routing Middleware uses feature flags to decide which variant of a page to show. This allows you to keep the page itself static, which leads to low latency globally as the page can be served from the CDN.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/precompute","distance":0.1803},{"site":"flags-sdk","path":"/docs/frameworks/next/precompute","distance":0.193},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/marketing-pages","distance":0.264},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/next","distance":0.283},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/sveltekit","distance":0.3186}],"related":[{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/precompute","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next/precompute","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/prefetching","via":"neighbor"},{"site":"swr","path":"/docs/prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/prefetchInlining","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/partialPrefetching","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/marketing-pages","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/principles/server-side-vs-client-side","title":"Server-side vs Client-side","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"flags-sdk","path":"/docs/principles/data-locality","distance":0.2442},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/marketing-pages","distance":0.2564},{"site":"flags-sdk","path":"/docs/frameworks/next/guides/marketing-pages","distance":0.2584},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","distance":0.271},{"site":"flags-sdk","path":"/docs/frameworks/next/guides/dashboard-pages","distance":0.3081}],"related":[{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/data-locality","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/marketing-pages","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next/guides/marketing-pages","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/precompute","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/providers","title":"Providers","summary":"Combine your feature flag provider with the Flags SDK using an adapter.","outbound":[{"site":"vercel-docs","path":"/docs/flags/flags-explorer"}],"inbound":[],"requires":[],"neighbors":[{"site":"flags-sdk","path":"/docs/providers/custom-adapters","distance":0.2128},{"site":"flags-sdk","path":"/docs/providers/openfeature","distance":0.2148},{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","distance":0.242},{"site":"flags-sdk","path":"/docs/providers/launchdarkly","distance":0.2434},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","distance":0.2443}],"related":[{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/marketplace","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/providers/custom-adapters","title":"Custom Adapters","summary":"Integrate any feature flag provider with the Flags SDK using a custom adapter.","outbound":[],"inbound":[],"requires":[{"site":"flags-sdk","path":"/docs/providers"}],"neighbors":[{"site":"flags-sdk","path":"/docs/providers/launchdarkly","distance":0.2109},{"site":"flags-sdk","path":"/docs/providers","distance":0.2128},{"site":"flags-sdk","path":"/docs/providers/flagsmith","distance":0.2142},{"site":"flags-sdk","path":"/docs/providers/global-config","distance":0.2172},{"site":"flags-sdk","path":"/docs/providers/openfeature","distance":0.2196}],"related":[{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/launchdarkly","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/flagsmith","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/global-config","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/growthbook","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/providers/flagsmith","title":"Flagsmith","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/flags/flags-explorer"}],"inbound":[],"requires":[{"site":"flags-sdk","path":"/docs/providers"}],"neighbors":[{"site":"flags-sdk","path":"/docs/providers/vercel","distance":0.1895},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","distance":0.1983},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","distance":0.2076},{"site":"flags-sdk","path":"/docs/providers/launchdarkly","distance":0.2093},{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","distance":0.2109}],"related":[{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/vercel","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/launchdarkly","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/statsig","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/providers/global-config","title":"Global Config","summary":null,"outbound":[],"inbound":[],"requires":[{"site":"flags-sdk","path":"/docs/providers"}],"neighbors":[{"site":"flags-sdk","path":"/docs/providers/vercel","distance":0.195},{"site":"flags-sdk","path":"/docs/providers/custom-adapters","distance":0.2172},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","distance":0.2212},{"site":"flags-sdk","path":"/docs/providers/launchdarkly","distance":0.2305},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk","distance":0.2355}],"related":[{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/vercel","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/custom-adapters","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/launchdarkly","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/growthbook","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/hypertune","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/providers/growthbook","title":"GrowthBook","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/flags/flags-explorer"}],"inbound":[],"requires":[{"site":"flags-sdk","path":"/docs/providers"}],"neighbors":[{"site":"flags-sdk","path":"/docs/providers/openfeature/growthbook","distance":0.1259},{"site":"flags-sdk","path":"/docs/providers/statsig","distance":0.191},{"site":"flags-sdk","path":"/docs/providers/vercel","distance":0.2091},{"site":"flags-sdk","path":"/docs/providers/launchdarkly","distance":0.2177},{"site":"flags-sdk","path":"/docs/providers/custom-adapters","distance":0.2234}],"related":[{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/growthbook","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/statsig","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/launchdarkly","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/global-config","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/providers/hypertune","title":"Hypertune","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/flags/flags-explorer"},{"site":"vercel-docs","path":"/docs/global-config"}],"inbound":[],"requires":[{"site":"flags-sdk","path":"/docs/providers"}],"neighbors":[{"site":"flags-sdk","path":"/docs/providers/openfeature/hypertune","distance":0.1165},{"site":"flags-sdk","path":"/docs/providers/vercel","distance":0.2265},{"site":"flags-sdk","path":"/docs/providers/global-config","distance":0.2419},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","distance":0.256},{"site":"flags-sdk","path":"/docs/frameworks/next","distance":0.2629}],"related":[{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/hypertune","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/vercel","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/global-config","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/providers/launchdarkly","title":"LaunchDarkly","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/flags/flags-explorer"}],"inbound":[],"requires":[{"site":"flags-sdk","path":"/docs/providers"}],"neighbors":[{"site":"flags-sdk","path":"/docs/providers/statsig","distance":0.1837},{"site":"flags-sdk","path":"/docs/providers/openfeature","distance":0.1922},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","distance":0.1973},{"site":"flags-sdk","path":"/docs/providers/vercel","distance":0.2004},{"site":"flags-sdk","path":"/docs/providers/flagsmith","distance":0.2093}],"related":[{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/statsig","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/vercel","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/flagsmith","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/growthbook","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/providers/openfeature","title":"OpenFeature","summary":null,"outbound":[],"inbound":[],"requires":[{"site":"flags-sdk","path":"/docs/providers"}],"neighbors":[{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","distance":0.1667},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/openfeature","distance":0.168},{"site":"flags-sdk","path":"/docs/providers/openfeature/devcycle","distance":0.1791},{"site":"flags-sdk","path":"/docs/providers/openfeature/go","distance":0.184},{"site":"flags-sdk","path":"/docs/providers/openfeature/featbit","distance":0.1877}],"related":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/openfeature","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/launchdarkly","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/flagsmith","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/statsig","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/providers/openfeature/abtasty","title":"AB Tasty","summary":"Use AB Tasty with the Flags SDK","outbound":[],"inbound":[],"requires":[{"site":"flags-sdk","path":"/docs/providers/openfeature"}],"neighbors":[{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","distance":0.1999},{"site":"flags-sdk","path":"/docs/providers/openfeature/featbit","distance":0.203},{"site":"flags-sdk","path":"/docs/providers/openfeature","distance":0.2109},{"site":"flags-sdk","path":"/docs/providers/openfeature/configcat","distance":0.2248},{"site":"flags-sdk","path":"/docs/providers/openfeature/tggl","distance":0.2382}],"related":[{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/featbit","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/configcat","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/tggl","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/go","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/providers/openfeature/cloudbees","title":"CloudBees","summary":"Use CloudBees with the Flags SDK","outbound":[],"inbound":[],"requires":[{"site":"flags-sdk","path":"/docs/providers/openfeature"}],"neighbors":[{"site":"flags-sdk","path":"/docs/providers/openfeature/featbit","distance":0.2074},{"site":"flags-sdk","path":"/docs/providers/openfeature","distance":0.2198},{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","distance":0.2216},{"site":"flags-sdk","path":"/docs/providers/openfeature/kameloon","distance":0.2286},{"site":"flags-sdk","path":"/docs/providers/openfeature/devcycle","distance":0.2301}],"related":[{"site":"flags-sdk","path":"/docs/providers/openfeature/featbit","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/kameloon","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/devcycle","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/abtasty","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/providers/openfeature/confidence-by-spotify","title":"Confidence by Spotify","summary":"Use Confidence by Spotify with the Flags SDK","outbound":[],"inbound":[],"requires":[{"site":"flags-sdk","path":"/docs/providers/openfeature"}],"neighbors":[{"site":"flags-sdk","path":"/docs/providers/openfeature/featbit","distance":0.2471},{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","distance":0.2572},{"site":"flags-sdk","path":"/docs/providers/openfeature","distance":0.2659},{"site":"flags-sdk","path":"/docs/providers/openfeature/abtasty","distance":0.274},{"site":"flags-sdk","path":"/docs/providers/openfeature/configcat","distance":0.2789}],"related":[{"site":"flags-sdk","path":"/docs/providers/openfeature/featbit","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/abtasty","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/configcat","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/flipt","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/providers/openfeature/configcat","title":"ConfigCat","summary":"Use ConfigCat with the Flags SDK","outbound":[],"inbound":[],"requires":[{"site":"flags-sdk","path":"/docs/providers/openfeature"}],"neighbors":[{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","distance":0.172},{"site":"flags-sdk","path":"/docs/providers/openfeature/devcycle","distance":0.1994},{"site":"flags-sdk","path":"/docs/providers/openfeature/featbit","distance":0.2108},{"site":"flags-sdk","path":"/docs/providers/openfeature","distance":0.2139},{"site":"flags-sdk","path":"/docs/providers/openfeature/abtasty","distance":0.2248}],"related":[{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/devcycle","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/featbit","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/abtasty","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/flipt","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/providers/openfeature/devcycle","title":"DevCycle","summary":"Use DevCycle with the Flags SDK","outbound":[],"inbound":[],"requires":[{"site":"flags-sdk","path":"/docs/providers/openfeature"}],"neighbors":[{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","distance":0.1602},{"site":"flags-sdk","path":"/docs/providers/openfeature","distance":0.1791},{"site":"flags-sdk","path":"/docs/providers/openfeature/configcat","distance":0.1994},{"site":"flags-sdk","path":"/docs/providers/openfeature/flipt","distance":0.2212},{"site":"flags-sdk","path":"/docs/providers/openfeature/go","distance":0.2247}],"related":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/openfeature","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/configcat","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/flipt","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/go","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/providers/openfeature/featbit","title":"FeatBit","summary":"Use FeatBit with the Flags SDK","outbound":[],"inbound":[],"requires":[{"site":"flags-sdk","path":"/docs/providers/openfeature"}],"neighbors":[{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","distance":0.1847},{"site":"flags-sdk","path":"/docs/providers/openfeature/go","distance":0.1871},{"site":"flags-sdk","path":"/docs/providers/openfeature","distance":0.1877},{"site":"flags-sdk","path":"/docs/providers/openfeature/abtasty","distance":0.203},{"site":"flags-sdk","path":"/docs/providers/openfeature/cloudbees","distance":0.2074}],"related":[{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/go","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/abtasty","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/cloudbees","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/configcat","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","title":"flagd","summary":"Use flagd with the Flags SDK","outbound":[],"inbound":[],"requires":[{"site":"flags-sdk","path":"/docs/providers/openfeature"}],"neighbors":[{"site":"flags-sdk","path":"/docs/providers/openfeature/devcycle","distance":0.1602},{"site":"flags-sdk","path":"/docs/providers/openfeature/flipt","distance":0.1612},{"site":"flags-sdk","path":"/docs/providers/openfeature/go","distance":0.1619},{"site":"flags-sdk","path":"/docs/providers/openfeature","distance":0.1667},{"site":"flags-sdk","path":"/docs/providers/openfeature/configcat","distance":0.172}],"related":[{"site":"flags-sdk","path":"/docs/providers/openfeature/devcycle","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/flipt","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/go","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/configcat","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/featbit","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/providers/openfeature/flipt","title":"Flipt","summary":"Use Flipt with the Flags SDK","outbound":[],"inbound":[],"requires":[{"site":"flags-sdk","path":"/docs/providers/openfeature"}],"neighbors":[{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","distance":0.1612},{"site":"flags-sdk","path":"/docs/providers/openfeature/featbit","distance":0.2111},{"site":"flags-sdk","path":"/docs/providers/openfeature","distance":0.2163},{"site":"flags-sdk","path":"/docs/providers/openfeature/devcycle","distance":0.2212},{"site":"flags-sdk","path":"/docs/providers/openfeature/split","distance":0.2213}],"related":[{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/featbit","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/devcycle","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/split","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/configcat","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/providers/openfeature/go","title":"GO FeatureFlag","summary":"Use GO FeatureFlag with the Flags SDK","outbound":[],"inbound":[],"requires":[{"site":"flags-sdk","path":"/docs/providers/openfeature"}],"neighbors":[{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","distance":0.1619},{"site":"flags-sdk","path":"/docs/providers/openfeature","distance":0.184},{"site":"flags-sdk","path":"/docs/providers/openfeature/featbit","distance":0.1871},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","distance":0.2105},{"site":"flags-sdk","path":"/docs/providers/openfeature/tggl","distance":0.2147}],"related":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/openfeature","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/featbit","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/tggl","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/devcycle","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/providers/openfeature/growthbook","title":"GrowthBook","summary":"Use GrowthBook with the Flags SDK","outbound":[],"inbound":[],"requires":[{"site":"flags-sdk","path":"/docs/providers/openfeature"}],"neighbors":[{"site":"flags-sdk","path":"/docs/providers/growthbook","distance":0.1259},{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","distance":0.2096},{"site":"flags-sdk","path":"/docs/providers/openfeature","distance":0.2218},{"site":"flags-sdk","path":"/docs/providers/openfeature/go","distance":0.229},{"site":"flags-sdk","path":"/docs/providers/openfeature/devcycle","distance":0.2445}],"related":[{"site":"flags-sdk","path":"/docs/providers/growthbook","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/go","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/devcycle","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/tggl","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/providers/openfeature/hypertune","title":"Hypertune","summary":"Use Hypertune with the Flags SDK","outbound":[],"inbound":[],"requires":[{"site":"flags-sdk","path":"/docs/providers/openfeature"}],"neighbors":[{"site":"flags-sdk","path":"/docs/providers/hypertune","distance":0.1165},{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","distance":0.2394},{"site":"flags-sdk","path":"/docs/providers/openfeature/abtasty","distance":0.2478},{"site":"flags-sdk","path":"/docs/providers/openfeature/featbit","distance":0.255},{"site":"flags-sdk","path":"/docs/providers/openfeature","distance":0.255}],"related":[{"site":"flags-sdk","path":"/docs/providers/hypertune","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/abtasty","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/featbit","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/flipt","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/providers/openfeature/kameloon","title":"Kameloon","summary":"Use Kameloon with the Flags SDK","outbound":[],"inbound":[],"requires":[{"site":"flags-sdk","path":"/docs/providers/openfeature"}],"neighbors":[{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","distance":0.2007},{"site":"flags-sdk","path":"/docs/providers/openfeature","distance":0.2118},{"site":"flags-sdk","path":"/docs/providers/openfeature/devcycle","distance":0.225},{"site":"flags-sdk","path":"/docs/providers/openfeature/cloudbees","distance":0.2286},{"site":"flags-sdk","path":"/docs/providers/openfeature/go","distance":0.2386}],"related":[{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/devcycle","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/cloudbees","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/go","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/flipt","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/providers/openfeature/posthog","title":"PostHog","summary":"Use PostHog with the Flags SDK","outbound":[],"inbound":[],"requires":[{"site":"flags-sdk","path":"/docs/providers/openfeature"}],"neighbors":[{"site":"flags-sdk","path":"/docs/providers/posthog","distance":0.1439},{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","distance":0.2288},{"site":"flags-sdk","path":"/docs/providers/openfeature/go","distance":0.2499},{"site":"flags-sdk","path":"/docs/providers/openfeature/configcat","distance":0.2541},{"site":"flags-sdk","path":"/docs/providers/openfeature","distance":0.2557}],"related":[{"site":"flags-sdk","path":"/docs/providers/posthog","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/go","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/configcat","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/cloudbees","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/providers/openfeature/split","title":"Split","summary":"Use Split with the Flags SDK","outbound":[],"inbound":[],"requires":[{"site":"flags-sdk","path":"/docs/providers/openfeature"}],"neighbors":[{"site":"flags-sdk","path":"/docs/providers/split","distance":0.1215},{"site":"flags-sdk","path":"/docs/providers/openfeature/flipt","distance":0.2213},{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","distance":0.2485},{"site":"flags-sdk","path":"/docs/providers/openfeature/featbit","distance":0.2557},{"site":"flags-sdk","path":"/docs/providers/openfeature","distance":0.2562}],"related":[{"site":"flags-sdk","path":"/docs/providers/split","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/flipt","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/featbit","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/go","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/providers/openfeature/tggl","title":"Tggl","summary":"Use Tggl with the Flags SDK","outbound":[],"inbound":[],"requires":[{"site":"flags-sdk","path":"/docs/providers/openfeature"}],"neighbors":[{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","distance":0.2053},{"site":"flags-sdk","path":"/docs/providers/openfeature/go","distance":0.2147},{"site":"flags-sdk","path":"/docs/providers/openfeature/abtasty","distance":0.2382},{"site":"flags-sdk","path":"/docs/providers/openfeature/flipt","distance":0.2398},{"site":"flags-sdk","path":"/docs/providers/openfeature","distance":0.2448}],"related":[{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/go","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/abtasty","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/flipt","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/growthbook","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/providers/optimizely","title":"Optimizely","summary":null,"outbound":[],"inbound":[],"requires":[{"site":"flags-sdk","path":"/docs/providers"}],"neighbors":[{"site":"flags-sdk","path":"/docs/providers/launchdarkly","distance":0.2467},{"site":"flags-sdk","path":"/docs/providers","distance":0.2599},{"site":"flags-sdk","path":"/docs/providers/split","distance":0.2601},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","distance":0.2606},{"site":"flags-sdk","path":"/docs/providers/openfeature","distance":0.2662}],"related":[{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/launchdarkly","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/split","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/statsig","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/providers/posthog","title":"PostHog","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/flags/flags-explorer"}],"inbound":[],"requires":[{"site":"flags-sdk","path":"/docs/providers"}],"neighbors":[{"site":"flags-sdk","path":"/docs/providers/openfeature/posthog","distance":0.1439},{"site":"flags-sdk","path":"/docs/providers/statsig","distance":0.2084},{"site":"flags-sdk","path":"/docs/providers/launchdarkly","distance":0.2364},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","distance":0.2428},{"site":"flags-sdk","path":"/docs/providers/flagsmith","distance":0.2437}],"related":[{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/posthog-nextjs-vercel-feature-flags-analytics","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/posthog","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/statsig","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/launchdarkly","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/flagsmith","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/providers/reflag","title":"Reflag","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/flags/flags-explorer"}],"inbound":[],"requires":[{"site":"flags-sdk","path":"/docs/providers"}],"neighbors":[{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","distance":0.1897},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","distance":0.2012},{"site":"flags-sdk","path":"/docs/providers/statsig","distance":0.2097},{"site":"flags-sdk","path":"/docs/providers/vercel","distance":0.2164},{"site":"flags-sdk","path":"/docs/providers/openfeature","distance":0.2176}],"related":[{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/statsig","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/vercel","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/launchdarkly","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/providers/split","title":"Split","summary":null,"outbound":[],"inbound":[],"requires":[{"site":"flags-sdk","path":"/docs/providers"}],"neighbors":[{"site":"flags-sdk","path":"/docs/providers/openfeature/split","distance":0.1215},{"site":"flags-sdk","path":"/docs/providers/optimizely","distance":0.2601},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","distance":0.2765},{"site":"flags-sdk","path":"/docs/providers","distance":0.3008},{"site":"flags-sdk","path":"/docs/providers/launchdarkly","distance":0.3034}],"related":[{"site":"flags-sdk","path":"/docs/providers/openfeature/split","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/optimizely","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/launchdarkly","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/providers/statsig","title":"Statsig","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/flags/flags-explorer"}],"inbound":[],"requires":[{"site":"flags-sdk","path":"/docs/providers"}],"neighbors":[{"site":"flags-sdk","path":"/docs/providers/launchdarkly","distance":0.1837},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","distance":0.1906},{"site":"flags-sdk","path":"/docs/providers/growthbook","distance":0.191},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","distance":0.1971},{"site":"flags-sdk","path":"/docs/frameworks/next","distance":0.205}],"related":[{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/launchdarkly","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/growthbook","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/posthog","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/reflag","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/providers/vercel","title":"Vercel Flags","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags"}],"inbound":[{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference"}],"requires":[{"site":"flags-sdk","path":"/docs/providers"}],"neighbors":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags","distance":0.1119},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk","distance":0.1144},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","distance":0.1283},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","distance":0.1322},{"site":"flags-sdk","path":"/docs/frameworks/next","distance":0.1369}],"related":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-resolves-environments","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/flagsmith","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/global-config","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference","title":"API Reference","summary":"Next.js API Reference for the App Router.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/adapters"},{"site":"nextjs","path":"/docs/app/api-reference/cli"},{"site":"nextjs","path":"/docs/app/api-reference/components"},{"site":"nextjs","path":"/docs/app/api-reference/config"},{"site":"nextjs","path":"/docs/app/api-reference/directives"},{"site":"nextjs","path":"/docs/app/api-reference/edge"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"},{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/api-reference/turbopack"}],"inbound":[],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference","distance":0.0751},{"site":"nextjs","path":"/docs/app/api-reference/functions","distance":0.1617},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions","distance":0.1725},{"site":"nextjs","path":"/docs/pages/api-reference/components","distance":0.1778},{"site":"nextjs","path":"/docs/app/api-reference/components","distance":0.1799}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/components","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/adapters","title":"Adapters","summary":"Build deployment adapters for Next.js platforms and infrastructure.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/api-reference"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/configuration"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/creating-an-adapter"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/immutable-static-assets"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/implementing-ppr-in-an-adapter"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/invoking-entrypoints"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/output-types"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/routing-information"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/routing-with-next-routing"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/runtime-integration"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/testing-adapters"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/use-cases"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/supportsImmutableAssets"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/api-reference"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters","distance":0.0126},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath","distance":0.0888},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/adapterPath","distance":0.0915},{"site":"nextjs","path":"/docs/app/api-reference/adapters/creating-an-adapter","distance":0.1348},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/creating-an-adapter","distance":0.1358}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/adapterPath","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/creating-an-adapter","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/use-cases","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/adapters/api-reference","title":"API Reference","summary":"Reference for `modifyConfig` and `onBuildComplete` in the `NextAdapter` interface.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/adapters"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/adapterPath"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/adapters"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters/api-reference","distance":0.0065},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.3363},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.3426},{"site":"nextjs","path":"/docs/app/api-reference/adapters","distance":0.3659},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","distance":0.3726}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters/api-reference","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/routing-information","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/routing-information","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/adapters/configuration","title":"Configuration","summary":"Configure `adapterPath` or `NEXT_ADAPTER_PATH` to use a custom deployment adapter.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/adapters"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/adapterPath"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/adapters"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters/configuration","distance":0.0094},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath","distance":0.1203},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/adapterPath","distance":0.1279},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","distance":0.1524},{"site":"nextjs","path":"/docs/app/api-reference/adapters","distance":0.1529}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters/configuration","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/adapterPath","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/creating-an-adapter","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/adapters/creating-an-adapter","title":"Creating an Adapter","summary":"Create an adapter module that implements the `NextAdapter` interface.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/adapters"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/adapterPath"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/adapters"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters/creating-an-adapter","distance":0.0045},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","distance":0.1318},{"site":"nextjs","path":"/docs/app/api-reference/adapters","distance":0.1348},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/adapterPath","distance":0.1441},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath","distance":0.1452}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters/creating-an-adapter","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/adapterPath","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/custom-adapters","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/configuration","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/adapters/immutable-static-assets","title":"Supporting Immutable Static Assets","summary":"Support immutable static assets in an adapter","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/supportsImmutableAssets"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/adapters"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/output-types"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/supportsImmutableAssets"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/output-types"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/adapters"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/supportsImmutableAssets","distance":0.1283},{"site":"nextjs","path":"/docs/app/api-reference/adapters","distance":0.2649},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","distance":0.3024},{"site":"nextjs","path":"/docs/app/api-reference/adapters/creating-an-adapter","distance":0.3184},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/creating-an-adapter","distance":0.3208}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/creating-an-adapter","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/creating-an-adapter","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/deploying-to-platforms","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/adapters/implementing-ppr-in-an-adapter","title":"Implementing PPR in an Adapter","summary":"Implement Partial Prerendering support in an adapter using fallback output and cache hooks.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/adapters"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/runtime-integration"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath"},{"site":"nextjs","path":"/docs/app/guides/ppr-platform-guide"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/adapterPath"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/adapters"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/ppr-platform-guide","distance":0.1237},{"site":"nextjs","path":"/docs/app/api-reference/adapters/runtime-integration","distance":0.1662},{"site":"vercel-docs","path":"/docs/partial-prerendering/quickstart","distance":0.2396},{"site":"vercel-docs","path":"/docs/partial-prerendering","distance":0.2692},{"site":"nextjs","path":"/docs/app/guides/rendering-philosophy","distance":0.2872}],"related":[{"site":"vercel-docs","path":"/docs/partial-prerendering/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/partial-prerendering","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/ppr-platform-guide","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/runtime-integration","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/rendering-philosophy","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/runtime-integration","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/adapters/invoking-entrypoints","title":"Invoking Entrypoints","summary":"Invoke Node.js and Edge build entrypoints with adapter runtime context.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/adapters"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/adapterPath"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/adapters"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters/invoking-entrypoints","distance":0.0059},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/runtime-integration","distance":0.2479},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/runtime","distance":0.2496},{"site":"nextjs","path":"/docs/app/api-reference/adapters/runtime-integration","distance":0.2604},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","distance":0.2669}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters/invoking-entrypoints","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/runtime-integration","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/runtime","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/runtime-integration","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/adapters/output-types","title":"Output Types","summary":"Reference for all build output types exposed to adapters.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/immutable-static-assets"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/adapters"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/runtime-integration"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath"},{"site":"nextjs","path":"/docs/app/guides/ppr-platform-guide"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/adapterPath"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/adapters"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters/output-types","distance":0.0006},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","distance":0.2306},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths","distance":0.2387},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2587},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props","distance":0.2612}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters/output-types","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/adapters/routing-information","title":"Routing Information","summary":"Reference for routing phases and route fields exposed in `onBuildComplete`.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/adapters"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/adapterPath"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/adapters"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters/routing-information","distance":0.012},{"site":"nextjs","path":"/docs/app/api-reference/adapters/routing-with-next-routing","distance":0.1784},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/routing-with-next-routing","distance":0.1843},{"site":"nextjs","path":"/docs/pages/building-your-application/routing","distance":0.2365},{"site":"nextjs","path":"/docs/pages/building-your-application","distance":0.287}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters/routing-information","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/routing-with-next-routing","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/routing-with-next-routing","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/adapters/routing-with-next-routing","title":"Routing with @next/routing","summary":"Use `@next/routing` to apply Next.js route matching behavior in adapters.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/adapters"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/adapterPath"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/adapters"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters/routing-with-next-routing","distance":0.0078},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/routing-information","distance":0.1765},{"site":"nextjs","path":"/docs/app/api-reference/adapters/routing-information","distance":0.1784},{"site":"nextjs","path":"/docs/pages/building-your-application/routing","distance":0.2254},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating","distance":0.2337}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters/routing-with-next-routing","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/routing-information","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/routing-information","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/adapters/runtime-integration","title":"Runtime Integration","summary":"Understand how build-time adapters and runtime cache interfaces work together.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/implementing-ppr-in-an-adapter"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/output-types"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheHandlers"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/incrementalCacheHandlerPath"},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works"},{"site":"nextjs","path":"/docs/app/guides/ppr-platform-guide"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/adapters"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/adapterPath"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/adapters"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters/runtime-integration","distance":0.0623},{"site":"nextjs","path":"/docs/app/api-reference/adapters/implementing-ppr-in-an-adapter","distance":0.1662},{"site":"nextjs","path":"/docs/app/guides/ppr-platform-guide","distance":0.1672},{"site":"nextjs","path":"/docs/app/guides/rendering-philosophy","distance":0.2208},{"site":"nextjs","path":"/docs/app/api-reference/adapters","distance":0.2249}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters/runtime-integration","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/rendering-philosophy","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/deploying-to-platforms","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/invoking-entrypoints","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/adapters/testing-adapters","title":"Testing Adapters","summary":"Validate adapters with the Next.js compatibility test harness and custom lifecycle scripts.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/adapters"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath"},{"site":"nextjs","path":"/docs/app/getting-started/deploying"},{"site":"nextjs","path":"/docs/app/guides/deploying-to-platforms"},{"site":"nextjs","path":"/docs/app/guides/rendering-philosophy"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/adapterPath"},{"site":"nextjs","path":"/docs/pages/getting-started/deploying"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/adapters"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters/testing-adapters","distance":0.0026},{"site":"nextjs","path":"/docs/app/api-reference/adapters","distance":0.2004},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","distance":0.2075},{"site":"nextjs","path":"/docs/app/api-reference/adapters/use-cases","distance":0.2481},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/use-cases","distance":0.2611}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters/testing-adapters","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/use-cases","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/use-cases","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/adapters/use-cases","title":"Use Cases","summary":"Common patterns and examples for deployment adapter implementations.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/adapters"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/adapterPath"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/adapters"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters/use-cases","distance":0.0092},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","distance":0.1485},{"site":"nextjs","path":"/docs/app/api-reference/adapters","distance":0.1496},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath","distance":0.2118},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/adapterPath","distance":0.2159}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters/use-cases","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/adapterPath","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/configuration","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/cli","title":"CLI","summary":"API Reference for the Next.js Command Line Interface (CLI) tools.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/cli/create-next-app"},{"site":"nextjs","path":"/docs/app/api-reference/cli/next"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference"}],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/cli","distance":0.0116},{"site":"nextjs","path":"/docs/pages/api-reference/cli/create-next-app","distance":0.2025},{"site":"nextjs","path":"/docs/app/api-reference/cli/create-next-app","distance":0.2106},{"site":"nextjs","path":"/docs/app/api-reference","distance":0.231},{"site":"nextjs","path":"/docs/app/api-reference/config","distance":0.2407}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/cli","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/cli/create-next-app","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/installation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/cli/create-next-app","title":"create-next-app","summary":"Create Next.js apps using one command with the create-next-app CLI.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/cli"},{"site":"nextjs","path":"/docs/app/api-reference/config/eslint"},{"site":"nextjs","path":"/docs/app/getting-started/installation"},{"site":"nextjs","path":"/docs/app/guides/ai-agents"},{"site":"nextjs","path":"/docs/pages/api-reference/config/eslint"},{"site":"nextjs","path":"/docs/pages/getting-started/installation"},{"site":"turborepo","path":"/docs/guides/frameworks/nextjs"},{"site":"vercel-kb","path":"/kb/guide/getting-started-with-nextjs-typescript-stripe"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/cli"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/cli/create-next-app","distance":0.0031},{"site":"nextjs","path":"/docs/app/getting-started/installation","distance":0.1972},{"site":"nextjs","path":"/docs/pages/getting-started/installation","distance":0.2102},{"site":"nextjs","path":"/docs/app/api-reference/cli","distance":0.2106},{"site":"nextjs","path":"/docs/pages/api-reference/cli","distance":0.2213}],"related":[{"site":"turborepo","path":"/docs/guides/frameworks/nextjs","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/getting-started-with-nextjs-typescript-stripe","via":"inbound"},{"site":"nextjs","path":"/docs/pages/api-reference/cli/create-next-app","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/packages/create-v0-sdk-app","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/installation","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/installation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/cli/next","title":"next CLI","summary":"Learn how to run and build your application with the Next.js CLI.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/turbopack"},{"site":"nextjs","path":"/docs/app/guides/building"},{"site":"nextjs","path":"/docs/app/guides/package-bundling"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/cli"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/exportPathMap"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/useTypeScriptCli"},{"site":"nextjs","path":"/docs/app/api-reference/config/typescript"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-root-params"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/ai-agents"},{"site":"nextjs","path":"/docs/app/guides/building"},{"site":"nextjs","path":"/docs/app/guides/progressive-web-apps"},{"site":"nextjs","path":"/docs/app/guides/public-static-pages"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/exportPathMap"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/useTypeScriptCli"},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/cli"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/cli/next","distance":0.0053},{"site":"nextjs","path":"/docs/app/guides/local-development","distance":0.2549},{"site":"nextjs","path":"/docs/app/guides/package-bundling","distance":0.2571},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.267},{"site":"nextjs","path":"/docs/pages/guides/package-bundling","distance":0.2701}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/cli/next","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/local-development","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/package-bundling","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/components","title":"Components","summary":"API Reference for Next.js built-in components.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/font"},{"site":"nextjs","path":"/docs/app/api-reference/components/form"},{"site":"nextjs","path":"/docs/app/api-reference/components/image"},{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/components/script"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference"}],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/components","distance":0.0589},{"site":"nextjs","path":"/docs/app/api-reference","distance":0.1799},{"site":"nextjs","path":"/docs/pages/api-reference","distance":0.2059},{"site":"nextjs","path":"/docs/architecture","distance":0.2323},{"site":"nextjs","path":"/docs/pages/building-your-application","distance":0.2339}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/components","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference","via":"neighbor"},{"site":"nextjs","path":"/docs/architecture","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/components/font","title":"Font","summary":"Optimizing loading web fonts with the built-in `next/font` loaders.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page"},{"site":"nextjs","path":"/docs/app/getting-started/css"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/components"},{"site":"nextjs","path":"/docs/app/getting-started/fonts"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-vite"},{"site":"nextjs","path":"/docs/app/guides/production-checklist"},{"site":"nextjs","path":"/docs/app/guides/testing/jest"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15"},{"site":"nextjs","path":"/docs/pages/api-reference/components/font"},{"site":"nextjs","path":"/docs/pages/getting-started/fonts"},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-vite"},{"site":"nextjs","path":"/docs/pages/guides/production-checklist"},{"site":"nextjs","path":"/docs/pages/guides/testing/jest"},{"site":"vercel-kb","path":"/kb/guide/cls-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-improve-core-web-vitals"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/components"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/components/font","distance":0.0808},{"site":"nextjs","path":"/docs/app/getting-started/fonts","distance":0.1704},{"site":"nextjs","path":"/docs/pages/getting-started/fonts","distance":0.2},{"site":"nextjs","path":"/docs/app/getting-started/css","distance":0.2476},{"site":"nextjs","path":"/docs/pages/getting-started/css","distance":0.2781}],"related":[{"site":"vercel-kb","path":"/kb/guide/cls-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-improve-core-web-vitals","via":"inbound"},{"site":"nextjs","path":"/docs/pages/api-reference/components/font","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/fonts","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/tailwind","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/fonts","via":"neighbor"},{"site":"streamdown","path":"/docs/styling","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/css","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/preventing-flash-before-hydration","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/components/form","title":"Form Component","summary":"Learn how to use the `<Form>` component to handle form submissions and search params updates with client-side navigation.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/basePath"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"},{"site":"nextjs","path":"/docs/app/guides/redirecting"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/components"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/components"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/components/form","distance":0.0796},{"site":"nextjs","path":"/docs/app/guides/forms","distance":0.1395},{"site":"nextjs","path":"/docs/pages/guides/forms","distance":0.1809},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data","distance":0.1978},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.218}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/components/form","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/forms","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/forms","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/server-actions","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/components/image","title":"Image Component","summary":"Optimize Images in your Next.js Application using the built-in `next/image` Component.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/headers"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/images"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/incrementalCacheHandlerPath"},{"site":"nextjs","path":"/docs/app/getting-started/css"},{"site":"nextjs","path":"/docs/app/getting-started/images"},{"site":"nextjs","path":"/docs/app/guides/css-in-js"},{"site":"nextjs","path":"/docs/app/guides/upgrading/codemods"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/components"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/basePath"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/images"},{"site":"nextjs","path":"/docs/app/getting-started/images"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/deploying-to-platforms"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-vite"},{"site":"nextjs","path":"/docs/app/guides/production-checklist"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/app/guides/static-exports"},{"site":"nextjs","path":"/docs/app/guides/streaming"},{"site":"nextjs","path":"/docs/pages/api-reference/components/image"},{"site":"nextjs","path":"/docs/pages/api-reference/components/image-legacy"},{"site":"nextjs","path":"/docs/pages/getting-started/images"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-vite"},{"site":"nextjs","path":"/docs/pages/guides/production-checklist"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting"},{"site":"nextjs","path":"/docs/pages/guides/static-exports"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/image-optimization/legacy-pricing"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/image-optimization/managing-image-optimization-costs"},{"site":"vercel-docs","path":"/docs/image-optimization/quickstart"},{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage"},{"site":"vercel-kb","path":"/kb/guide/cls-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-improve-core-web-vitals"},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-your-document-size-in-next-js"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/components"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/components/image","distance":0.0199},{"site":"nextjs","path":"/docs/pages/api-reference/components/image-legacy","distance":0.0552},{"site":"nextjs","path":"/docs/app/getting-started/images","distance":0.2181},{"site":"nextjs","path":"/docs/pages/getting-started/images","distance":0.2188},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/images","distance":0.2605}],"related":[{"site":"vercel-docs","path":"/docs/image-optimization","via":"inbound"},{"site":"vercel-docs","path":"/docs/image-optimization/legacy-pricing","via":"inbound"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing","via":"inbound"},{"site":"vercel-docs","path":"/docs/image-optimization/managing-image-optimization-costs","via":"inbound"},{"site":"vercel-docs","path":"/docs/image-optimization/quickstart","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/cls-on-vercel","via":"inbound"},{"site":"nextjs","path":"/docs/pages/getting-started/images","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/images","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/turbopack","via":"neighbor"},{"site":"nextjs","path":"/docs/app/glossary","via":"inbound"}]},{"site":"nextjs","path":"/docs/app/api-reference/components/link","title":"Link Component","summary":"Enable fast client-side navigation with the built-in `next/link` component.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/partialPrefetching"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-pathname"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching"},{"site":"nextjs","path":"/docs/app/guides/upgrading/codemods"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/components"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/partialPrefetching"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/prefetchInlining"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/staleTimes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/prefetch"},{"site":"nextjs","path":"/docs/app/api-reference/functions/draft-mode"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-link-status"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-search-params"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components"},{"site":"nextjs","path":"/docs/app/guides/draft-mode"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components"},{"site":"nextjs","path":"/docs/app/guides/instant-navigation"},{"site":"nextjs","path":"/docs/app/guides/interactive-apps"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/app/guides/multi-zones"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching"},{"site":"nextjs","path":"/docs/app/guides/preserving-ui-state"},{"site":"nextjs","path":"/docs/app/guides/production-checklist"},{"site":"nextjs","path":"/docs/app/guides/redirecting"},{"site":"nextjs","path":"/docs/app/guides/single-page-applications"},{"site":"nextjs","path":"/docs/app/guides/upgrading/codemods"},{"site":"nextjs","path":"/docs/app/guides/view-transitions"},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/pages/guides/multi-zones"},{"site":"nextjs","path":"/docs/pages/guides/redirecting"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/components"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/components/link","distance":0.214},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-router","distance":0.2171},{"site":"nextjs","path":"/docs/app/guides/prefetching","distance":0.229},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching","distance":0.2488},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout","distance":0.253}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/components/link","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-router","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/single-page-applications","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/components/script","title":"Script Component","summary":"Optimize third-party scripts in your Next.js application using the built-in `next/script` Component.","outbound":[{"site":"nextjs","path":"/docs/app/guides/scripts"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/components"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/app/guides/scripts"},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/pages/guides/scripts"},{"site":"vercel-kb","path":"/kb/guide/geolocation-script"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/components"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/components/script","distance":0.0073},{"site":"nextjs","path":"/docs/app/guides/scripts","distance":0.1009},{"site":"nextjs","path":"/docs/pages/guides/scripts","distance":0.1183},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.2556},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.2576}],"related":[{"site":"vercel-kb","path":"/kb/guide/geolocation-script","via":"inbound"},{"site":"nextjs","path":"/docs/pages/api-reference/components/script","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/scripts","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/lazy-loading","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config","title":"Configuration","summary":"Learn how to configure Next.js applications.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/eslint"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/config/typescript"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference"}],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config","distance":0.0405},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring","distance":0.0899},{"site":"nextjs","path":"/docs/pages/building-your-application","distance":0.176},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.1883},{"site":"nextjs","path":"/docs/app/getting-started","distance":0.2003}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/eslint","title":"ESLint","summary":"Learn how to use and configure the ESLint plugin to catch common issues and problems in a Next.js application.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/cli/create-next-app"},{"site":"nextjs","path":"/docs/app/guides/upgrading/codemods"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching"},{"site":"nextjs","path":"/docs/pages/guides/babel"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config"},{"site":"nextjs","path":"/docs/app/getting-started/installation"},{"site":"nextjs","path":"/docs/app/getting-started/project-structure"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-vite"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"},{"site":"nextjs","path":"/docs/pages/getting-started/installation"},{"site":"nextjs","path":"/docs/pages/getting-started/project-structure"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-vite"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/eslint","distance":0.0076},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2272},{"site":"nextjs","path":"/docs/app/getting-started/installation","distance":0.2486},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2495},{"site":"nextjs","path":"/docs/pages/guides/babel","distance":0.253}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/eslint","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/eslint","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/installation","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","title":"next.config.js","summary":"Learn how to configure your application with next.config.js.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/allowedDevOrigins"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/appDir"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/assetPrefix"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/authInterrupts"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/basePath"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheHandlers"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheLife"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheMaxMemorySize"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/compress"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/crossOrigin"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cssChunking"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/deploymentId"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/devIndicators"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/distDir"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/env"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/expireTime"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/exportPathMap"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/generateBuildId"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/generateEtags"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/headers"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/htmlLimitedBots"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/httpAgentOptions"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/images"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/incrementalCacheHandlerPath"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/inlineCss"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/instrumentationClientInject"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/logging"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/mdxRs"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/onDemandEntries"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/optimizePackageImports"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/output"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/outputHashSalt"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/pageExtensions"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/partialPrefetching"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/poweredByHeader"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/prefetchInlining"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/productionBrowserSourceMaps"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/proxyClientMaxBodySize"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/reactCompiler"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/reactMaxHeadersLength"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/reactStrictMode"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/redirects"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/rewrites"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/sassOptions"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverActions"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverComponentsHmrCache"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverExternalPackages"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/staleTimes"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/staticGeneration"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/supportsImmutableAssets"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/taint"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/trailingSlash"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/transpilePackages"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopack"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackChunking"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackFileSystemCache"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackIgnoreIssue"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLocalPostcssConfig"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackMemoryEviction"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackRustReactCompiler"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/typedRoutes"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/typescript"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/urlImports"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/useLightningcss"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/useOffline"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/useTypeScriptCli"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/webVitalsAttribution"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/webpack"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/api-reference"},{"site":"nextjs","path":"/docs/app/api-reference/config"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/assetPrefix"},{"site":"nextjs","path":"/docs/app/getting-started/images"},{"site":"nextjs","path":"/docs/app/getting-started/project-structure"},{"site":"nextjs","path":"/docs/app/guides/building"},{"site":"nextjs","path":"/docs/app/guides/content-security-policy"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-vite"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/api-reference"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/assetPrefix"},{"site":"nextjs","path":"/docs/pages/getting-started/images"},{"site":"nextjs","path":"/docs/pages/getting-started/project-structure"},{"site":"nextjs","path":"/docs/pages/guides/content-security-policy"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-vite"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/skew-protection"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.0282},{"site":"nextjs","path":"/docs/app/guides","distance":0.1268},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","distance":0.152},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","distance":0.1545},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","distance":0.1552}],"related":[{"site":"vercel-docs","path":"/docs/caching/cdn-cache","via":"inbound"},{"site":"vercel-docs","path":"/docs/image-optimization","via":"inbound"},{"site":"vercel-docs","path":"/docs/skew-protection","via":"inbound"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","via":"neighbor"},{"site":"nextjs","path":"/docs/architecture/supported-browsers","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath","title":"adapterPath","summary":"Configure a custom adapter for Next.js to hook into the build process.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/api-reference"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/configuration"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/creating-an-adapter"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/implementing-ppr-in-an-adapter"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/invoking-entrypoints"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/output-types"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/routing-information"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/routing-with-next-routing"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/runtime-integration"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/testing-adapters"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/use-cases"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/getting-started/deploying"},{"site":"nextjs","path":"/docs/app/guides/deploying-to-platforms"},{"site":"nextjs","path":"/docs/app/guides/ppr-platform-guide"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"},{"site":"nextjs","path":"/docs/pages/getting-started/deploying"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/adapterPath","distance":0.0056},{"site":"nextjs","path":"/docs/app/api-reference/adapters","distance":0.0888},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","distance":0.0929},{"site":"nextjs","path":"/docs/app/api-reference/adapters/configuration","distance":0.1203},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/configuration","distance":0.1223}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/adapterPath","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/adapters","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/configuration","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/creating-an-adapter","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/allowedDevOrigins","title":"allowedDevOrigins","summary":"Use `allowedDevOrigins` to configure additional origins that can request the dev server.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/allowedDevOrigins","distance":0.0074},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2782},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2838},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/crossOrigin","distance":0.2894},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/crossOrigin","distance":0.2956}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/allowedDevOrigins","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/crossOrigin","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/crossOrigin","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/appDir","title":"appDir","summary":"Enable the App Router to use layouts, streaming, and more.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/src-folder","distance":0.2434},{"site":"nextjs","path":"/docs/app/api-reference","distance":0.2466},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/src-folder","distance":0.2638},{"site":"nextjs","path":"/docs/app/getting-started","distance":0.2883},{"site":"nextjs","path":"/docs/app/api-reference/config","distance":0.2931}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/src-folder","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/src-folder","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/assetPrefix","title":"assetPrefix","summary":"Learn how to use the assetPrefix config option to configure your CDN.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/basePath"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/public-folder"},{"site":"nextjs","path":"/docs/app/getting-started/deploying"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/guides/cdn-caching"},{"site":"nextjs","path":"/docs/app/guides/multi-zones"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/pages/guides/multi-zones"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/assetPrefix","distance":0.0095},{"site":"nextjs","path":"/docs/app/guides/cdn-caching","distance":0.2441},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.3074},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.314},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/public-folder","distance":0.3369}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/assetPrefix","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/cdn-caching","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/basePath","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/self-hosting","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/authInterrupts","title":"authInterrupts","summary":"Learn how to enable the experimental `authInterrupts` configuration option to use `forbidden` and `unauthorized`.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/forbidden"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/unauthorized"},{"site":"nextjs","path":"/docs/app/api-reference/functions/forbidden"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unauthorized"},{"site":"nextjs","path":"/docs/app/getting-started/upgrading"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/functions/forbidden"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unauthorized"},{"site":"nextjs","path":"/docs/app/getting-started/upgrading"},{"site":"nextjs","path":"/docs/app/guides/server-actions"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/functions/forbidden","distance":0.1769},{"site":"nextjs","path":"/docs/app/api-reference/functions/unauthorized","distance":0.1922},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/unauthorized","distance":0.2302},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/forbidden","distance":0.2312},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2742}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/prefetchInlining","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/logging","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/basePath","title":"basePath","summary":"Use `basePath` to deploy a Next.js application under a sub-path of a domain.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/image"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/form"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/assetPrefix"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/headers"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/redirects"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/rewrites"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-request"},{"site":"nextjs","path":"/docs/app/api-reference/turbopack"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-vite"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/assetPrefix"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/headers"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/redirects"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/rewrites"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/pages/api-reference/turbopack"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-vite"},{"site":"vercel-docs","path":"/docs/incremental-migration"},{"site":"vercel-docs","path":"/docs/microfrontends/quickstart"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/basePath","distance":0.0069},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.3197},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.3215},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/src-folder","distance":0.325},{"site":"nextjs","path":"/docs/pages/getting-started/installation","distance":0.3268}],"related":[{"site":"vercel-docs","path":"/docs/incremental-migration","via":"inbound"},{"site":"vercel-docs","path":"/docs/microfrontends/quickstart","via":"inbound"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/basePath","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/src-folder","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/installation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/src-folder","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents","title":"cacheComponents","summary":"Learn how to enable the cacheComponents flag in Next.js.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheLife"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/preserving-ui-state"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheLife"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/partialPrefetching"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-private"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/dynamicParams"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/instant"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/prefetch"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/connection"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-viewport"},{"site":"nextjs","path":"/docs/app/api-reference/functions/io"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-root-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-pathname"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-selected-layout-segment"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-selected-layout-segments"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/revalidating"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching"},{"site":"nextjs","path":"/docs/app/guides/ai-agents"},{"site":"nextjs","path":"/docs/app/guides/authentication"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components"},{"site":"nextjs","path":"/docs/app/guides/building"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/tanstack-query"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components"},{"site":"nextjs","path":"/docs/app/guides/interactive-apps"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/offline-support"},{"site":"nextjs","path":"/docs/app/guides/preserving-ui-state"},{"site":"nextjs","path":"/docs/app/guides/preventing-flash-before-hydration"},{"site":"nextjs","path":"/docs/app/guides/upgrading/codemods"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"},{"site":"nextjs","path":"/docs/pages/guides/authentication"},{"site":"nextjs","path":"/docs/pages/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/codemods"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","distance":0.164},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components","distance":0.184},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-private","distance":0.1907},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheLife","distance":0.1965},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag","distance":0.2163}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"inbound"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-private","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheHandlers","title":"cacheHandlers","summary":"Configure custom cache handlers for use cache directives in Next.js.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheLife"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-private"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidatePath"},{"site":"nextjs","path":"/docs/app/getting-started/deploying"},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/runtime-integration"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheLife"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheMaxMemorySize"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/incrementalCacheHandlerPath"},{"site":"nextjs","path":"/docs/app/api-reference/directives"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/guides/deploying-to-platforms"},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/runtime-integration"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/incrementalCacheHandlerPath","distance":0.1907},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag","distance":0.2167},{"site":"nextjs","path":"/docs/app/guides/self-hosting","distance":0.2219},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components","distance":0.2312},{"site":"nextjs","path":"/docs/app/getting-started/revalidating","distance":0.234}],"related":[{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/incrementalCacheHandlerPath","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/self-hosting","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/revalidating","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheLife","title":"cacheLife","summary":"Learn how to set up cacheLife configurations in Next.js.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheHandlers"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheHandlers"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-private","distance":0.1818},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents","distance":0.1965},{"site":"nextjs","path":"/docs/app/getting-started/revalidating","distance":0.2172},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag","distance":0.2177},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife","distance":0.234}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-private","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/revalidating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/incrementalCacheHandlerPath","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheMaxMemorySize","title":"cacheMaxMemorySize","summary":"Configure the size of the in-memory cache that Next.js keeps in each server instance.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheHandlers"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/incrementalCacheHandlerPath"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/incrementalCacheHandlerPath"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheLife","distance":0.29},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverComponentsHmrCache","distance":0.2949},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/reactMaxHeadersLength","distance":0.3001},{"site":"nextjs","path":"/docs/app/guides/memory-usage","distance":0.3001},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/incrementalCacheHandlerPath","distance":0.3006}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheLife","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverComponentsHmrCache","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/reactMaxHeadersLength","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/memory-usage","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/onDemandEntries","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/compress","title":"compress","summary":"Next.js provides gzip compression to compress rendered content and static files, it only works with the server target. Learn more about it here.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/compress","distance":0.0141},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.3043},{"site":"nextjs","path":"/docs/app/api-reference/config","distance":0.31},{"site":"nextjs","path":"/docs/architecture","distance":0.3133},{"site":"nextjs","path":"/docs/pages/guides/production-checklist","distance":0.3143}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/compress","via":"neighbor"},{"site":"nextjs","path":"/docs/architecture","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/production-checklist","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/crossOrigin","title":"crossOrigin","summary":"Use the `crossOrigin` option to add a crossOrigin tag on the `script` tags generated by `next/script`.","outbound":[{"site":"nextjs","path":"/docs/app/guides/scripts"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/crossOrigin","distance":0.011},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/allowedDevOrigins","distance":0.2956},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/allowedDevOrigins","distance":0.3025},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.316},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.3273}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/crossOrigin","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/allowedDevOrigins","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/allowedDevOrigins","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/httpAgentOptions","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cssChunking","title":"cssChunking","summary":"Use the `cssChunking` option to control how CSS files are chunked in your Next.js application.","outbound":[{"site":"nextjs","path":"/docs/app/getting-started/css"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/getting-started/css"},{"site":"nextjs","path":"/docs/pages/getting-started/css"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopackChunking","distance":0.2304},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackChunking","distance":0.2362},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/useLightningcss","distance":0.2745},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/useLightningcss","distance":0.28},{"site":"nextjs","path":"/docs/app/getting-started/css","distance":0.2987}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopackChunking","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackChunking","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/useLightningcss","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/useLightningcss","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/css","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/deploymentId","title":"deploymentId","summary":"Configure a deployment identifier used for version skew protection and cache busting.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/generateBuildId"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/deploymentId","distance":0.0078},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/generateBuildId","distance":0.3163},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/generateBuildId","distance":0.3163},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","distance":0.3421},{"site":"nextjs","path":"/docs/app/getting-started/deploying","distance":0.3446}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/deploymentId","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/get-by-id","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/generateBuildId","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/deploying","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/deploying","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/devIndicators","title":"devIndicators","summary":"Configuration options for the on-screen indicator that gives context about the current route you're viewing during development.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"},{"site":"nextjs","path":"/docs/app/glossary"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/devIndicators","distance":0.0349},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.284},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2865},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config","distance":0.3019},{"site":"nextjs","path":"/docs/app/guides/static-exports","distance":0.3046}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/devIndicators","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/static-exports","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/logging","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/distDir","title":"distDir","summary":"Set a custom build directory to use instead of the default .next directory.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/distDir","distance":0.0109},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/appDir","distance":0.3059},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/generateBuildId","distance":0.3395},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring","distance":0.3413},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/generateBuildId","distance":0.349}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/distDir","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/appDir","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/generateBuildId","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/generateBuildId","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/env","title":"env","summary":"Learn to add and access environment variables in your Next.js application at build time.","outbound":[{"site":"nextjs","path":"/docs/app/guides/environment-variables"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/env","distance":0.0188},{"site":"nextjs","path":"/docs/pages/guides/environment-variables","distance":0.1408},{"site":"nextjs","path":"/docs/app/guides/environment-variables","distance":0.145},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/webpack","distance":0.2609},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/webpack","distance":0.2629}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/env","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/environment-variables","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/webpack","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/webpack","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/expireTime","title":"expireTime","summary":"Customize stale-while-revalidate expire time for ISR enabled pages.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/staleTimes","distance":0.2277},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheLife","distance":0.3382},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheMaxMemorySize","distance":0.3431},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration","distance":0.3432},{"site":"nextjs","path":"/docs/app/getting-started/revalidating","distance":0.3509}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/staleTimes","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheLife","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheMaxMemorySize","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/revalidating","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/exportPathMap","title":"exportPathMap","summary":"Customize the pages that will be exported as HTML files when using `next export`.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/cli/next"},{"site":"nextjs","path":"/docs/app/guides/static-exports"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/distDir"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/automatic-static-optimization"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/exportPathMap","distance":0.0038},{"site":"nextjs","path":"/docs/pages/guides/static-exports","distance":0.2227},{"site":"nextjs","path":"/docs/app/guides/static-exports","distance":0.2392},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2836},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.3005}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/exportPathMap","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/static-exports","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-9","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/generateBuildId","title":"generateBuildId","summary":"Configure the build id, which is used to identify the current build in which your application is being served.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/deploymentId"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-request"},{"site":"nextjs","path":"/docs/app/guides/building"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/deploymentId"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/generateBuildId","distance":0.0192},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/deploymentId","distance":0.3159},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/deploymentId","distance":0.3163},{"site":"nextjs","path":"/docs/pages/building-your-application","distance":0.3262},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/generateEtags","distance":0.3274}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/generateBuildId","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/deploymentId","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/deploymentId","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/generateEtags","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/generateEtags","title":"generateEtags","summary":"Next.js will generate etags for every page by default. Learn more about how to disable etag generation here.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/generateEtags","distance":0.0199},{"site":"nextjs","path":"/docs/pages/api-reference/config","distance":0.3072},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/poweredByHeader","distance":0.308},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/poweredByHeader","distance":0.3098},{"site":"nextjs","path":"/docs/app/api-reference/config","distance":0.3099}],"related":[{"site":"vercel-docs","path":"/docs/manage-cdn-usage","via":"inbound"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/generateEtags","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/poweredByHeader","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/poweredByHeader","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/staticGeneration","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/headers","title":"headers","summary":"Add custom HTTP headers to your Next.js app.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/basePath"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/images"},{"site":"nextjs","path":"/docs/app/guides/content-security-policy"},{"site":"nextjs","path":"/docs/app/guides/internationalization"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/image"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/rewrites"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata"},{"site":"nextjs","path":"/docs/app/guides/static-exports"},{"site":"nextjs","path":"/docs/pages/api-reference/components/image"},{"site":"nextjs","path":"/docs/pages/api-reference/components/image-legacy"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"},{"site":"vercel-docs","path":"/docs/caching/cache-control-headers"},{"site":"vercel-docs","path":"/docs/limits"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/headers","distance":0.0113},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2185},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","distance":0.229},{"site":"nextjs","path":"/docs/app/api-reference/functions/headers","distance":0.2346},{"site":"nextjs","path":"/docs/app/guides/content-security-policy","distance":0.2384}],"related":[{"site":"vercel-docs","path":"/docs/caching/cache-control-headers","via":"inbound"},{"site":"vercel-docs","path":"/docs/limits","via":"inbound"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/headers","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/headers","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/htmlLimitedBots","title":"htmlLimitedBots","summary":"Specify a list of user agents that should receive blocking metadata.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images"},{"site":"nextjs","path":"/docs/app/guides/streaming"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/robots","distance":0.2807},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.3561},{"site":"nextjs","path":"/docs/architecture/supported-browsers","distance":0.3623},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.3635},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/authInterrupts","distance":0.3703}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/robots","via":"neighbor"},{"site":"nextjs","path":"/docs/architecture/supported-browsers","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/authInterrupts","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/userAgent","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/httpAgentOptions","title":"httpAgentOptions","summary":"Next.js will automatically use HTTP Keep-Alive by default. Learn more about how to disable HTTP Keep-Alive here.","outbound":[{"site":"nextjs","path":"/docs/architecture/supported-browsers"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/httpAgentOptions","distance":0.0084},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.3127},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.3172},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch","distance":0.3211},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/crossOrigin","distance":0.333}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/httpAgentOptions","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/crossOrigin","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/onDemandEntries","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/images","title":"images","summary":"Custom configuration for the next/image loader","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/image"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/image"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/pages/api-reference/components/image"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/images","distance":0.0028},{"site":"nextjs","path":"/docs/app/getting-started/images","distance":0.1999},{"site":"nextjs","path":"/docs/pages/getting-started/images","distance":0.2024},{"site":"nextjs","path":"/docs/pages/api-reference/components/image-legacy","distance":0.2499},{"site":"nextjs","path":"/docs/pages/api-reference/components/image","distance":0.2529}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/images","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/images","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/images","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/components/image-legacy","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/components/image","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/incrementalCacheHandlerPath","title":"cacheHandler","summary":"Configure the Next.js cache used for storing and revalidating data to use any external service like Redis, Memcached, or others.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheHandlers"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheMaxMemorySize"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag"},{"site":"nextjs","path":"/docs/app/getting-started/deploying"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/runtime-integration"},{"site":"nextjs","path":"/docs/app/api-reference/components/image"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheMaxMemorySize"},{"site":"nextjs","path":"/docs/app/guides/deploying-to-platforms"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/runtime-integration"},{"site":"nextjs","path":"/docs/pages/api-reference/components/image"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheHandlers","distance":0.1907},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag","distance":0.2142},{"site":"nextjs","path":"/docs/app/getting-started/revalidating","distance":0.216},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works","distance":0.2293},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration","distance":0.236}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/revalidating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheLife","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/incremental-static-regeneration","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/inlineCss","title":"inlineCss","summary":"Enable inline CSS support.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/css-in-js","distance":0.2384},{"site":"nextjs","path":"/docs/app/getting-started/css","distance":0.2501},{"site":"nextjs","path":"/docs/pages/getting-started/css","distance":0.2647},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/useLightningcss","distance":0.2754},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/prefetchInlining","distance":0.2774}],"related":[{"site":"nextjs","path":"/docs/pages/guides/css-in-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/css","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/css","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/useLightningcss","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/prefetchInlining","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/instrumentationClientInject","title":"instrumentationClientInject","summary":"Inject additional client-side instrumentation modules before the user's `instrumentation-client.{js,ts}` file.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation-client"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation-client"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation-client","distance":0.1733},{"site":"nextjs","path":"/docs/pages/guides/instrumentation","distance":0.2568},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation","distance":0.2587},{"site":"nextjs","path":"/docs/app/guides/instrumentation","distance":0.259},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/instrumentation","distance":0.2662}],"related":[{"site":"nextjs","path":"/docs/pages/guides/instrumentation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/instrumentation","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/instrumentation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/lazy-loading","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/logging","title":"logging","summary":"Configure logging behavior in the terminal when running Next.js in development mode, including fetch logging, incoming requests, and forwarding browser console logs to the terminal.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverComponentsHmrCache"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverComponentsHmrCache"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data"},{"site":"nextjs","path":"/docs/app/guides/ai-agents"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/app/guides/local-development"},{"site":"nextjs","path":"/docs/pages/guides/incremental-static-regeneration"},{"site":"vercel-kb","path":"/kb/guide/add-structured-application-logs-to-vercel-functions"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/logging","distance":0.0253},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2146},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2151},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","distance":0.2658},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch","distance":0.2722}],"related":[{"site":"vercel-kb","path":"/kb/guide/add-structured-application-logs-to-vercel-functions","via":"inbound"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/logging","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/mdxRs","title":"mdxRs","summary":"Use the new Rust compiler to compile MDX files in the App Router.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/mdx","distance":0.2151},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/mdx-components","distance":0.2157},{"site":"nextjs","path":"/docs/pages/guides/mdx","distance":0.2194},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/pageExtensions","distance":0.2908},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.3145}],"related":[{"site":"nextjs","path":"/docs/app/guides/mdx","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/mdx-components","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/mdx","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/pageExtensions","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/optimizePackageImports","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/onDemandEntries","title":"onDemandEntries","summary":"Configure how Next.js will dispose and keep in memory pages created in development.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/onDemandEntries","distance":0.0092},{"site":"nextjs","path":"/docs/app/guides/memory-usage","distance":0.293},{"site":"nextjs","path":"/docs/pages/api-reference/config","distance":0.3017},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheMaxMemorySize","distance":0.3049},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.3141}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/onDemandEntries","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/memory-usage","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheMaxMemorySize","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/optimizePackageImports","title":"optimizePackageImports","summary":"API Reference for optimizePackageImports Next.js Config Option","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/transpilePackages"},{"site":"nextjs","path":"/docs/app/guides/package-bundling"},{"site":"nextjs","path":"/docs/architecture/nextjs-compiler"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/transpilePackages"},{"site":"nextjs","path":"/docs/pages/guides/package-bundling"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/optimizePackageImports","distance":0.0038},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2031},{"site":"nextjs","path":"/docs/pages/guides/package-bundling","distance":0.2146},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/serverExternalPackages","distance":0.2158},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverExternalPackages","distance":0.2219}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/optimizePackageImports","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/package-bundling","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/serverExternalPackages","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverExternalPackages","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/output","title":"output","summary":"Next.js automatically traces which files are needed by each page to allow for easy deployment of your application. Learn how it works here.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-function-250mb-limit"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/output","distance":0.0039},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2227},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.232},{"site":"nextjs","path":"/docs/app/guides/local-development","distance":0.2595},{"site":"nextjs","path":"/docs/app/guides/static-exports","distance":0.2725}],"related":[{"site":"vercel-docs","path":"/docs/functions/limitations","via":"inbound"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json","via":"inbound"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-function-250mb-limit","via":"inbound"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/output","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/local-development","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/output-types","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/outputHashSalt","title":"outputHashSalt","summary":"Learn how to incorporate a custom salt string into content-addressed output filenames.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/trailingSlash","distance":0.3577},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.3613},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/trailingSlash","distance":0.3692},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.3858},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/generateBuildId","distance":0.3932}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/trailingSlash","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/trailingSlash","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/generateBuildId","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/sassOptions","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/pageExtensions","title":"pageExtensions","summary":"Extend the default page extensions used by Next.js when resolving pages in the Pages Router.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/guides/instrumentation"},{"site":"nextjs","path":"/docs/app/guides/open-telemetry"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/pages/guides/instrumentation"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/pageExtensions","distance":0.0498},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2521},{"site":"nextjs","path":"/docs/pages/api-reference/config","distance":0.2664},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2715},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/bundlePagesRouterDependencies","distance":0.2755}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/pageExtensions","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/bundlePagesRouterDependencies","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/mdxRs","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/partialPrefetching","title":"partialPrefetching","summary":"Configure the default link prefetch behavior to fetch only the static parts of each route.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/prefetch"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/prefetch"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components"},{"site":"nextjs","path":"/docs/app/guides/offline-support"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching"},{"site":"nextjs","path":"/docs/app/guides/prefetching"},{"site":"nextjs","path":"/docs/app/guides/upgrading/codemods"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/codemods"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/prefetch","distance":0.0723},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching","distance":0.1027},{"site":"nextjs","path":"/docs/app/guides/prefetching","distance":0.1156},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/prefetchInlining","distance":0.142},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.2098}],"related":[{"site":"nextjs","path":"/docs/app/guides/prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/prefetchInlining","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/poweredByHeader","title":"poweredByHeader","summary":"Next.js will add the `x-powered-by` header by default. Learn to opt-out of it here.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/poweredByHeader","distance":0.0119},{"site":"nextjs","path":"/docs/pages/api-reference/config","distance":0.3086},{"site":"nextjs","path":"/docs/app/api-reference/config","distance":0.3089},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/generateEtags","distance":0.3098},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.3126}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/poweredByHeader","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/generateEtags","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/headers","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/prefetchInlining","title":"prefetchInlining","summary":"Override how the App Router bundles small prefetch responses together.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/guides/prefetching"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/partialPrefetching","distance":0.142},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/prefetch","distance":0.1475},{"site":"nextjs","path":"/docs/app/guides/prefetching","distance":0.1552},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching","distance":0.1738},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.2231}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/partialPrefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/prefetch","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/productionBrowserSourceMaps","title":"productionBrowserSourceMaps","summary":"Enables browser source map generation during the production build.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/productionBrowserSourceMaps","distance":0.0074},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.3456},{"site":"nextjs","path":"/docs/architecture/supported-browsers","distance":0.3457},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.3492},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/exportPathMap","distance":0.3544}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/productionBrowserSourceMaps","via":"neighbor"},{"site":"nextjs","path":"/docs/architecture/supported-browsers","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/exportPathMap","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/typescript","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/proxyClientMaxBodySize","title":"proxyClientMaxBodySize","summary":"Configure the maximum request body size when using proxy.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/proxyClientMaxBodySize","distance":0.0138},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheMaxMemorySize","distance":0.3091},{"site":"nextjs","path":"/docs/app/getting-started/proxy","distance":0.3113},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/reactMaxHeadersLength","distance":0.3495},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy","distance":0.3599}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/proxyClientMaxBodySize","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next/examples/proxy","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheMaxMemorySize","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/proxy","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/reactMaxHeadersLength","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/reactCompiler","title":"reactCompiler","summary":"Enable the React Compiler to automatically optimize component rendering.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackRustReactCompiler"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/architecture/nextjs-compiler","distance":0.2135},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackRustReactCompiler","distance":0.2355},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/optimizePackageImports","distance":0.2607},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/optimizePackageImports","distance":0.2625},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2803}],"related":[{"site":"nextjs","path":"/docs/architecture/nextjs-compiler","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackRustReactCompiler","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/optimizePackageImports","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/optimizePackageImports","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-11","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/reactMaxHeadersLength","title":"reactMaxHeadersLength","summary":"The maximum length of the headers that are emitted by React and added to the response.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/maxDuration","distance":0.287},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheMaxMemorySize","distance":0.3001},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/headers","distance":0.3423},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/proxyClientMaxBodySize","distance":0.3444},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/headers","distance":0.3455}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/maxDuration","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheMaxMemorySize","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/headers","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/proxyClientMaxBodySize","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/headers","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/reactStrictMode","title":"reactStrictMode","summary":"The complete Next.js runtime is now Strict Mode-compliant, learn how to opt-in","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/reactStrictMode","distance":0.0114},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-11","distance":0.2757},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.292},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2926},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering","distance":0.3028}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/reactStrictMode","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-11","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/redirects","title":"redirects","summary":"Add redirects to your Next.js app.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/basePath"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/guides/internationalization"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-server-side-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/api-routes"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/rewrites"},{"site":"nextjs","path":"/docs/app/getting-started/proxy"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/redirecting"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/app/guides/static-exports"},{"site":"nextjs","path":"/docs/app/guides/streaming"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/pages/guides/redirecting"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/redirects","distance":0.0025},{"site":"nextjs","path":"/docs/app/guides/redirecting","distance":0.1297},{"site":"nextjs","path":"/docs/pages/guides/redirecting","distance":0.146},{"site":"nextjs","path":"/docs/app/api-reference/functions/redirect","distance":0.1499},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/rewrites","distance":0.1691}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/redirecting","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/redirecting","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/redirect","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/rewrites","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/rewrites","title":"rewrites","summary":"Add rewrites to your Next.js app.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/basePath"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/headers"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/redirects"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/public-folder"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/automatic-static-optimization"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidatePath"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-pathname"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/app/guides/multi-zones"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/app/guides/static-exports"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/pages/guides/multi-zones"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting"},{"site":"vercel-docs","path":"/docs/incremental-migration"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/routing/rewrites"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/rewrites","distance":0.0045},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/redirects","distance":0.1751},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/redirects","distance":0.178},{"site":"vercel-docs","path":"/docs/routing/rewrites","distance":0.2096},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/headers","distance":0.2637}],"related":[{"site":"vercel-docs","path":"/docs/incremental-migration","via":"inbound"},{"site":"vercel-docs","path":"/docs/limits","via":"inbound"},{"site":"vercel-docs","path":"/docs/routing/rewrites","via":"inbound"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/rewrites","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/redirects","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/headers","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/redirecting","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/redirecting","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/sassOptions","title":"sassOptions","summary":"Configure Sass options.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/sass","distance":0.1601},{"site":"nextjs","path":"/docs/pages/guides/sass","distance":0.1748},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2825},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2858},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/useLightningcss","distance":0.3058}],"related":[{"site":"nextjs","path":"/docs/app/guides/sass","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/sass","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/useLightningcss","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/useLightningcss","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverActions","title":"serverActions","summary":"Configure Server Actions behavior in your Next.js application.","outbound":[{"site":"nextjs","path":"/docs/app/guides/server-actions"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/guides/data-security"},{"site":"nextjs","path":"/docs/app/guides/multi-zones"},{"site":"nextjs","path":"/docs/app/guides/server-actions"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/server-actions","distance":0.1876},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data","distance":0.2478},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-server","distance":0.2614},{"site":"nextjs","path":"/docs/app/guides/forms","distance":0.2898},{"site":"nextjs","path":"/docs/app/guides/data-security","distance":0.3026}],"related":[{"site":"nextjs","path":"/docs/app/getting-started/mutating-data","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-server","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/forms","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/data-security","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverComponentsHmrCache","title":"serverComponentsHmrCache","summary":"Configure whether fetch responses in Server Components are cached across HMR refresh requests.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/logging"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/logging"},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch"},{"site":"nextjs","path":"/docs/app/guides/local-development"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch","distance":0.2095},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents","distance":0.2401},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheLife","distance":0.2914},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheMaxMemorySize","distance":0.2949},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","distance":0.3083}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheLife","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheMaxMemorySize","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverExternalPackages","title":"serverExternalPackages","summary":"Opt-out specific dependencies from the Server Components bundling and use native Node.js `require`.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"}],"inbound":[{"site":"ai-sdk","path":"/providers/observability/laminar"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/transpilePackages"},{"site":"nextjs","path":"/docs/app/guides/package-bundling"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/transpilePackages"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/serverExternalPackages","distance":0.0501},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2159},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/optimizePackageImports","distance":0.2196},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/optimizePackageImports","distance":0.2219},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/bundlePagesRouterDependencies","distance":0.2233}],"related":[{"site":"ai-sdk","path":"/providers/observability/laminar","via":"inbound"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/serverExternalPackages","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/optimizePackageImports","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/optimizePackageImports","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/bundlePagesRouterDependencies","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/transpilePackages","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/staleTimes","title":"staleTimes","summary":"Learn how to override the invalidation time of the client cache.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"},{"site":"nextjs","path":"/docs/app/glossary"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/prefetching"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/expireTime","distance":0.2277},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","distance":0.3083},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheLife","distance":0.3297},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_noStore","distance":0.3342},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_cache","distance":0.3355}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/expireTime","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheLife","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_noStore","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_cache","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/staticGeneration","title":"staticGeneration*","summary":"Learn how to configure static generation in your Next.js application.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/static-exports","distance":0.2663},{"site":"nextjs","path":"/docs/app/guides/static-exports","distance":0.2771},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2803},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2806},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/static-site-generation","distance":0.2811}],"related":[{"site":"nextjs","path":"/docs/pages/guides/static-exports","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/static-exports","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/static-site-generation","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/automatic-static-optimization","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/supportsImmutableAssets","title":"supportsImmutableAssets","summary":"Configure support for immutable static assets","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/adapters"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/immutable-static-assets"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/immutable-static-assets"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/immutable-static-assets","distance":0.1283},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.3322},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.3503},{"site":"nextjs","path":"/docs/app/guides/static-exports","distance":0.3527},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/assetPrefix","distance":0.3541}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/static-exports","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/assetPrefix","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/assetPrefix","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/static-exports","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/taint","title":"taint","summary":"Enable tainting Objects and Values.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data"},{"site":"nextjs","path":"/docs/app/guides/data-security"},{"site":"nextjs","path":"/docs/app/guides/production-checklist"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.3418},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components","distance":0.3512},{"site":"nextjs","path":"/docs/app/api-reference/functions/forbidden","distance":0.3555},{"site":"nextjs","path":"/docs/app/guides/css-in-js","distance":0.3564},{"site":"nextjs","path":"/docs/app/guides/data-security","distance":0.3588}],"related":[{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/forbidden","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/css-in-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/data-security","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-client","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/trailingSlash","title":"trailingSlash","summary":"Configure Next.js pages to resolve with or without a trailing slash.","outbound":[{"site":"nextjs","path":"/docs/app/guides/static-exports"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidatePath"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/trailingSlash","distance":0.0065},{"site":"nextjs","path":"/docs/pages/api-reference/config","distance":0.2891},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.3064},{"site":"nextjs","path":"/docs/pages/guides/static-exports","distance":0.3069},{"site":"nextjs","path":"/docs/app/api-reference/config","distance":0.3085}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/trailingSlash","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/static-exports","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/transpilePackages","title":"transpilePackages","summary":"Transpile and bundle dependencies from monorepo workspace packages or `node_modules` libraries that ship TypeScript, JSX, or modern syntax.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/optimizePackageImports"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverExternalPackages"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/pages/guides/package-bundling"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/transpilePackages","distance":0.0108},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverExternalPackages","distance":0.233},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/serverExternalPackages","distance":0.2539},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2657},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/optimizePackageImports","distance":0.2675}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/transpilePackages","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/serverExternalPackages","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/optimizePackageImports","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/bundlePagesRouterDependencies","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopack","title":"turbopack","summary":"Configure Next.js with Turbopack-specific options","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/edge"},{"site":"nextjs","path":"/docs/app/api-reference/turbopack"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackIgnoreIssue"},{"site":"nextjs","path":"/docs/app/api-reference/turbopack"},{"site":"nextjs","path":"/docs/app/guides/local-development"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"},{"site":"nextjs","path":"/docs/pages/api-reference/turbopack"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopack","distance":0.0009},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackIgnoreIssue","distance":0.1771},{"site":"nextjs","path":"/docs/app/api-reference/turbopack","distance":0.2014},{"site":"nextjs","path":"/docs/pages/api-reference/turbopack","distance":0.2087},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackRustReactCompiler","distance":0.2186}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopack","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/turbo-codemod","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackIgnoreIssue","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/turbopack","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackRustReactCompiler","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackChunking","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackChunking","title":"turbopackChunking","summary":"Configure how Turbopack splits your client-side JavaScript into chunks in production.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopackChunking","distance":0.0175},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopack","distance":0.222},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopack","distance":0.2248},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cssChunking","distance":0.2362},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2544}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopackChunking","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopack","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopack","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cssChunking","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackMemoryEviction","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackFileSystemCache","title":"turbopackFileSystemCache","summary":"Learn how to enable and configure FileSystem Caching for Turbopack builds","outbound":[{"site":"nextjs","path":"/docs/app/guides/ci-build-caching"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackMemoryEviction"},{"site":"nextjs","path":"/docs/app/api-reference/turbopack"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"},{"site":"nextjs","path":"/docs/pages/api-reference/turbopack"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackMemoryEviction","distance":0.1759},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLocalPostcssConfig","distance":0.2579},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopack","distance":0.2642},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopack","distance":0.2654},{"site":"nextjs","path":"/docs/pages/guides/ci-build-caching","distance":0.2747}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackMemoryEviction","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/caching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLocalPostcssConfig","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopack","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopack","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/ci-build-caching","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackIgnoreIssue","title":"turbopack.ignoreIssue","summary":"Suppress specific Turbopack errors and warnings from the CLI output and error overlay.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopack"},{"site":"nextjs","path":"/docs/app/api-reference/turbopack"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/turbopack"},{"site":"nextjs","path":"/docs/pages/api-reference/turbopack"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopack","distance":0.1771},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopack","distance":0.1774},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLocalPostcssConfig","distance":0.2403},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackMemoryEviction","distance":0.2552},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackRustReactCompiler","distance":0.2612}],"related":[{"site":"turborepo","path":"/docs/reference/turbo-ignore","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopack","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLocalPostcssConfig","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackMemoryEviction","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackRustReactCompiler","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackChunking","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLocalPostcssConfig","title":"turbopackLocalPostcssConfig","summary":"Enable per-directory PostCSS config resolution in Turbopack so that the config closest to each CSS file takes precedence over the project root config.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/turbopack"},{"site":"nextjs","path":"/docs/pages/api-reference/turbopack"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopack","distance":0.2347},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopack","distance":0.2354},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackIgnoreIssue","distance":0.2403},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackFileSystemCache","distance":0.2579},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/useLightningcss","distance":0.2721}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopack","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopack","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackIgnoreIssue","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackFileSystemCache","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/useLightningcss","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackMemoryEviction","title":"turbopackMemoryEviction","summary":"Learn how to control Turbopack's memory eviction strategy for the persistent cache.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackFileSystemCache"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackFileSystemCache","distance":0.1759},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackIgnoreIssue","distance":0.2552},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackRustReactCompiler","distance":0.2604},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackChunking","distance":0.2608},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopackChunking","distance":0.2617}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackIgnoreIssue","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackRustReactCompiler","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackChunking","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopackChunking","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopack","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackRustReactCompiler","title":"turbopackRustReactCompiler","summary":"Use the native Rust port of the React Compiler with Turbopack instead of the Babel transform.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/reactCompiler"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopack","distance":0.2162},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopack","distance":0.2186},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/reactCompiler","distance":0.2355},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/useLightningcss","distance":0.2497},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/useLightningcss","distance":0.2533}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopack","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopack","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/useLightningcss","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/useLightningcss","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackMemoryEviction","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/typedRoutes","title":"typedRoutes","summary":"Enable support for statically typed links.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/typescript"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/typescript","distance":0.261},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/typescript","distance":0.2632},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","distance":0.2823},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/bundlePagesRouterDependencies","distance":0.296},{"site":"nextjs","path":"/docs/pages/api-reference/config","distance":0.2965}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/typescript","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/typescript","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/bundlePagesRouterDependencies","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/typescript","title":"typescript","summary":"Configure how Next.js handles TypeScript errors during production builds and specify a custom tsconfig file.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/typescript"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/config/typescript"},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/typescript","distance":0.0395},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","distance":0.1903},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/useTypeScriptCli","distance":0.1925},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/useTypeScriptCli","distance":0.1941},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2306}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/typescript","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/useTypeScriptCli","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/useTypeScriptCli","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/urlImports","title":"urlImports","summary":"Configure Next.js to allow importing modules from external URLs.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/edge"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/urlImports","distance":0.0029},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2651},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/optimizePackageImports","distance":0.2743},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/optimizePackageImports","distance":0.2744},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.277}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/urlImports","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/optimizePackageImports","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/optimizePackageImports","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/lazy-loading","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/useLightningcss","title":"useLightningcss","summary":"Enable experimental support for Lightning CSS.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/useLightningcss","distance":0.0019},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopack","distance":0.2293},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopack","distance":0.2299},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2396},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackRustReactCompiler","distance":0.2533}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/useLightningcss","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopack","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopack","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackRustReactCompiler","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/useOffline","title":"useOffline","summary":"Learn how to enable the experimental `useOffline` configuration option to detect connectivity and retry failed requests automatically.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions/use-offline"},{"site":"nextjs","path":"/docs/app/guides/prefetching"},{"site":"nextjs","path":"/docs/app/guides/progressive-web-apps"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-offline"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"},{"site":"nextjs","path":"/docs/app/guides/offline-support"},{"site":"nextjs","path":"/docs/app/guides/progressive-web-apps"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/functions/use-offline","distance":0.0622},{"site":"nextjs","path":"/docs/app/guides/offline-support","distance":0.1233},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/prefetchInlining","distance":0.2882},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2963},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.3031}],"related":[{"site":"nextjs","path":"/docs/app/guides/offline-support","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/prefetchInlining","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/useTypeScriptCli","title":"useTypeScriptCli","summary":"Run the project-local TypeScript CLI for type checking during production builds.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/cli/next"},{"site":"nextjs","path":"/docs/app/api-reference/config/typescript"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/config/typescript"},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/useTypeScriptCli","distance":0.0029},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/typescript","distance":0.1941},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/typescript","distance":0.1954},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","distance":0.206},{"site":"nextjs","path":"/docs/app/api-reference/config/typescript","distance":0.2673}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/useTypeScriptCli","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/typescript","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/typescript","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/typescript","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/webVitalsAttribution","title":"webVitalsAttribution","summary":"Learn how to use the webVitalsAttribution option to pinpoint the source of Web Vitals issues.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/webVitalsAttribution","distance":0.0102},{"site":"nextjs","path":"/docs/app/guides/analytics","distance":0.24},{"site":"nextjs","path":"/docs/pages/guides/analytics","distance":0.2543},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-report-web-vitals","distance":0.2665},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-report-web-vitals","distance":0.2682}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/webVitalsAttribution","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/analytics","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/analytics","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-report-web-vitals","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-report-web-vitals","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/webpack","title":"webpack","summary":"Learn how to customize the webpack config used by Next.js","outbound":[{"site":"nextjs","path":"/docs/app/getting-started/css"},{"site":"nextjs","path":"/docs/app/guides/sass"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/guides/memory-usage"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/webpack","distance":0.0043},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2033},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2151},{"site":"nextjs","path":"/docs/pages/guides/babel","distance":0.2468},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/env","distance":0.2629}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/webpack","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/babel","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/env","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/env","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/typescript","title":"TypeScript","summary":"Next.js provides a TypeScript-first development experience for building your React application.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/cli/next"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/typescript"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/useTypeScriptCli"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data"},{"site":"nextjs","path":"/docs/app/guides/environment-variables"},{"site":"nextjs","path":"/docs/architecture/nextjs-compiler"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/typedRoutes"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/typescript"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/useTypeScriptCli"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/manifest"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-viewport"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-root-params"},{"site":"nextjs","path":"/docs/app/getting-started/installation"},{"site":"nextjs","path":"/docs/app/getting-started/project-structure"},{"site":"nextjs","path":"/docs/app/guides/memory-usage"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-vite"},{"site":"nextjs","path":"/docs/app/guides/production-checklist"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/typescript"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/useTypeScriptCli"},{"site":"nextjs","path":"/docs/pages/getting-started/installation"},{"site":"nextjs","path":"/docs/pages/getting-started/project-structure"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-vite"},{"site":"nextjs","path":"/docs/pages/guides/production-checklist"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","distance":0.1251},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/typescript","distance":0.2369},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/typescript","distance":0.2438},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/useTypeScriptCli","distance":0.2634},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/useTypeScriptCli","distance":0.2673}],"related":[{"site":"turborepo","path":"/docs/guides/tools/typescript","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/typescript","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/useTypeScriptCli","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/directives","title":"Directives","summary":"Learn how React and Next.js directives define client entry points, Server Functions, and cached output.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheHandlers"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-private"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-client"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-server"},{"site":"nextjs","path":"/docs/app/glossary"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference"},{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary"}],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/directives/use-client","distance":0.2096},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-private","distance":0.2242},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-server","distance":0.2302},{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary","distance":0.2352},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components","distance":0.2554}],"related":[{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/lazy-loading","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache","title":"use cache","summary":"Learn how to use the \"use cache\" directive to cache data in your Next.js application.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheHandlers"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheLife"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheMaxMemorySize"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/deploymentId"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-private"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/draft-mode"},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-root-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_cache"},{"site":"nextjs","path":"/docs/app/api-reference/functions/updateTag"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/deploying"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/draft-mode"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheHandlers"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheLife"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheMaxMemorySize"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/deploymentId"},{"site":"nextjs","path":"/docs/app/api-reference/directives"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-private"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/instant"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/draft-mode"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata"},{"site":"nextjs","path":"/docs/app/api-reference/functions/io"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-root-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_cache"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data"},{"site":"nextjs","path":"/docs/app/getting-started/revalidating"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components"},{"site":"nextjs","path":"/docs/app/guides/building"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/tanstack-query"},{"site":"nextjs","path":"/docs/app/guides/draft-mode"},{"site":"nextjs","path":"/docs/app/guides/interactive-apps"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/public-static-pages"},{"site":"nextjs","path":"/docs/app/guides/rendering-philosophy"},{"site":"nextjs","path":"/docs/app/guides/streaming"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/deploymentId"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"},{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/directives"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife","distance":0.1269},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components","distance":0.156},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote","distance":0.1805},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data","distance":0.2025},{"site":"nextjs","path":"/docs/app/getting-started/caching","distance":0.2031}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute","via":"inbound"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/revalidating","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-private","title":"use cache: private","summary":"Learn how to use the \"use cache: private\" directive to cache functions that access runtime request APIs.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/connection"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/glossary"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheHandlers"},{"site":"nextjs","path":"/docs/app/api-reference/directives"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components"},{"site":"nextjs","path":"/docs/app/guides/instant-navigation"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/directives"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheLife","distance":0.1818},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents","distance":0.1907},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag","distance":0.2102},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_cache","distance":0.214},{"site":"nextjs","path":"/docs/app/api-reference/directives","distance":0.2242}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheLife","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_cache","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/revalidating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/incrementalCacheHandlerPath","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote","title":"use cache: remote","summary":"Learn how to use the \"use cache: remote\" directive for persistent, shared caching using remote cache handlers.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheHandlers"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-private"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/connection"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies"},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch"},{"site":"nextjs","path":"/docs/app/api-reference/functions/headers"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_cache"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/deploying"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheHandlers"},{"site":"nextjs","path":"/docs/app/api-reference/directives"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-private"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components"},{"site":"nextjs","path":"/docs/app/guides/instant-navigation"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/directives"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife","distance":0.177},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache","distance":0.1805},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data","distance":0.2026},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components","distance":0.2286},{"site":"nextjs","path":"/docs/app/getting-started/caching","distance":0.2345}],"related":[{"site":"vercel-docs","path":"/docs/caching/runtime-cache","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/tanstack-query","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/streaming","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-client","title":"use client","summary":"Learn how to use the use client directive to render a component on the client.","outbound":[{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/directives"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/directives"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components","distance":0.1408},{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary","distance":0.1516},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-server","distance":0.1936},{"site":"nextjs","path":"/docs/app/api-reference/directives","distance":0.2096},{"site":"nextjs","path":"/docs/app/guides/css-in-js","distance":0.2339}],"related":[{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-server","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/css-in-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/lazy-loading","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/lazy-loading","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-server","title":"use server","summary":"Learn how to use the use server directive to execute code on the server.","outbound":[{"site":"nextjs","path":"/docs/app/guides/data-security"},{"site":"nextjs","path":"/docs/app/guides/server-actions"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/directives"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/server-actions"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/proxy"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/directives"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/mutating-data","distance":0.143},{"site":"nextjs","path":"/docs/app/guides/server-actions","distance":0.1599},{"site":"nextjs","path":"/docs/app/guides/forms","distance":0.1868},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-client","distance":0.1936},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components","distance":0.2185}],"related":[{"site":"nextjs","path":"/docs/app/getting-started/mutating-data","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/forms","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-client","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/edge","title":"Edge Runtime","summary":"API Reference for the Edge Runtime.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/guides/environment-variables"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopack"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/urlImports"},{"site":"nextjs","path":"/docs/app/guides/instrumentation"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopack"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/urlImports"},{"site":"nextjs","path":"/docs/pages/guides/instrumentation"}],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/edge","distance":0.0056},{"site":"vercel-docs","path":"/docs/functions/runtimes/edge","distance":0.1624},{"site":"nextjs","path":"/docs/app/api-reference/functions","distance":0.3029},{"site":"nextjs","path":"/docs/app/api-reference/adapters/invoking-entrypoints","distance":0.3081},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.3134}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/edge","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/edge","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-globals","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/invoking-entrypoints","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/invoking-entrypoints","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions","title":"File-system conventions","summary":"API Reference for Next.js file-system conventions.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/default"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/error"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/forbidden"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation-client"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/intercepting-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/mdx-components"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/public-folder"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-groups"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/src-folder"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/template"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/unauthorized"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration"}],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions","distance":0.0526},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata","distance":0.15},{"site":"nextjs","path":"/docs/pages/getting-started/project-structure","distance":0.1565},{"site":"nextjs","path":"/docs/app/api-reference","distance":0.1725},{"site":"nextjs","path":"/docs/app/api-reference/functions","distance":0.1977}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/project-structure","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/default","title":"default.js","summary":"API Reference for the default.js file.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes"},{"site":"nextjs","path":"/docs/app/getting-started/project-structure"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes","distance":0.2081},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions","distance":0.2614},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found","distance":0.2706},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.2738},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.2766}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/internationalization","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes","title":"Dynamic Segments","summary":"Use Dynamic Segments to read URL path params and generate routes from dynamic data.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-root-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-params"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/glossary"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/default"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/app-icons"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-image-metadata"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-root-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-selected-layout-segment"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-selected-layout-segments"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-vite"},{"site":"nextjs","path":"/docs/app/guides/static-exports"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-vite"},{"site":"nextjs","path":"/docs/pages/guides/static-exports"},{"site":"vercel-docs","path":"/docs/cron-jobs/manage-cron-jobs"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-kb","path":"/kb/guide/how-to-internationalise-error-pages-in-next-js-app-router"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params","distance":0.073},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.1566},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-root-params","distance":0.1683},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page","distance":0.1712},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths","distance":0.1864}],"related":[{"site":"vercel-docs","path":"/docs/cron-jobs/manage-cron-jobs","via":"inbound"},{"site":"vercel-docs","path":"/docs/limits","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-internationalise-error-pages-in-next-js-app-router","via":"inbound"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/dynamic-routes","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-params","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/error","title":"error.js","summary":"API reference for the error.js special file.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions/catchError"},{"site":"nextjs","path":"/docs/app/getting-started/error-handling"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images"},{"site":"nextjs","path":"/docs/app/getting-started/project-structure"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/app/guides/internationalization"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"},{"site":"nextjs","path":"/docs/app/api-reference/functions/catchError"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/error-handling"},{"site":"nextjs","path":"/docs/app/getting-started/project-structure"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/interactive-apps"},{"site":"nextjs","path":"/docs/app/guides/production-checklist"},{"site":"nextjs","path":"/docs/app/guides/streaming"},{"site":"vercel-kb","path":"/kb/guide/how-to-internationalise-error-pages-in-next-js-app-router"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/error-handling","distance":0.107},{"site":"nextjs","path":"/docs/app/api-reference/functions/catchError","distance":0.1521},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring/error-handling","distance":0.1947},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found","distance":0.2183},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-error","distance":0.2344}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-internationalise-error-pages-in-next-js-app-router","via":"inbound"},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring/error-handling","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-error","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/forbidden","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/forbidden","title":"forbidden.js","summary":"API reference for the forbidden.js special file.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions/forbidden"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/authInterrupts"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"},{"site":"nextjs","path":"/docs/app/api-reference/functions/forbidden"},{"site":"nextjs","path":"/docs/app/getting-started/upgrading"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/functions/forbidden","distance":0.1144},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/unauthorized","distance":0.1501},{"site":"nextjs","path":"/docs/app/api-reference/functions/unauthorized","distance":0.2195},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/authInterrupts","distance":0.2312},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found","distance":0.2331}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/unauthorized","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unauthorized","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/authInterrupts","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation","title":"instrumentation.js","summary":"API reference for the instrumentation.js file.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/src-folder"},{"site":"nextjs","path":"/docs/app/guides/instrumentation"}],"inbound":[{"site":"ai-sdk","path":"/providers/observability/laminar"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"},{"site":"nextjs","path":"/docs/app/guides/building"},{"site":"nextjs","path":"/docs/app/guides/instrumentation"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/instrumentation","distance":0.0079},{"site":"nextjs","path":"/docs/app/guides/instrumentation","distance":0.1241},{"site":"nextjs","path":"/docs/pages/guides/instrumentation","distance":0.1306},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation-client","distance":0.1426},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/instrumentationClientInject","distance":0.2587}],"related":[{"site":"ai-sdk","path":"/providers/observability/laminar","via":"inbound"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/instrumentation","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/instrumentation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation-client","via":"neighbor"},{"site":"vercel-docs","path":"/docs/tracing/instrumentation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/instrumentationClientInject","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation-client","title":"instrumentation-client.js","summary":"Learn how to add client-side instrumentation to track and monitor your Next.js application's frontend performance.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/instrumentationClientInject"},{"site":"nextjs","path":"/docs/app/guides/instrumentation"},{"site":"nextjs","path":"/docs/architecture/supported-browsers"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/instrumentationClientInject"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"},{"site":"nextjs","path":"/docs/architecture/supported-browsers"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/instrumentation","distance":0.1415},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation","distance":0.1426},{"site":"nextjs","path":"/docs/pages/guides/instrumentation","distance":0.1685},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/instrumentationClientInject","distance":0.1733},{"site":"nextjs","path":"/docs/app/guides/instrumentation","distance":0.1748}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/instrumentation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/instrumentation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-router","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/analytics","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/intercepting-routes","title":"Intercepting Routes","summary":"Use intercepting routes to load a new route within the current layout while masking the browser URL, useful for advanced routing patterns such as modals.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes"},{"site":"nextjs","path":"/docs/app/getting-started/project-structure"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/cdn-caching"},{"site":"nextjs","path":"/docs/app/guides/static-exports"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes","distance":0.2033},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating","distance":0.31},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.3132},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/dynamic-routes","distance":0.3172},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.3258}],"related":[{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/dynamic-routes","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/route-handlers","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout","title":"layout.js","summary":"API reference for the layout.js file.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-groups"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies"},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata"},{"site":"nextjs","path":"/docs/app/api-reference/functions/headers"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-root-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-pathname"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-search-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-selected-layout-segment"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-selected-layout-segments"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/error-handling"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images"},{"site":"nextjs","path":"/docs/app/getting-started/project-structure"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/app/guides/internationalization"},{"site":"nextjs","path":"/docs/app/guides/upgrading/codemods"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/font"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/appDir"},{"site":"nextjs","path":"/docs/app/api-reference/config/typescript"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-groups"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config"},{"site":"nextjs","path":"/docs/app/api-reference/functions/forbidden"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-viewport"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-root-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unauthorized"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-search-params"},{"site":"nextjs","path":"/docs/app/getting-started/fonts"},{"site":"nextjs","path":"/docs/app/getting-started/installation"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images"},{"site":"nextjs","path":"/docs/app/getting-started/project-structure"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/authentication"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components"},{"site":"nextjs","path":"/docs/app/guides/css-in-js"},{"site":"nextjs","path":"/docs/app/guides/internationalization"},{"site":"nextjs","path":"/docs/app/guides/mdx"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-vite"},{"site":"nextjs","path":"/docs/app/guides/production-checklist"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-vite"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.2001},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","distance":0.2278},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching","distance":0.2455},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes","distance":0.253},{"site":"nextjs","path":"/docs/app/api-reference/components/link","distance":0.253}],"related":[{"site":"vercel-docs","path":"/docs/analytics/package","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/components/link","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading","title":"loading.js","summary":"API reference for the loading.js file.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata"},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found"},{"site":"nextjs","path":"/docs/app/api-reference/functions/redirect"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/deploying"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"},{"site":"nextjs","path":"/docs/app/getting-started/project-structure"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/app/guides/streaming"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/form"},{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/appDir"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/devIndicators"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/staleTimes"},{"site":"nextjs","path":"/docs/app/api-reference/edge"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes"},{"site":"nextjs","path":"/docs/app/api-reference/functions/forbidden"},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unauthorized"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-link-status"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-offline"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-search-params"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"},{"site":"nextjs","path":"/docs/app/getting-started/project-structure"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components"},{"site":"nextjs","path":"/docs/app/guides/building"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-vite"},{"site":"nextjs","path":"/docs/app/guides/offline-support"},{"site":"nextjs","path":"/docs/app/guides/prefetching"},{"site":"nextjs","path":"/docs/app/guides/production-checklist"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/app/guides/streaming"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15"},{"site":"nextjs","path":"/docs/app/guides/videos"},{"site":"nextjs","path":"/docs/pages/api-reference/edge"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/client-side-rendering"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-vite"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.1726},{"site":"nextjs","path":"/docs/app/guides/streaming","distance":0.1949},{"site":"nextjs","path":"/docs/app/guides/lazy-loading","distance":0.2176},{"site":"nextjs","path":"/docs/app/glossary","distance":0.2212},{"site":"nextjs","path":"/docs/app/guides/rendering-philosophy","distance":0.2511}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"inbound"},{"site":"nextjs","path":"/docs/app/guides/lazy-loading","via":"neighbor"},{"site":"nextjs","path":"/docs/app/glossary","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/rendering-philosophy","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/lazy-loading","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/mdx-components","title":"mdx-components.js","summary":"API reference for the mdx-components.js file.","outbound":[{"site":"nextjs","path":"/docs/app/guides/mdx"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"},{"site":"nextjs","path":"/docs/app/guides/mdx"},{"site":"nextjs","path":"/docs/pages/guides/mdx"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/mdxRs","distance":0.2157},{"site":"nextjs","path":"/docs/app/guides/mdx","distance":0.221},{"site":"nextjs","path":"/docs/pages/guides/mdx","distance":0.2233},{"site":"nextjs","path":"/docs/app/api-reference/components","distance":0.2864},{"site":"nextjs","path":"/docs/pages/api-reference/components","distance":0.2946}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/mdxRs","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/mdx","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/components","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata","title":"Metadata Files","summary":"API documentation for the metadata file conventions.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/app-icons"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/manifest"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/robots"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/sitemap"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/public-folder"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-image-metadata"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-viewport"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images"},{"site":"nextjs","path":"/docs/app/getting-started/route-handlers"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/serving-static-files"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions","distance":0.15},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images","distance":0.1581},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions","distance":0.1923},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/app-icons","distance":0.2276},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-image-metadata","distance":0.2339}],"related":[{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/serving-static-files","via":"inbound"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-image-metadata","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/project-structure","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/app-icons","title":"favicon, icon, and apple-icon","summary":"API Reference for the Favicon, Icon and Apple Icon file conventions.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-image-metadata"},{"site":"nextjs","path":"/docs/app/api-reference/functions/image-response"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images"},{"site":"nextjs","path":"/docs/app/getting-started/project-structure"},{"site":"nextjs","path":"/docs/app/getting-started/route-handlers"},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image","distance":0.1796},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-image-metadata","distance":0.2069},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images","distance":0.2152},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata","distance":0.2276},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions","distance":0.2463}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-viewport","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/manifest","title":"manifest.json","summary":"API Reference for manifest.json file.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/typescript"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata"},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend"},{"site":"nextjs","path":"/docs/app/guides/progressive-web-apps"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata","distance":0.2551},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images","distance":0.2909},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions","distance":0.3072},{"site":"nextjs","path":"/docs/app/api-reference/config","distance":0.3248},{"site":"nextjs","path":"/docs/pages/getting-started/installation","distance":0.3336}],"related":[{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/installation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/app-icons","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image","title":"opengraph-image and twitter-image","summary":"API Reference for the Open Graph Image and Twitter Image file conventions.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config"},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-image-metadata"},{"site":"nextjs","path":"/docs/app/api-reference/functions/image-response"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-image-metadata"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata"},{"site":"nextjs","path":"/docs/app/api-reference/functions/image-response"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images"},{"site":"nextjs","path":"/docs/app/getting-started/project-structure"},{"site":"nextjs","path":"/docs/app/getting-started/route-handlers"},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend"},{"site":"nextjs","path":"/docs/app/guides/production-checklist"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"},{"site":"vercel-kb","path":"/kb/guide/encrypting-parameters"},{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute"},{"site":"vercel-kb","path":"/kb/guide/using-an-external-dynamic-image"},{"site":"vercel-kb","path":"/kb/guide/using-custom-font"},{"site":"vercel-kb","path":"/kb/guide/using-different-languages"},{"site":"vercel-kb","path":"/kb/guide/using-emoji-in-image"},{"site":"vercel-kb","path":"/kb/guide/using-svg-image"},{"site":"vercel-kb","path":"/kb/guide/using-tailwind"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-image-metadata","distance":0.1771},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images","distance":0.1791},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/app-icons","distance":0.1796},{"site":"nextjs","path":"/docs/app/api-reference/functions/image-response","distance":0.2097},{"site":"nextjs","path":"/docs/app/getting-started/images","distance":0.215}],"related":[{"site":"vercel-kb","path":"/kb/guide/encrypting-parameters","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/using-an-external-dynamic-image","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/using-custom-font","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/using-different-languages","via":"inbound"},{"site":"vercel-docs","path":"/docs/og-image-generation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/app-icons","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/images","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/images","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/images","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/robots","title":"robots.txt","summary":"API Reference for robots.txt file.","outbound":[{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images"},{"site":"nextjs","path":"/docs/app/getting-started/project-structure"},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend"},{"site":"nextjs","path":"/docs/app/guides/production-checklist"},{"site":"vercel-docs","path":"/docs/og-image-generation"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/htmlLimitedBots","distance":0.2807},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata","distance":0.3007},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/sitemap","distance":0.3052},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images","distance":0.3082},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata","distance":0.3131}],"related":[{"site":"vercel-docs","path":"/docs/og-image-generation","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/agent-readability-spec","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/htmlLimitedBots","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/sitemap","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/userAgent","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/sitemap","title":"sitemap.xml","summary":"API Reference for the sitemap.xml file.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-sitemaps"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-sitemaps"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images"},{"site":"nextjs","path":"/docs/app/getting-started/project-structure"},{"site":"nextjs","path":"/docs/app/getting-started/route-handlers"},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-generate-a-sitemap-for-my-nextjs-app-on-vercel"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-sitemaps","distance":0.0807},{"site":"vercel-shop","path":"/docs/anatomy/sitemap","distance":0.2763},{"site":"vercel-kb","path":"/kb/guide/how-do-i-generate-a-sitemap-for-my-nextjs-app-on-vercel","distance":0.2901},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images","distance":0.2918},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.2972}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-generate-a-sitemap-for-my-nextjs-app-on-vercel","via":"inbound"},{"site":"vercel-shop","path":"/docs/anatomy/sitemap","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/robots","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-viewport","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/app-icons","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found","title":"not-found.js","summary":"API reference for the not-found.js file.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata"},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found"},{"site":"nextjs","path":"/docs/app/getting-started/project-structure"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_rethrow"},{"site":"nextjs","path":"/docs/app/getting-started/error-handling"},{"site":"nextjs","path":"/docs/app/getting-started/project-structure"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/app/guides/production-checklist"},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found","distance":0.1021},{"site":"nextjs","path":"/docs/app/getting-started/error-handling","distance":0.1829},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.2081},{"site":"nextjs","path":"/docs/app/api-reference/functions/forbidden","distance":0.2144},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.2163}],"related":[{"site":"nextjs","path":"/docs/app/getting-started/error-handling","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/forbidden","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/error","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page","title":"page.js","summary":"API reference for the page.js file.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/project-structure"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/upgrading/codemods"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/font"},{"site":"nextjs","path":"/docs/app/api-reference/components/form"},{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/config/typescript"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-viewport"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-root-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_rethrow"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-search-params"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images"},{"site":"nextjs","path":"/docs/app/getting-started/project-structure"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching"},{"site":"nextjs","path":"/docs/app/guides/building"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components"},{"site":"nextjs","path":"/docs/app/guides/internationalization"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching"},{"site":"nextjs","path":"/docs/app/guides/production-checklist"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"},{"site":"nextjs","path":"/docs/pages/api-reference/components/link"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.1466},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-params","distance":0.1684},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes","distance":0.1712},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-search-params","distance":0.1763},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params","distance":0.1796}],"related":[{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-params","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-search-params","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-root-params","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes","title":"Parallel Routes","summary":"Simultaneously render one or more pages in the same view that can be navigated independently. A pattern for highly dynamic applications.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/default"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/intercepting-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-selected-layout-segment"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-selected-layout-segments"},{"site":"nextjs","path":"/docs/app/getting-started/error-handling"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/authentication"},{"site":"nextjs","path":"/docs/app/guides/forms"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/default"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/intercepting-routes"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-selected-layout-segment"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-selected-layout-segments"},{"site":"nextjs","path":"/docs/app/getting-started/project-structure"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/authentication"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.1708},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.19},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","distance":0.1996},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/intercepting-routes","distance":0.2033},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/default","distance":0.2081}],"related":[{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/internationalization","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy","title":"proxy.js","summary":"API reference for the proxy.js file.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/pageExtensions"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-server"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/runtime"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-request"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-response"},{"site":"nextjs","path":"/docs/app/getting-started/deploying"},{"site":"nextjs","path":"/docs/app/getting-started/proxy"},{"site":"nextjs","path":"/docs/app/guides/data-security"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/redirects"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/rewrites"},{"site":"nextjs","path":"/docs/app/api-reference/edge"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/runtime"},{"site":"nextjs","path":"/docs/app/api-reference/functions/after"},{"site":"nextjs","path":"/docs/app/api-reference/functions/forbidden"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata"},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unauthorized"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-pathname"},{"site":"nextjs","path":"/docs/app/getting-started/project-structure"},{"site":"nextjs","path":"/docs/app/getting-started/proxy"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/authentication"},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend"},{"site":"nextjs","path":"/docs/app/guides/building"},{"site":"nextjs","path":"/docs/app/guides/cdn-caching"},{"site":"nextjs","path":"/docs/app/guides/content-security-policy"},{"site":"nextjs","path":"/docs/app/guides/internationalization"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-vite"},{"site":"nextjs","path":"/docs/app/guides/redirecting"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/app/guides/static-exports"},{"site":"nextjs","path":"/docs/app/guides/streaming"},{"site":"nextjs","path":"/docs/pages/api-reference/components/link"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/redirects"},{"site":"nextjs","path":"/docs/pages/api-reference/edge"},{"site":"nextjs","path":"/docs/pages/getting-started/project-structure"},{"site":"nextjs","path":"/docs/pages/guides/authentication"},{"site":"nextjs","path":"/docs/pages/guides/content-security-policy"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-vite"},{"site":"nextjs","path":"/docs/pages/guides/redirecting"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/routing-middleware/api"},{"site":"vercel-kb","path":"/kb/guide/dynamic-redirects-with-global-config-and-next-js-proxy"},{"site":"workflow","path":"/docs/getting-started/next"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/proxy","distance":0.0115},{"site":"nextjs","path":"/docs/app/getting-started/proxy","distance":0.1906},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend","distance":0.2036},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-response","distance":0.2266},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-response","distance":0.2272}],"related":[{"site":"vercel-docs","path":"/docs/functions/functions-api-reference","via":"inbound"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage","via":"inbound"},{"site":"vercel-docs","path":"/docs/routing-middleware/api","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/dynamic-redirects-with-global-config-and-next-js-proxy","via":"inbound"},{"site":"workflow","path":"/docs/getting-started/next","via":"inbound"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/proxy","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next/examples/proxy","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/proxy","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-response","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/redirecting","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/redirecting","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/components/link","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/public-folder","title":"public","summary":"Next.js allows you to serve static files, like images, in the public directory. You can learn how it works here.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/assetPrefix"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/rewrites"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"},{"site":"nextjs","path":"/docs/app/getting-started/fonts"},{"site":"nextjs","path":"/docs/app/getting-started/images"},{"site":"nextjs","path":"/docs/app/getting-started/installation"},{"site":"nextjs","path":"/docs/app/getting-started/project-structure"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/production-checklist"},{"site":"nextjs","path":"/docs/pages/getting-started/images"},{"site":"nextjs","path":"/docs/pages/getting-started/installation"},{"site":"nextjs","path":"/docs/pages/getting-started/project-structure"},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-writes"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/public-folder","distance":0.023},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions","distance":0.2445},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/src-folder","distance":0.2451},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions","distance":0.2462},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/src-folder","distance":0.2627}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-writes","via":"inbound"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/public-folder","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/src-folder","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/src-folder","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route","title":"route.js","summary":"API reference for the route.js special file.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/headers"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/app-icons"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/robots"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/sitemap"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/headers"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-request"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/app/guides/upgrading/codemods"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/redirects"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverExternalPackages"},{"site":"nextjs","path":"/docs/app/api-reference/config/typescript"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/app-icons"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config"},{"site":"nextjs","path":"/docs/app/api-reference/functions/after"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies"},{"site":"nextjs","path":"/docs/app/api-reference/functions/draft-mode"},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch"},{"site":"nextjs","path":"/docs/app/api-reference/functions/forbidden"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-root-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found"},{"site":"nextjs","path":"/docs/app/api-reference/functions/permanentRedirect"},{"site":"nextjs","path":"/docs/app/api-reference/functions/redirect"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unauthorized"},{"site":"nextjs","path":"/docs/app/getting-started/project-structure"},{"site":"nextjs","path":"/docs/app/getting-started/revalidating"},{"site":"nextjs","path":"/docs/app/getting-started/route-handlers"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/authentication"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components"},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend"},{"site":"nextjs","path":"/docs/app/guides/building"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/tanstack-query"},{"site":"nextjs","path":"/docs/app/guides/draft-mode"},{"site":"nextjs","path":"/docs/app/guides/environment-variables"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/app/guides/production-checklist"},{"site":"nextjs","path":"/docs/app/guides/redirecting"},{"site":"nextjs","path":"/docs/app/guides/static-exports"},{"site":"nextjs","path":"/docs/app/guides/streaming"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/redirects"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/api-routes"},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/route-handlers","distance":0.1497},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend","distance":0.1678},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/api-routes","distance":0.1723},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","distance":0.1821},{"site":"nextjs","path":"/docs/pages/api-reference/components/link","distance":0.2237}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"inbound"},{"site":"vercel-docs","path":"/docs/functions","via":"inbound"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference","via":"inbound"},{"site":"nextjs","path":"/docs/app/getting-started/route-handlers","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/api-routes","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/components/link","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-groups","title":"Route Groups","summary":"Route Groups can be used to partition your Next.js application into different sections.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-selected-layout-segments"},{"site":"nextjs","path":"/docs/app/getting-started/project-structure"},{"site":"nextjs","path":"/docs/app/glossary"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/getting-started/project-structure","distance":0.2229},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions","distance":0.2628},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/src-folder","distance":0.277},{"site":"nextjs","path":"/docs/app/getting-started/project-structure","distance":0.2794},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.2802}],"related":[{"site":"nextjs","path":"/docs/pages/getting-started/project-structure","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/src-folder","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/project-structure","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config","title":"Route Segment Config","summary":"Learn about how to configure options for Next.js route segments.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/dynamicParams"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/instant"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/maxDuration"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/preferredRegion"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/prefetch"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/runtime"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components"},{"site":"nextjs","path":"/docs/app/guides/upgrading/codemods"}],"inbound":[{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide"},{"site":"nextjs","path":"/docs/app/api-reference/config/typescript"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/app-icons"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-vercel-cron-jobs"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2019},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2081},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/dynamicParams","distance":0.2175},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/preferredRegion","distance":0.2228},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/dynamic-routes","distance":0.2252}],"related":[{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","via":"inbound"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference","via":"inbound"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-vercel-cron-jobs","via":"inbound"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/dynamic-routes","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/dynamicParams","title":"dynamicParams","summary":"API reference for the dynamicParams route segment config option.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params","distance":0.1921},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes","distance":0.2173},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config","distance":0.2175},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/dynamic-routes","distance":0.241},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-params","distance":0.2614}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/dynamic-routes","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-params","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-params","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-root-params","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/instant","title":"instant","summary":"API reference for the instant route segment config.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/revalidating"},{"site":"nextjs","path":"/docs/app/guides/instant-navigation"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/prefetch"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-viewport"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching"},{"site":"nextjs","path":"/docs/app/guides/building"},{"site":"nextjs","path":"/docs/app/guides/instant-navigation"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/instant-navigation","distance":0.2152},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","distance":0.2275},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.2388},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","distance":0.242},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/prefetch","distance":0.2433}],"related":[{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/prefetch","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/maxDuration","title":"maxDuration","summary":"API reference for the maxDuration route segment config option.","outbound":[{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config"},{"site":"nextjs","path":"/docs/app/api-reference/functions/after"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/reactMaxHeadersLength","distance":0.287},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheMaxMemorySize","distance":0.3137},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config","distance":0.3161},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration","distance":0.3441},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/runtime","distance":0.3617}],"related":[{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/reactMaxHeadersLength","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheMaxMemorySize","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/runtime","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/expireTime","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/preferredRegion","title":"preferredRegion (deprecated)","summary":"API reference for the preferredRegion route segment config option.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config","distance":0.2228},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/prefetch","distance":0.2934},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","distance":0.3152},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/runtime","distance":0.3235},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.3259}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/prefetch","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/runtime","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/prefetch","title":"prefetch","summary":"API reference for the prefetch route segment config.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/partialPrefetching"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/instant"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching"},{"site":"nextjs","path":"/docs/app/guides/instant-navigation"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/partialPrefetching"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/partialPrefetching","distance":0.0723},{"site":"nextjs","path":"/docs/app/guides/prefetching","distance":0.099},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching","distance":0.1143},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/prefetchInlining","distance":0.1475},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.1906}],"related":[{"site":"nextjs","path":"/docs/app/guides/prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/prefetchInlining","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/runtime","title":"runtime","summary":"API reference for the runtime route segment config option.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config"},{"site":"nextjs","path":"/docs/app/guides/upgrading/codemods"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/codemods"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/invoking-entrypoints","distance":0.2496},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/invoking-entrypoints","distance":0.2499},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config","distance":0.2711},{"site":"nextjs","path":"/docs/pages/api-reference/edge","distance":0.3082},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/runtime-integration","distance":0.3122}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/invoking-entrypoints","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/invoking-entrypoints","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/edge","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/runtime-integration","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/src-folder","title":"src","summary":"Save pages under the `src` folder as an alternative to the root `pages` directory.","outbound":[{"site":"nextjs","path":"/docs/app/getting-started/project-structure"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation"},{"site":"nextjs","path":"/docs/app/getting-started/installation"},{"site":"nextjs","path":"/docs/app/getting-started/project-structure"},{"site":"nextjs","path":"/docs/app/guides/environment-variables"},{"site":"nextjs","path":"/docs/app/guides/instrumentation"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/instrumentation"},{"site":"nextjs","path":"/docs/pages/getting-started/project-structure"},{"site":"nextjs","path":"/docs/pages/guides/environment-variables"},{"site":"nextjs","path":"/docs/pages/guides/instrumentation"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/src-folder","distance":0.0245},{"site":"nextjs","path":"/docs/pages/getting-started/project-structure","distance":0.1596},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions","distance":0.2215},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/public-folder","distance":0.2321},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions","distance":0.2333}],"related":[{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration","via":"inbound"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/src-folder","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/project-structure","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/public-folder","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/template","title":"template.js","summary":"API Reference for the template.js file.","outbound":[{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages"},{"site":"nextjs","path":"/docs/app/getting-started/project-structure"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"},{"site":"nextjs","path":"/docs/app/getting-started/project-structure"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.2492},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","distance":0.2633},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found","distance":0.2863},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.301},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes","distance":0.3022}],"related":[{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/unauthorized","title":"unauthorized.js","summary":"API reference for the unauthorized.js special file.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions/unauthorized"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/authInterrupts"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unauthorized"},{"site":"nextjs","path":"/docs/app/getting-started/upgrading"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/functions/unauthorized","distance":0.0842},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/forbidden","distance":0.1501},{"site":"nextjs","path":"/docs/app/api-reference/functions/forbidden","distance":0.1854},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/authInterrupts","distance":0.2302},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found","distance":0.2632}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/forbidden","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/forbidden","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/authInterrupts","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions","title":"Functions","summary":"API Reference for Next.js Functions and Hooks.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions/after"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/catchError"},{"site":"nextjs","path":"/docs/app/api-reference/functions/connection"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies"},{"site":"nextjs","path":"/docs/app/api-reference/functions/draft-mode"},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch"},{"site":"nextjs","path":"/docs/app/api-reference/functions/forbidden"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-image-metadata"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-sitemaps"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-viewport"},{"site":"nextjs","path":"/docs/app/api-reference/functions/headers"},{"site":"nextjs","path":"/docs/app/api-reference/functions/image-response"},{"site":"nextjs","path":"/docs/app/api-reference/functions/io"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-request"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-response"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-root-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found"},{"site":"nextjs","path":"/docs/app/api-reference/functions/permanentRedirect"},{"site":"nextjs","path":"/docs/app/api-reference/functions/redirect"},{"site":"nextjs","path":"/docs/app/api-reference/functions/refresh"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidatePath"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unauthorized"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_cache"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_noStore"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_rethrow"},{"site":"nextjs","path":"/docs/app/api-reference/functions/updateTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-link-status"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-offline"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-pathname"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-report-web-vitals"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-search-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-selected-layout-segment"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-selected-layout-segments"},{"site":"nextjs","path":"/docs/app/api-reference/functions/userAgent"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference"},{"site":"nextjs","path":"/docs/community/contribution-guide"}],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/functions","distance":0.1403},{"site":"nextjs","path":"/docs/app/api-reference","distance":0.1617},{"site":"nextjs","path":"/docs/app/guides","distance":0.1786},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.1872},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions","distance":0.1977}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/functions","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/after","title":"after","summary":"API Reference for the after function.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/maxDuration"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata"},{"site":"nextjs","path":"/docs/app/api-reference/functions/headers"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/deploying"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package"},{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-inconsistent-logs-in-vercel-functions"},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out"},{"site":"workflow","path":"/docs/foundations/streaming"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","distance":0.2531},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.2645},{"site":"nextjs","path":"/docs/app/api-reference/functions","distance":0.2648},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found","distance":0.2682},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data","distance":0.2702}],"related":[{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-inconsistent-logs-in-vercel-functions","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out","via":"inbound"},{"site":"workflow","path":"/docs/foundations/streaming","via":"inbound"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife","title":"cacheLife","summary":"Learn how to use the cacheLife function to set the cache expiration time for a cached function or component.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/cli/next"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/staleTimes"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/refresh"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidatePath"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/updateTag"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheLife"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-private"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote"},{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/revalidating"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components"},{"site":"nextjs","path":"/docs/app/guides/building"},{"site":"nextjs","path":"/docs/app/guides/cdn-caching"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/tanstack-query"},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components"},{"site":"nextjs","path":"/docs/app/guides/instant-navigation"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"},{"site":"vercel-docs","path":"/docs/partial-prerendering/quickstart"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache","distance":0.1269},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components","distance":0.1663},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote","distance":0.177},{"site":"nextjs","path":"/docs/app/getting-started/caching","distance":0.1995},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheLife","distance":0.234}],"related":[{"site":"vercel-docs","path":"/docs/partial-prerendering/quickstart","via":"inbound"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/caching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheLife","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag","title":"cacheTag","summary":"Learn how to use the cacheTag function to manage cache invalidation in your Next.js application.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/updateTag"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-private"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote"},{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/updateTag"},{"site":"nextjs","path":"/docs/app/getting-started/revalidating"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/tanstack-query"},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works"},{"site":"nextjs","path":"/docs/app/guides/interactive-apps"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge"},{"site":"vercel-docs","path":"/docs/partial-prerendering/quickstart"},{"site":"vercel-kb","path":"/kb/guide/how-to-move-to-on-demand-revalidation"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/revalidating","distance":0.1012},{"site":"nextjs","path":"/docs/app/api-reference/functions/updateTag","distance":0.1533},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag","distance":0.1768},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works","distance":0.1799},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-private","distance":0.2102}],"related":[{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge","via":"inbound"},{"site":"vercel-docs","path":"/docs/partial-prerendering/quickstart","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-move-to-on-demand-revalidation","via":"inbound"},{"site":"nextjs","path":"/docs/app/getting-started/revalidating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-private","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheHandlers","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/catchError","title":"catchError","summary":"API Reference for the catchError function.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/error"},{"site":"nextjs","path":"/docs/app/getting-started/error-handling"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/error"},{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/error-handling"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/error","distance":0.1521},{"site":"nextjs","path":"/docs/app/getting-started/error-handling","distance":0.1724},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring/error-handling","distance":0.268},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found","distance":0.2741},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found","distance":0.3028}],"related":[{"site":"nextjs","path":"/docs/pages/building-your-application/configuring/error-handling","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_rethrow","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-error","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/connection","title":"connection","summary":"API Reference for the connection function.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/functions/io"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_noStore"},{"site":"nextjs","path":"/docs/app/glossary"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-private"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote"},{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/api-reference/functions/io"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_noStore"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-search-params"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/route-handlers"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/functions/io","distance":0.3044},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_noStore","distance":0.329},{"site":"nextjs","path":"/docs/app/api-reference/functions/after","distance":0.3388},{"site":"nextjs","path":"/docs/app/api-reference/functions","distance":0.3432},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.355}],"related":[{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package","via":"inbound"},{"site":"nextjs","path":"/docs/app/api-reference/functions/after","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/useOffline","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-link-status","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies","title":"cookies","summary":"API Reference for the cookies function.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidatePath"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/upgrading/codemods"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/api-reference/functions/after"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_rethrow"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"},{"site":"nextjs","path":"/docs/app/getting-started/route-handlers"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching"},{"site":"nextjs","path":"/docs/app/guides/authentication"},{"site":"nextjs","path":"/docs/app/guides/building"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching"},{"site":"nextjs","path":"/docs/app/guides/preventing-flash-before-hydration"},{"site":"nextjs","path":"/docs/app/guides/production-checklist"},{"site":"nextjs","path":"/docs/app/guides/server-actions"},{"site":"nextjs","path":"/docs/app/guides/static-exports"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/functions/next-request","distance":0.1913},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-request","distance":0.1933},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-response","distance":0.2348},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-response","distance":0.2384},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/headers","distance":0.2679}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/functions/next-request","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-request","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-response","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-response","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/headers","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/draft-mode","title":"draftMode","summary":"API Reference for the draftMode function.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/app/guides/draft-mode"},{"site":"nextjs","path":"/docs/app/guides/upgrading/codemods"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/draft-mode"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/draft-mode","distance":0.1343},{"site":"nextjs","path":"/docs/app/guides/draft-mode","distance":0.138},{"site":"vercel-docs","path":"/docs/draft-mode","distance":0.2229},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","distance":0.2972},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.316}],"related":[{"site":"vercel-docs","path":"/docs/draft-mode","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/draft-mode","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/static-exports","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch","title":"fetch","summary":"API reference for the extended fetch function.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverComponentsHmrCache"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components"},{"site":"nextjs","path":"/docs/app/guides/draft-mode"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image"},{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/updateTag"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components"},{"site":"nextjs","path":"/docs/app/guides/data-security"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15"},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration"},{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","distance":0.1642},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverComponentsHmrCache","distance":0.2095},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching","distance":0.2301},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","distance":0.2329},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching","distance":0.2374}],"related":[{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute","via":"inbound"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/prefetch","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/self-hosting","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/forbidden","title":"forbidden","summary":"API Reference for the forbidden function.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/authInterrupts"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/forbidden"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unauthorized"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_rethrow"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/app/guides/authentication"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/authInterrupts"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/forbidden"},{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unauthorized"},{"site":"nextjs","path":"/docs/app/getting-started/upgrading"},{"site":"nextjs","path":"/docs/app/guides/server-actions"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/functions/unauthorized","distance":0.0927},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/forbidden","distance":0.1144},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found","distance":0.1432},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/authInterrupts","distance":0.1769},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/unauthorized","distance":0.1854}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/unauthorized","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/error-handling","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/redirecting","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-image-metadata","title":"generateImageMetadata","summary":"Learn how to generate multiple images in a single Metadata API special file.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/app-icons"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image"},{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images","distance":0.1537},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image","distance":0.1771},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/app-icons","distance":0.2069},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata","distance":0.2339},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-viewport","distance":0.2623}],"related":[{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/app-icons","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-viewport","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/images","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/images","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata","title":"generateMetadata","summary":"Learn how to add Metadata to your Next.js application for improved search engine optimization (SEO) and web shareability.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/headers"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/htmlLimitedBots"},{"site":"nextjs","path":"/docs/app/api-reference/config/typescript"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/app-icons"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-viewport"},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found"},{"site":"nextjs","path":"/docs/app/api-reference/functions/redirect"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/css"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/scripts"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/htmlLimitedBots"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found"},{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/api-reference/functions/after"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching"},{"site":"nextjs","path":"/docs/app/guides/building"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-vite"},{"site":"nextjs","path":"/docs/app/guides/streaming"},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-vite"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains"},{"site":"vercel-kb","path":"/kb/guide/nextjs-multi-tenant-application"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images","distance":0.1923},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image","distance":0.2678},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout","distance":0.2693},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-image-metadata","distance":0.2749},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-viewport","distance":0.282}],"related":[{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/nextjs-multi-tenant-application","via":"inbound"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-image-metadata","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/robots","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-sitemaps","title":"generateSitemaps","summary":"Learn how to use the generateSiteMaps function to create multiple sitemaps for your application.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/sitemap"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/sitemap"},{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/guides/production-checklist"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/sitemap","distance":0.0807},{"site":"vercel-kb","path":"/kb/guide/how-do-i-generate-a-sitemap-for-my-nextjs-app-on-vercel","distance":0.3096},{"site":"vercel-shop","path":"/docs/anatomy/sitemap","distance":0.3324},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-image-metadata","distance":0.3347},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images","distance":0.3446}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-generate-a-sitemap-for-my-nextjs-app-on-vercel","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/sitemap","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-image-metadata","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params","title":"generateStaticParams","summary":"API reference for the generateStaticParams function.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/dynamicParams"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-root-params"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths"}],"inbound":[{"site":"flags-sdk","path":"/docs/frameworks/next/precompute"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/dynamicParams"},{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/api-reference/functions/io"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-root-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-pathname"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-selected-layout-segment"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-selected-layout-segments"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"},{"site":"nextjs","path":"/docs/app/guides/building"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components"},{"site":"nextjs","path":"/docs/app/guides/mdx"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-vite"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths"},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-vite"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-build-error-build-step-did-not-complete-within-45-minutes"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes","distance":0.073},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-root-params","distance":0.1554},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths","distance":0.1752},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page","distance":0.1796},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-params","distance":0.1897}],"related":[{"site":"flags-sdk","path":"/docs/frameworks/next/precompute","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-build-error-build-step-did-not-complete-within-45-minutes","via":"inbound"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-params","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-params","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-paths","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-viewport","title":"generateViewport","summary":"API Reference for the generateViewport function.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/config/typescript"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/instant"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/guides/upgrading/codemods"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images","distance":0.1955},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.1993},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","distance":0.2093},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.2106},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","distance":0.2278}],"related":[{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/headers","title":"headers","summary":"API reference for the headers function.","outbound":[{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/upgrading/codemods"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/api-reference/functions/after"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_rethrow"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/route-handlers"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching"},{"site":"nextjs","path":"/docs/app/guides/building"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components"},{"site":"nextjs","path":"/docs/app/guides/content-security-policy"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching"},{"site":"nextjs","path":"/docs/app/guides/preventing-flash-before-hydration"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting"},{"site":"vercel-kb","path":"/kb/guide/geolocation-script"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/headers","distance":0.2262},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/headers","distance":0.2346},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies","distance":0.2945},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-response","distance":0.3296},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-response","distance":0.3334}],"related":[{"site":"vercel-kb","path":"/kb/guide/geolocation-script","via":"inbound"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/headers","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/headers","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-response","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-response","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/image-response","title":"ImageResponse","summary":"API Reference for the ImageResponse constructor.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"vercel-docs","path":"/docs/og-image-generation"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/app-icons"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image"},{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image","distance":0.2097},{"site":"vercel-docs","path":"/docs/og-image-generation/og-image-api","distance":0.2452},{"site":"vercel-docs","path":"/docs/og-image-generation","distance":0.2476},{"site":"nextjs","path":"/docs/pages/getting-started/images","distance":0.2743},{"site":"nextjs","path":"/docs/app/getting-started/images","distance":0.2777}],"related":[{"site":"vercel-docs","path":"/docs/og-image-generation/og-image-api","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-emoji-in-image","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-svg-image","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-tailwind","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-custom-font","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/images","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/images","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-image-metadata","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-response","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/io","title":"io","summary":"API Reference for the io function.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/functions/connection"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/prefetching"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/api-reference/functions/connection"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/functions/connection","distance":0.3044},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch","distance":0.3164},{"site":"nextjs","path":"/docs/app/api-reference/functions/after","distance":0.3209},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration","distance":0.3343},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents","distance":0.3349}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/after","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/incremental-static-regeneration","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-request","title":"NextRequest","summary":"API Reference for NextRequest.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/basePath"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/generateBuildId"},{"site":"nextjs","path":"/docs/app/guides/internationalization"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/getting-started/route-handlers"},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-request","distance":0.0115},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-response","distance":0.1684},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-response","distance":0.1695},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies","distance":0.1913},{"site":"nextjs","path":"/docs/app/api-reference/functions","distance":0.266}],"related":[{"site":"vercel-docs","path":"/docs/functions/functions-api-reference","via":"inbound"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-request","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-response","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-response","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-response","title":"NextResponse","summary":"API Reference for NextResponse.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/getting-started/route-handlers"},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/proxy"},{"site":"vercel-kb","path":"/kb/guide/add-response-header"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-response","distance":0.0044},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-request","distance":0.1648},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-request","distance":0.1684},{"site":"nextjs","path":"/docs/app/guides/redirecting","distance":0.1997},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend","distance":0.2092}],"related":[{"site":"vercel-kb","path":"/kb/guide/add-response-header","via":"inbound"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-response","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-request","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-request","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/redirecting","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-root-params","title":"root-params","summary":"API Reference for the next/root-params module that provides access to root-level route parameters.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/cli/next"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/config/typescript"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params"},{"site":"nextjs","path":"/docs/app/glossary"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params"},{"site":"nextjs","path":"/docs/app/guides/internationalization"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/internationalization","distance":0.1315},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params","distance":0.1554},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.1612},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes","distance":0.1683},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page","distance":0.1997}],"related":[{"site":"nextjs","path":"/docs/app/guides/internationalization","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-params","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-viewport","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found","title":"notFound","summary":"API Reference for the notFound function.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/functions/forbidden"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unauthorized"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_rethrow"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found"},{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/api-reference/functions/forbidden"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata"},{"site":"nextjs","path":"/docs/app/api-reference/functions/permanentRedirect"},{"site":"nextjs","path":"/docs/app/api-reference/functions/redirect"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unauthorized"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_rethrow"},{"site":"nextjs","path":"/docs/app/getting-started/error-handling"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/streaming"},{"site":"vercel-kb","path":"/kb/guide/does-streaming-affect-seo"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found","distance":0.1021},{"site":"nextjs","path":"/docs/app/api-reference/functions/forbidden","distance":0.1432},{"site":"nextjs","path":"/docs/app/getting-started/error-handling","distance":0.1766},{"site":"nextjs","path":"/docs/app/api-reference/functions/unauthorized","distance":0.1868},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.2062}],"related":[{"site":"vercel-kb","path":"/kb/guide/does-streaming-affect-seo","via":"inbound"},{"site":"nextjs","path":"/docs/app/getting-started/error-handling","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/forbidden","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/permanentRedirect","title":"permanentRedirect","summary":"API Reference for the permanentRedirect function.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found"},{"site":"nextjs","path":"/docs/app/api-reference/functions/redirect"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/api-reference/functions/redirect"},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend"},{"site":"nextjs","path":"/docs/app/guides/redirecting"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/functions/redirect","distance":0.1159},{"site":"nextjs","path":"/docs/app/guides/redirecting","distance":0.2059},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/redirects","distance":0.2525},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/redirects","distance":0.2527},{"site":"nextjs","path":"/docs/pages/guides/redirecting","distance":0.2728}],"related":[{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-permanent-redirects","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/redirecting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/redirects","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/redirects","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/redirecting","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/forbidden","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/redirect","title":"redirect","summary":"API Reference for the redirect function.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found"},{"site":"nextjs","path":"/docs/app/api-reference/functions/permanentRedirect"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/app/guides/redirecting"},{"site":"nextjs","path":"/docs/app/guides/server-actions"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata"},{"site":"nextjs","path":"/docs/app/api-reference/functions/permanentRedirect"},{"site":"nextjs","path":"/docs/app/getting-started/error-handling"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend"},{"site":"nextjs","path":"/docs/app/guides/redirecting"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/app/guides/server-actions"},{"site":"nextjs","path":"/docs/app/guides/streaming"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting"},{"site":"vercel-kb","path":"/kb/guide/does-streaming-affect-seo"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/functions/permanentRedirect","distance":0.1159},{"site":"nextjs","path":"/docs/app/guides/redirecting","distance":0.1326},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/redirects","distance":0.1499},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/redirects","distance":0.1513},{"site":"nextjs","path":"/docs/pages/guides/redirecting","distance":0.1886}],"related":[{"site":"vercel-kb","path":"/kb/guide/does-streaming-affect-seo","via":"inbound"},{"site":"vercel-docs","path":"/docs/routing/redirects","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/redirects","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/redirects","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/redirecting","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/forbidden","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-response","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/refresh","title":"refresh","summary":"API Reference for the refresh function.","outbound":[{"site":"nextjs","path":"/docs/app/guides/server-actions"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"},{"site":"nextjs","path":"/docs/app/guides/interactive-apps"},{"site":"nextjs","path":"/docs/app/guides/server-actions"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/server-actions","distance":0.314},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data","distance":0.3141},{"site":"nextjs","path":"/docs/architecture/fast-refresh","distance":0.3206},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidatePath","distance":0.3388},{"site":"nextjs","path":"/docs/app/api-reference/functions/redirect","distance":0.3582}],"related":[{"site":"nextjs","path":"/docs/app/getting-started/mutating-data","via":"neighbor"},{"site":"nextjs","path":"/docs/architecture/fast-refresh","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidatePath","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/redirect","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-server","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidatePath","title":"revalidatePath","summary":"API Reference for the revalidatePath function.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/rewrites"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/trailingSlash"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/updateTag"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/server-actions"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheHandlers"},{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/updateTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"},{"site":"nextjs","path":"/docs/app/getting-started/revalidating"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components"},{"site":"nextjs","path":"/docs/app/guides/cdn-caching"},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/rendering-philosophy"},{"site":"nextjs","path":"/docs/app/guides/server-actions"},{"site":"vercel-docs","path":"/docs/caching/cache-status"},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime"},{"site":"vercel-kb","path":"/kb/guide/how-to-move-to-on-demand-revalidation"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/revalidating","distance":0.1289},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag","distance":0.1368},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works","distance":0.1401},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","distance":0.1913},{"site":"nextjs","path":"/docs/app/api-reference/functions/updateTag","distance":0.2363}],"related":[{"site":"vercel-docs","path":"/docs/caching/cache-status","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-move-to-on-demand-revalidation","via":"inbound"},{"site":"nextjs","path":"/docs/app/getting-started/revalidating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works","via":"neighbor"},{"site":"swr","path":"/docs/revalidation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag","title":"revalidateTag","summary":"API Reference for the revalidateTag function.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheLife"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidatePath"},{"site":"nextjs","path":"/docs/app/api-reference/functions/updateTag"},{"site":"nextjs","path":"/docs/app/guides/server-actions"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/incrementalCacheHandlerPath"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote"},{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies"},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidatePath"},{"site":"nextjs","path":"/docs/app/api-reference/functions/updateTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"},{"site":"nextjs","path":"/docs/app/getting-started/revalidating"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components"},{"site":"nextjs","path":"/docs/app/guides/cdn-caching"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching"},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/app/guides/interactive-apps"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/ppr-platform-guide"},{"site":"nextjs","path":"/docs/app/guides/rendering-philosophy"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/app/guides/server-actions"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"},{"site":"vercel-docs","path":"/docs/caching/cache-status"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache"},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime"},{"site":"vercel-kb","path":"/kb/guide/how-to-move-to-on-demand-revalidation"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/functions/updateTag","distance":0.1098},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidatePath","distance":0.1368},{"site":"nextjs","path":"/docs/app/getting-started/revalidating","distance":0.1454},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works","distance":0.1601},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag","distance":0.1768}],"related":[{"site":"vercel-docs","path":"/docs/caching/cache-status","via":"inbound"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-move-to-on-demand-revalidation","via":"inbound"},{"site":"nextjs","path":"/docs/app/getting-started/revalidating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works","via":"neighbor"},{"site":"swr","path":"/docs/revalidation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheHandlers","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/unauthorized","title":"unauthorized","summary":"API Reference for the unauthorized function.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/authInterrupts"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/unauthorized"},{"site":"nextjs","path":"/docs/app/api-reference/functions/forbidden"},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_rethrow"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/app/guides/authentication"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/authInterrupts"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/unauthorized"},{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/api-reference/functions/forbidden"},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found"},{"site":"nextjs","path":"/docs/app/getting-started/upgrading"},{"site":"nextjs","path":"/docs/app/guides/server-actions"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/unauthorized","distance":0.0842},{"site":"nextjs","path":"/docs/app/api-reference/functions/forbidden","distance":0.0927},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found","distance":0.1868},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/authInterrupts","distance":0.1922},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/forbidden","distance":0.2195}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/forbidden","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/error-handling","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_cache","title":"unstable_cache","summary":"API Reference for the unstable_cache function.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/getting-started/caching"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote"},{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_noStore"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components"},{"site":"nextjs","path":"/docs/app/guides/draft-mode"},{"site":"nextjs","path":"/docs/app/guides/production-checklist"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_noStore","distance":0.2061},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-private","distance":0.214},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents","distance":0.2407},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag","distance":0.2436},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch","distance":0.2441}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_noStore","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-private","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_noStore","title":"unstable_noStore","summary":"API Reference for the unstable_noStore function.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions/connection"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_cache"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/api-reference/functions/connection"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_cache","distance":0.2061},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch","distance":0.2855},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found","distance":0.3265},{"site":"nextjs","path":"/docs/app/api-reference/functions/connection","distance":0.329},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/staleTimes","distance":0.3342}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/staleTimes","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_rethrow","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_rethrow","title":"unstable_rethrow","summary":"API Reference for the unstable_rethrow function.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies"},{"site":"nextjs","path":"/docs/app/api-reference/functions/headers"},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found"},{"site":"nextjs","path":"/docs/app/guides/redirecting"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/api-reference/functions/forbidden"},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unauthorized"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/error-handling","distance":0.2921},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found","distance":0.295},{"site":"nextjs","path":"/docs/app/api-reference/functions/catchError","distance":0.3125},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_cache","distance":0.3245},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/error","distance":0.329}],"related":[{"site":"nextjs","path":"/docs/app/getting-started/error-handling","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/catchError","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_cache","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/error","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unauthorized","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/updateTag","title":"updateTag","summary":"API Reference for the updateTag function.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidatePath"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidatePath"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"},{"site":"nextjs","path":"/docs/app/getting-started/revalidating"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/tanstack-query"},{"site":"nextjs","path":"/docs/app/guides/interactive-apps"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/server-actions"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"},{"site":"vercel-kb","path":"/kb/guide/how-to-move-to-on-demand-revalidation"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag","distance":0.1098},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag","distance":0.1533},{"site":"nextjs","path":"/docs/app/getting-started/revalidating","distance":0.1909},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidatePath","distance":0.2363},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works","distance":0.2616}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-move-to-on-demand-revalidation","via":"inbound"},{"site":"nextjs","path":"/docs/app/getting-started/revalidating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/server-actions","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-link-status","title":"useLinkStatus","summary":"API Reference for the useLinkStatus hook.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.185},{"site":"nextjs","path":"/docs/app/guides/prefetching","distance":0.2189},{"site":"nextjs","path":"/docs/pages/api-reference/components/link","distance":0.22},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating","distance":0.2272},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-selected-layout-segment","distance":0.2377}],"related":[{"site":"nextjs","path":"/docs/app/guides/prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/components/link","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-selected-layout-segment","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-offline","title":"useOffline","summary":"API Reference for the useOffline hook.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/useOffline"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/guides/progressive-web-apps"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/useOffline"},{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/guides/offline-support"},{"site":"nextjs","path":"/docs/app/guides/progressive-web-apps"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/useOffline","distance":0.0622},{"site":"nextjs","path":"/docs/app/guides/offline-support","distance":0.1278},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-link-status","distance":0.2819},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-pathname","distance":0.3159},{"site":"nextjs","path":"/docs/app/api-reference/functions","distance":0.3196}],"related":[{"site":"nextjs","path":"/docs/app/guides/offline-support","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-link-status","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-pathname","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-params","title":"useParams","summary":"API Reference for the useParams hook.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes"},{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-params","distance":0.071},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-search-params","distance":0.1837},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-search-params","distance":0.2041},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page","distance":0.2116},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params","distance":0.228}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-params","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-search-params","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-search-params","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-pathname","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-pathname","title":"usePathname","summary":"API Reference for the usePathname hook.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/rewrites"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/app/guides/preventing-flash-before-hydration"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/automatic-static-optimization"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/app/guides/single-page-applications"},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/functions/use-search-params","distance":0.2245},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-router","distance":0.2321},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-params","distance":0.2365},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-params","distance":0.2384},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page","distance":0.2494}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/functions/use-search-params","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-router","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-params","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-params","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-report-web-vitals","title":"useReportWebVitals","summary":"API Reference for the useReportWebVitals function.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/guides/analytics"},{"site":"nextjs","path":"/docs/app/guides/production-checklist"},{"site":"nextjs","path":"/docs/pages/guides/analytics"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-report-web-vitals","distance":0.0214},{"site":"nextjs","path":"/docs/app/guides/analytics","distance":0.089},{"site":"nextjs","path":"/docs/pages/guides/analytics","distance":0.1033},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/webVitalsAttribution","distance":0.2661},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/webVitalsAttribution","distance":0.2682}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-report-web-vitals","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/analytics","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/analytics","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/webVitalsAttribution","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/webVitalsAttribution","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-router","title":"useRouter","summary":"API reference for the useRouter hook.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidatePath"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-pathname"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-search-params"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/app/guides/prefetching"},{"site":"nextjs","path":"/docs/app/guides/preserving-ui-state"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/staleTimes"},{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/api-reference/functions/redirect"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-search-params"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/app/guides/prefetching"},{"site":"nextjs","path":"/docs/app/guides/preserving-ui-state"},{"site":"nextjs","path":"/docs/app/guides/redirecting"},{"site":"nextjs","path":"/docs/app/guides/view-transitions"},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/components/link","distance":0.186},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating","distance":0.1965},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","distance":0.2058},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.2147},{"site":"nextjs","path":"/docs/app/guides/prefetching","distance":0.225}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/components/link","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-router","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-search-params","title":"useSearchParams","summary":"API Reference for the useSearchParams hook.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page"},{"site":"nextjs","path":"/docs/app/api-reference/functions/connection"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/app/glossary"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/app/guides/single-page-applications"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-search-params"},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-search-params","distance":0.0546},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-params","distance":0.173},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page","distance":0.1763},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-params","distance":0.1837},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-pathname","distance":0.2245}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-search-params","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-params","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-params","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-pathname","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-selected-layout-segment","title":"useSelectedLayoutSegment","summary":"API Reference for the useSelectedLayoutSegment hook.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-selected-layout-segments"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes"},{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/functions/use-selected-layout-segments","distance":0.0403},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.1927},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-link-status","distance":0.2377},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","distance":0.2406},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes","distance":0.2526}],"related":[{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-link-status","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-search-params","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-selected-layout-segments","title":"useSelectedLayoutSegments","summary":"API Reference for the useSelectedLayoutSegments hook.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-groups"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes"},{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-selected-layout-segment"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/functions/use-selected-layout-segment","distance":0.0403},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.2549},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-link-status","distance":0.2821},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes","distance":0.2937},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","distance":0.2938}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/functions/use-selected-layout-segment","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-link-status","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-search-params","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/userAgent","title":"userAgent","summary":"The userAgent helper extends the Web Request API with additional properties and methods to interact with the user agent object from the request.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/functions/userAgent","distance":0.0065},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/robots","distance":0.3292},{"site":"nextjs","path":"/docs/app/api-reference/functions","distance":0.3478},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-request","distance":0.3504},{"site":"nextjs","path":"/docs/app/getting-started/proxy","distance":0.3509}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/functions/userAgent","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/robots","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-request","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/proxy","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-request","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/turbopack","title":"Turbopack","summary":"Turbopack is an incremental bundler optimized for JavaScript and TypeScript, written in Rust, and built into Next.js.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/basePath"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopack"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackFileSystemCache"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackIgnoreIssue"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLocalPostcssConfig"},{"site":"nextjs","path":"/docs/app/getting-started/css"},{"site":"nextjs","path":"/docs/app/guides/lazy-loading"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference"},{"site":"nextjs","path":"/docs/app/api-reference/cli/next"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopack"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackIgnoreIssue"},{"site":"nextjs","path":"/docs/app/getting-started/installation"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/building"},{"site":"nextjs","path":"/docs/app/guides/mdx"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-vite"},{"site":"nextjs","path":"/docs/pages/api-reference/cli/next"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopack"},{"site":"nextjs","path":"/docs/pages/getting-started/installation"},{"site":"nextjs","path":"/docs/pages/guides/mdx"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-vite"},{"site":"vercel-docs","path":"/docs/microfrontends"}],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/turbopack","distance":0.0206},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopack","distance":0.2},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopack","distance":0.2014},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackIgnoreIssue","distance":0.2813},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16","distance":0.2946}],"related":[{"site":"vercel-docs","path":"/docs/microfrontends","via":"inbound"},{"site":"nextjs","path":"/docs/pages/api-reference/turbopack","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/typescript","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopack","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackChunking","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopackChunking","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/getting-started","title":"Getting Started","summary":"Learn how to create full-stack web applications with the Next.js App Router.","outbound":[{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/css"},{"site":"nextjs","path":"/docs/app/getting-started/deploying"},{"site":"nextjs","path":"/docs/app/getting-started/error-handling"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data"},{"site":"nextjs","path":"/docs/app/getting-started/fonts"},{"site":"nextjs","path":"/docs/app/getting-started/images"},{"site":"nextjs","path":"/docs/app/getting-started/installation"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"},{"site":"nextjs","path":"/docs/app/getting-started/project-structure"},{"site":"nextjs","path":"/docs/app/getting-started/proxy"},{"site":"nextjs","path":"/docs/app/getting-started/revalidating"},{"site":"nextjs","path":"/docs/app/getting-started/route-handlers"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/app/getting-started/upgrading"}],"inbound":[],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/pages/getting-started","distance":0.1269},{"site":"nextjs","path":"/docs/pages/building-your-application","distance":0.1446},{"site":"nextjs","path":"/docs/pages/getting-started/installation","distance":0.1636},{"site":"nextjs","path":"/docs/app/getting-started/installation","distance":0.1743},{"site":"nextjs","path":"/docs/pages/guides","distance":0.1754}],"related":[{"site":"nextjs","path":"/docs/pages/getting-started","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/installation","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/getting-started/caching","title":"Caching","summary":"Learn how to cache data and UI in Next.js","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheHandlers"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/partialPrefetching"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-private"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/error"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/prefetch"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife"},{"site":"nextjs","path":"/docs/app/api-reference/functions/catchError"},{"site":"nextjs","path":"/docs/app/api-reference/functions/connection"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-viewport"},{"site":"nextjs","path":"/docs/app/api-reference/functions/headers"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data"},{"site":"nextjs","path":"/docs/app/getting-started/revalidating"},{"site":"nextjs","path":"/docs/app/getting-started/route-handlers"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components"},{"site":"nextjs","path":"/docs/app/guides/instant-navigation"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/app/guides/streaming"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/headers"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-private"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/instant"},{"site":"nextjs","path":"/docs/app/api-reference/functions/after"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies"},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch"},{"site":"nextjs","path":"/docs/app/api-reference/functions/forbidden"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-viewport"},{"site":"nextjs","path":"/docs/app/api-reference/functions/headers"},{"site":"nextjs","path":"/docs/app/api-reference/functions/image-response"},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidatePath"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unauthorized"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_cache"},{"site":"nextjs","path":"/docs/app/getting-started"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data"},{"site":"nextjs","path":"/docs/app/getting-started/revalidating"},{"site":"nextjs","path":"/docs/app/getting-started/route-handlers"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/ai-agents"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components"},{"site":"nextjs","path":"/docs/app/guides/building"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/tanstack-query"},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components"},{"site":"nextjs","path":"/docs/app/guides/instant-navigation"},{"site":"nextjs","path":"/docs/app/guides/interactive-apps"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching"},{"site":"nextjs","path":"/docs/app/guides/prefetching"},{"site":"nextjs","path":"/docs/app/guides/preserving-ui-state"},{"site":"nextjs","path":"/docs/app/guides/production-checklist"},{"site":"nextjs","path":"/docs/app/guides/rendering-philosophy"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary"},{"site":"nextjs","path":"/docs/app/guides/streaming"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"},{"site":"vercel-docs","path":"/docs/partial-prerendering"},{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute"}],"requires":[{"site":"nextjs","path":"/docs/app/getting-started"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/building","distance":0.1671},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","distance":0.1794},{"site":"nextjs","path":"/docs/app/glossary","distance":0.1862},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching","distance":0.1957},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife","distance":0.1995}],"related":[{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","via":"inbound"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"inbound"},{"site":"vercel-docs","path":"/docs/partial-prerendering","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute","via":"inbound"},{"site":"vercel-docs","path":"/docs/partial-prerendering/quickstart","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/building","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/public-static-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes","via":"inbound"}]},{"site":"nextjs","path":"/docs/app/getting-started/css","title":"CSS","summary":"Learn about the different ways to add CSS to your application, including Tailwind CSS, CSS Modules, Global CSS, and more.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cssChunking"},{"site":"nextjs","path":"/docs/app/guides/css-in-js"},{"site":"nextjs","path":"/docs/app/guides/sass"},{"site":"nextjs","path":"/docs/app/guides/tailwind-v3-css"},{"site":"nextjs","path":"/docs/architecture/fast-refresh"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/font"},{"site":"nextjs","path":"/docs/app/api-reference/components/image"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cssChunking"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/webpack"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata"},{"site":"nextjs","path":"/docs/app/api-reference/turbopack"},{"site":"nextjs","path":"/docs/app/getting-started"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/app/guides/tailwind-v3-css"},{"site":"nextjs","path":"/docs/pages/api-reference/components/font"},{"site":"nextjs","path":"/docs/pages/api-reference/components/image"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/webpack"},{"site":"nextjs","path":"/docs/pages/api-reference/turbopack"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-app"},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/pages/guides/post-css"},{"site":"nextjs","path":"/docs/pages/guides/tailwind-v3-css"}],"requires":[{"site":"nextjs","path":"/docs/app/getting-started"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/getting-started/css","distance":0.0238},{"site":"nextjs","path":"/docs/pages/guides/tailwind-v3-css","distance":0.1252},{"site":"nextjs","path":"/docs/app/guides/tailwind-v3-css","distance":0.1305},{"site":"nextjs","path":"/docs/app/guides/css-in-js","distance":0.1722},{"site":"nextjs","path":"/docs/pages/guides/css-in-js","distance":0.1788}],"related":[{"site":"nextjs","path":"/docs/pages/getting-started/css","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/tailwind-v3-css","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/css-in-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/post-css","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/getting-started/deploying","title":"Deploying","summary":"Learn how to deploy your Next.js application.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/testing-adapters"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath"},{"site":"nextjs","path":"/docs/app/guides/building"},{"site":"nextjs","path":"/docs/app/guides/custom-server"},{"site":"nextjs","path":"/docs/app/guides/deploying-to-platforms"},{"site":"nextjs","path":"/docs/app/guides/local-development"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/app/guides/single-page-applications"},{"site":"nextjs","path":"/docs/app/guides/static-exports"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/assetPrefix"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheHandlers"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/incrementalCacheHandlerPath"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/api-reference/functions/after"},{"site":"nextjs","path":"/docs/app/getting-started"},{"site":"nextjs","path":"/docs/app/guides/building"},{"site":"nextjs","path":"/docs/app/guides/deploying-to-platforms"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/app/guides/local-development"},{"site":"nextjs","path":"/docs/app/guides/rendering-philosophy"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/app/guides/streaming"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/pages/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting"}],"requires":[{"site":"nextjs","path":"/docs/app/getting-started"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/getting-started/deploying","distance":0.0043},{"site":"nextjs","path":"/docs/app/guides/deploying-to-platforms","distance":0.132},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","distance":0.2031},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2075},{"site":"nextjs","path":"/docs/app/guides/static-exports","distance":0.2085}],"related":[{"site":"nextjs","path":"/docs/pages/getting-started/deploying","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/rendering-philosophy","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/getting-started/error-handling","title":"Error Handling","summary":"Learn how to display expected errors and handle uncaught exceptions.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/error"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found"},{"site":"nextjs","path":"/docs/app/api-reference/functions/catchError"},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found"},{"site":"nextjs","path":"/docs/app/api-reference/functions/redirect"},{"site":"nextjs","path":"/docs/app/getting-started/project-structure"},{"site":"nextjs","path":"/docs/app/guides/forms"},{"site":"nextjs","path":"/docs/app/guides/internationalization"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/error"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes"},{"site":"nextjs","path":"/docs/app/api-reference/functions/catchError"},{"site":"nextjs","path":"/docs/app/getting-started"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/tanstack-query"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/app/guides/interactive-apps"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/app/guides/production-checklist"},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration"}],"requires":[{"site":"nextjs","path":"/docs/app/getting-started"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/error","distance":0.107},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring/error-handling","distance":0.1595},{"site":"nextjs","path":"/docs/app/api-reference/functions/catchError","distance":0.1724},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found","distance":0.1766},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found","distance":0.1829}],"related":[{"site":"nextjs","path":"/docs/pages/building-your-application/configuring/error-handling","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-error","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/redirecting","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data","title":"Fetching Data","summary":"Learn how to fetch data and stream content that depends on data.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/logging"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/taint"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages"},{"site":"nextjs","path":"/docs/app/getting-started/project-structure"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching"},{"site":"nextjs","path":"/docs/app/guides/data-security"},{"site":"nextjs","path":"/docs/app/guides/single-page-applications"},{"site":"nextjs","path":"/docs/app/guides/streaming"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/appDir"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/devIndicators"},{"site":"nextjs","path":"/docs/app/api-reference/config/typescript"},{"site":"nextjs","path":"/docs/app/getting-started"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/tanstack-query"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/app/guides/production-checklist"},{"site":"nextjs","path":"/docs/app/guides/server-actions"},{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary"},{"site":"nextjs","path":"/docs/app/guides/single-page-applications"},{"site":"nextjs","path":"/docs/app/guides/streaming"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-initial-props"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-server-side-props"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props"},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache"}],"requires":[{"site":"nextjs","path":"/docs/app/getting-started"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/streaming","distance":0.1746},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache","distance":0.2025},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote","distance":0.2026},{"site":"nextjs","path":"/docs/app/guides/single-page-applications","distance":0.2468},{"site":"nextjs","path":"/docs/app/getting-started/caching","distance":0.2472}],"related":[{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","via":"inbound"},{"site":"swr","path":"/docs/with-nextjs","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/getting-started/fonts","title":"Font Optimization","summary":"Learn how to optimize fonts in Next.js","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/font"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/public-folder"}],"inbound":[{"site":"nextjs","path":"/docs/app/getting-started"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"v0","path":"/docs/design-systems-legacy"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"},{"site":"vercel-docs","path":"/docs/production-checklist"},{"site":"vercel-kb","path":"/kb/guide/cls-on-vercel"}],"requires":[{"site":"nextjs","path":"/docs/app/getting-started"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/getting-started/fonts","distance":0.049},{"site":"nextjs","path":"/docs/app/api-reference/components/font","distance":0.1704},{"site":"nextjs","path":"/docs/pages/api-reference/components/font","distance":0.1977},{"site":"nextjs","path":"/docs/app/getting-started/css","distance":0.2354},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.2431}],"related":[{"site":"v0","path":"/docs/design-systems-legacy","via":"inbound"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"inbound"},{"site":"vercel-docs","path":"/docs/production-checklist","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/cls-on-vercel","via":"inbound"},{"site":"nextjs","path":"/docs/pages/getting-started/fonts","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/components/font","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/css","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/images","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/getting-started/images","title":"Image Optimization","summary":"Learn how to optimize images in Next.js","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/image"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/public-folder"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/image"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/headers"},{"site":"nextjs","path":"/docs/app/getting-started"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/pages/api-reference/components/image"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/headers"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting"},{"site":"vercel-docs","path":"/docs/image-optimization/quickstart"}],"requires":[{"site":"nextjs","path":"/docs/app/getting-started"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/getting-started/images","distance":0.0057},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/images","distance":0.1949},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/images","distance":0.1999},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image","distance":0.215},{"site":"nextjs","path":"/docs/app/api-reference/components/image","distance":0.2181}],"related":[{"site":"vercel-docs","path":"/docs/image-optimization/quickstart","via":"inbound"},{"site":"nextjs","path":"/docs/pages/getting-started/images","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/images","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/images","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/components/image","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/getting-started/installation","title":"Installation","summary":"Learn how to create a new Next.js application with the `create-next-app` CLI, and set up TypeScript, ESLint, and Module Path Aliases.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/cli/create-next-app"},{"site":"nextjs","path":"/docs/app/api-reference/config/eslint"},{"site":"nextjs","path":"/docs/app/api-reference/config/typescript"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/public-folder"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/src-folder"},{"site":"nextjs","path":"/docs/app/api-reference/turbopack"},{"site":"nextjs","path":"/docs/app/getting-started/upgrading"},{"site":"nextjs","path":"/docs/app/guides/ai-agents"},{"site":"nextjs","path":"/docs/architecture/supported-browsers"}],"inbound":[{"site":"nextjs","path":"/docs/app/getting-started"},{"site":"nextjs","path":"/docs/app/getting-started/project-structure"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/mdx"},{"site":"nextjs","path":"/docs/app/guides/testing/jest"},{"site":"nextjs","path":"/docs/pages/getting-started/project-structure"},{"site":"nextjs","path":"/docs/pages/guides/testing/jest"},{"site":"vercel-kb","path":"/kb/guide/cost-aware-model-routing-with-ai-gateway"}],"requires":[{"site":"nextjs","path":"/docs/app/getting-started"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/getting-started/installation","distance":0.0189},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","distance":0.1698},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.1713},{"site":"nextjs","path":"/docs/app/getting-started","distance":0.1743},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-9","distance":0.182}],"related":[{"site":"vercel-kb","path":"/kb/guide/cost-aware-model-routing-with-ai-gateway","via":"inbound"},{"site":"nextjs","path":"/docs/pages/getting-started/installation","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-9","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","title":"Layouts and Pages","summary":"Learn how to create your first pages and layouts, and link between them with the Link component.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/cli/next"},{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-search-params"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"},{"site":"nextjs","path":"/docs/app/glossary"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/template"},{"site":"nextjs","path":"/docs/app/getting-started"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/app/guides/preserving-ui-state"},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration"}],"requires":[{"site":"nextjs","path":"/docs/app/getting-started"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","distance":0.1011},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.1046},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating","distance":0.1291},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page","distance":0.1466},{"site":"nextjs","path":"/docs/app/guides/internationalization","distance":0.1549}],"related":[{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/internationalization","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-root-params","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","title":"Linking and Navigating","summary":"Learn how the built-in navigation optimizations work, including prefetching, prerendering, and client-side navigation, and how to optimize navigation for dynamic routes and slow networks.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/devIndicators"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/useOffline"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-link-status"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-pathname"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-search-params"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages"},{"site":"nextjs","path":"/docs/app/getting-started/revalidating"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching"},{"site":"nextjs","path":"/docs/app/guides/offline-support"},{"site":"nextjs","path":"/docs/app/guides/package-bundling"},{"site":"nextjs","path":"/docs/app/guides/prefetching"},{"site":"nextjs","path":"/docs/app/guides/streaming"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/form"},{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/devIndicators"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/staleTimes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/default"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes"},{"site":"nextjs","path":"/docs/app/api-reference/functions/redirect"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-link-status"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-search-params"},{"site":"nextjs","path":"/docs/app/getting-started"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/authentication"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-vite"},{"site":"nextjs","path":"/docs/app/guides/prefetching"},{"site":"nextjs","path":"/docs/app/guides/production-checklist"},{"site":"nextjs","path":"/docs/app/guides/single-page-applications"},{"site":"nextjs","path":"/docs/app/guides/streaming"},{"site":"nextjs","path":"/docs/pages/api-reference/components/form"},{"site":"nextjs","path":"/docs/pages/api-reference/components/link"},{"site":"nextjs","path":"/docs/pages/guides/authentication"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-vite"},{"site":"turborepo","path":"/docs/guides/frameworks/framework-bindings"}],"requires":[{"site":"nextjs","path":"/docs/app/getting-started"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.1046},{"site":"nextjs","path":"/docs/app/guides/prefetching","distance":0.1091},{"site":"nextjs","path":"/docs/app/guides","distance":0.1302},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating","distance":0.1384},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching","distance":0.1472}],"related":[{"site":"turborepo","path":"/docs/guides/frameworks/framework-bindings","via":"inbound"},{"site":"nextjs","path":"/docs/app/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/lazy-loading","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images","title":"Metadata and OG images","summary":"Learn how to add metadata to your pages and create dynamic OG images.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/htmlLimitedBots"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/app-icons"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/robots"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/sitemap"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-viewport"},{"site":"nextjs","path":"/docs/app/api-reference/functions/image-response"},{"site":"vercel-docs","path":"/docs/og-image-generation"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/error"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/getting-started"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/mdx"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-vite"},{"site":"nextjs","path":"/docs/app/guides/production-checklist"},{"site":"nextjs","path":"/docs/app/guides/upgrading/codemods"},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-vite"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/codemods"}],"requires":[{"site":"nextjs","path":"/docs/app/getting-started"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-image-metadata","distance":0.1537},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata","distance":0.1581},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image","distance":0.1791},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata","distance":0.1923},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-viewport","distance":0.1955}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-image-metadata","via":"neighbor"},{"site":"nextjs","path":"/docs/community/contribution-guide","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/images","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/images","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data","title":"Mutating Data","summary":"Learn how to mutate data using Server Functions and Server Actions in Next.js.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies"},{"site":"nextjs","path":"/docs/app/api-reference/functions/redirect"},{"site":"nextjs","path":"/docs/app/api-reference/functions/refresh"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidatePath"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/updateTag"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data"},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend"},{"site":"nextjs","path":"/docs/app/guides/data-security"},{"site":"nextjs","path":"/docs/app/guides/interactive-apps"},{"site":"nextjs","path":"/docs/app/guides/offline-support"},{"site":"nextjs","path":"/docs/app/guides/server-actions"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/form"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/maxDuration"},{"site":"nextjs","path":"/docs/app/api-reference/functions/after"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies"},{"site":"nextjs","path":"/docs/app/api-reference/functions/forbidden"},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found"},{"site":"nextjs","path":"/docs/app/api-reference/functions/permanentRedirect"},{"site":"nextjs","path":"/docs/app/api-reference/functions/redirect"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unauthorized"},{"site":"nextjs","path":"/docs/app/api-reference/functions/updateTag"},{"site":"nextjs","path":"/docs/app/getting-started"},{"site":"nextjs","path":"/docs/app/getting-started/revalidating"},{"site":"nextjs","path":"/docs/app/guides/authentication"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components"},{"site":"nextjs","path":"/docs/app/guides/draft-mode"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/app/guides/interactive-apps"},{"site":"nextjs","path":"/docs/app/guides/multi-zones"},{"site":"nextjs","path":"/docs/app/guides/production-checklist"},{"site":"nextjs","path":"/docs/app/guides/redirecting"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/app/guides/server-actions"},{"site":"nextjs","path":"/docs/app/guides/static-exports"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting"},{"site":"vercel-docs","path":"/docs/skew-protection"},{"site":"vercel-kb","path":"/kb/guide/building-community-moderation-agents-using-ai-sdk"},{"site":"vercel-kb","path":"/kb/guide/building-human-in-the-loop-agents-for-community-moderation-with-durable-workflows"}],"requires":[{"site":"nextjs","path":"/docs/app/getting-started"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/server-actions","distance":0.0586},{"site":"nextjs","path":"/docs/app/guides/forms","distance":0.1359},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-server","distance":0.143},{"site":"nextjs","path":"/docs/app/api-reference/components/form","distance":0.1978},{"site":"nextjs","path":"/docs/pages/guides/forms","distance":0.2049}],"related":[{"site":"vercel-docs","path":"/docs/skew-protection","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/building-community-moderation-agents-using-ai-sdk","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/building-human-in-the-loop-agents-for-community-moderation-with-durable-workflows","via":"inbound"},{"site":"nextjs","path":"/docs/app/guides/forms","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-server","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/components/form","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/forms","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/getting-started/project-structure","title":"Project Structure","summary":"Learn the folder and file conventions in Next.js, and how to organize your project.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/eslint"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/config/typescript"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/default"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/error"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/intercepting-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/app-icons"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/robots"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/sitemap"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/public-folder"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-groups"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/src-folder"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/template"},{"site":"nextjs","path":"/docs/app/getting-started/installation"},{"site":"nextjs","path":"/docs/app/guides/environment-variables"},{"site":"nextjs","path":"/docs/app/guides/instrumentation"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/error"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/src-folder"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/template"},{"site":"nextjs","path":"/docs/app/getting-started"},{"site":"nextjs","path":"/docs/app/getting-started/error-handling"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data"},{"site":"nextjs","path":"/docs/app/glossary"}],"requires":[{"site":"nextjs","path":"/docs/app/getting-started"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/getting-started/project-structure","distance":0.2139},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/src-folder","distance":0.2664},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-groups","distance":0.2794},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.2873},{"site":"nextjs","path":"/docs/app/glossary","distance":0.2973}],"related":[{"site":"nextjs","path":"/docs/pages/getting-started/project-structure","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/app/glossary","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/src-folder","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/getting-started/proxy","title":"Proxy","summary":"Learn how to use Proxy","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/redirects"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/guides/authentication"},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/getting-started"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/proxy"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/custom-subpaths"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/serving-static-files"},{"site":"vercel-kb","path":"/kb/guide/dynamic-redirects-with-global-config-and-next-js-proxy"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall"},{"site":"vercel-shop","path":"/docs/anatomy/proxy"}],"requires":[{"site":"nextjs","path":"/docs/app/getting-started"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy","distance":0.1906},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/proxy","distance":0.2113},{"site":"flags-sdk","path":"/docs/frameworks/next/examples/proxy","distance":0.2139},{"site":"vercel-shop","path":"/docs/anatomy/proxy","distance":0.2444},{"site":"nextjs","path":"/docs/app/guides/redirecting","distance":0.2604}],"related":[{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/custom-subpaths","via":"inbound"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/serving-static-files","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/dynamic-redirects-with-global-config-and-next-js-proxy","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall","via":"inbound"},{"site":"vercel-shop","path":"/docs/anatomy/proxy","via":"inbound"},{"site":"flags-sdk","path":"/docs/frameworks/next/examples/proxy","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/proxy","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/redirecting","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/redirecting","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-response","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-response","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/getting-started/revalidating","title":"Revalidating","summary":"Learn how to revalidate cached data using time-based and on-demand strategies.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidatePath"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/updateTag"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components"},{"site":"nextjs","path":"/docs/app/guides/server-actions"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/instant"},{"site":"nextjs","path":"/docs/app/getting-started"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"},{"site":"nextjs","path":"/docs/app/guides/building"},{"site":"nextjs","path":"/docs/app/guides/instant-navigation"},{"site":"nextjs","path":"/docs/app/guides/interactive-apps"},{"site":"vercel-kb","path":"/kb/guide/how-to-move-to-on-demand-revalidation"}],"requires":[{"site":"nextjs","path":"/docs/app/getting-started"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works","distance":0.0936},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag","distance":0.1012},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidatePath","distance":0.1289},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","distance":0.1319},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag","distance":0.1454}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-move-to-on-demand-revalidation","via":"inbound"},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/incrementalCacheHandlerPath","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheLife","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/getting-started/route-handlers","title":"Route Handlers","summary":"Learn how to use Route Handlers","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/app-icons"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/sitemap"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/functions/connection"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies"},{"site":"nextjs","path":"/docs/app/api-reference/functions/headers"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-request"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-response"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/api-routes"}],"inbound":[{"site":"nextjs","path":"/docs/app/getting-started"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"vercel-kb","path":"/kb/guide/how-to-serve-documentation-for-agents"}],"requires":[{"site":"nextjs","path":"/docs/app/getting-started"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route","distance":0.1497},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/api-routes","distance":0.1789},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.1916},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.2175},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend","distance":0.223}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-serve-documentation-for-agents","via":"inbound"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/internationalization","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/redirecting","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components","title":"Server and Client Components","summary":"Learn how you can use React Server and Client Components to render parts of your application on the server or the client.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/directives/use-client"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary"},{"site":"nextjs","path":"/docs/app/guides/single-page-applications"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/appDir"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/images"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverExternalPackages"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/error"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes"},{"site":"nextjs","path":"/docs/app/api-reference/functions/after"},{"site":"nextjs","path":"/docs/app/api-reference/functions/catchError"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies"},{"site":"nextjs","path":"/docs/app/api-reference/functions/draft-mode"},{"site":"nextjs","path":"/docs/app/api-reference/functions/forbidden"},{"site":"nextjs","path":"/docs/app/api-reference/functions/headers"},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found"},{"site":"nextjs","path":"/docs/app/api-reference/functions/redirect"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unauthorized"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-pathname"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-search-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-selected-layout-segment"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-selected-layout-segments"},{"site":"nextjs","path":"/docs/app/getting-started"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/authentication"},{"site":"nextjs","path":"/docs/app/guides/building"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching"},{"site":"nextjs","path":"/docs/app/guides/content-security-policy"},{"site":"nextjs","path":"/docs/app/guides/data-security"},{"site":"nextjs","path":"/docs/app/guides/internationalization"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-vite"},{"site":"nextjs","path":"/docs/app/guides/production-checklist"},{"site":"nextjs","path":"/docs/app/guides/redirecting"},{"site":"nextjs","path":"/docs/app/guides/scripts"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary"},{"site":"nextjs","path":"/docs/app/guides/single-page-applications"},{"site":"nextjs","path":"/docs/app/guides/videos"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/api-routes"},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-vite"},{"site":"nextjs","path":"/docs/pages/guides/scripts"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package"},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-writes"}],"requires":[{"site":"nextjs","path":"/docs/app/getting-started"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary","distance":0.1129},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-client","distance":0.1408},{"site":"nextjs","path":"/docs/app/guides/lazy-loading","distance":0.2036},{"site":"nextjs","path":"/docs/app/guides/single-page-applications","distance":0.2069},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-server","distance":0.2185}],"related":[{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-writes","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-rsc-payload-size","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/react-context-state-management-nextjs","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/lazy-loading","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-server","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/lazy-loading","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/getting-started/upgrading","title":"Upgrading","summary":"Learn how to upgrade your Next.js application to the latest version or canary.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/authInterrupts"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/forbidden"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/unauthorized"},{"site":"nextjs","path":"/docs/app/api-reference/functions/forbidden"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unauthorized"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-14"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/authInterrupts"},{"site":"nextjs","path":"/docs/app/getting-started"},{"site":"nextjs","path":"/docs/app/getting-started/installation"},{"site":"nextjs","path":"/docs/app/guides/ai-agents"},{"site":"nextjs","path":"/docs/pages/getting-started/installation"}],"requires":[{"site":"nextjs","path":"/docs/app/getting-started"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/upgrading","distance":0.1685},{"site":"nextjs","path":"/docs/app/guides/upgrading","distance":0.1891},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-10","distance":0.222},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-14","distance":0.2331},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-14","distance":0.2339}],"related":[{"site":"nextjs","path":"/docs/pages/guides/upgrading","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-10","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-14","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/installation","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/glossary","title":"Glossary","summary":"A glossary of common terms used in Next.js.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/cli/next"},{"site":"nextjs","path":"/docs/app/api-reference/components/font"},{"site":"nextjs","path":"/docs/app/api-reference/components/image"},{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/deploymentId"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/partialPrefetching"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/redirects"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/rewrites"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/staleTimes"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackFileSystemCache"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-client"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-server"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/error"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/intercepting-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/public-folder"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-groups"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies"},{"site":"nextjs","path":"/docs/app/api-reference/functions/draft-mode"},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata"},{"site":"nextjs","path":"/docs/app/api-reference/functions/headers"},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found"},{"site":"nextjs","path":"/docs/app/api-reference/functions/redirect"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidatePath"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/updateTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-pathname"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-search-params"},{"site":"nextjs","path":"/docs/app/api-reference/turbopack"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/error-handling"},{"site":"nextjs","path":"/docs/app/getting-started/fonts"},{"site":"nextjs","path":"/docs/app/getting-started/images"},{"site":"nextjs","path":"/docs/app/getting-started/installation"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images"},{"site":"nextjs","path":"/docs/app/getting-started/project-structure"},{"site":"nextjs","path":"/docs/app/getting-started/proxy"},{"site":"nextjs","path":"/docs/app/getting-started/route-handlers"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching"},{"site":"nextjs","path":"/docs/app/guides/environment-variables"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching"},{"site":"nextjs","path":"/docs/app/guides/package-bundling"},{"site":"nextjs","path":"/docs/app/guides/prefetching"},{"site":"nextjs","path":"/docs/app/guides/redirecting"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/app/guides/server-actions"},{"site":"nextjs","path":"/docs/app/guides/static-exports"},{"site":"nextjs","path":"/docs/app/guides/streaming"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/devIndicators"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/partialPrefetching"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/staleTimes"},{"site":"nextjs","path":"/docs/app/api-reference/directives"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-private"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/app-icons"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/manifest"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/robots"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/sitemap"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/prefetch"},{"site":"nextjs","path":"/docs/app/api-reference/functions/after"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife"},{"site":"nextjs","path":"/docs/app/api-reference/functions/connection"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies"},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/headers"},{"site":"nextjs","path":"/docs/app/api-reference/functions/io"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-root-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidatePath"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-search-params"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching"},{"site":"nextjs","path":"/docs/app/guides/authentication"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components"},{"site":"nextjs","path":"/docs/app/guides/building"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components"},{"site":"nextjs","path":"/docs/app/guides/content-security-policy"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components"},{"site":"nextjs","path":"/docs/app/guides/instant-navigation"},{"site":"nextjs","path":"/docs/app/guides/interactive-apps"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/app/guides/offline-support"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching"},{"site":"nextjs","path":"/docs/app/guides/prefetching"},{"site":"nextjs","path":"/docs/app/guides/production-checklist"},{"site":"nextjs","path":"/docs/app/guides/public-static-pages"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/app/guides/server-actions"},{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary"},{"site":"nextjs","path":"/docs/app/guides/streaming"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/devIndicators"},{"site":"nextjs","path":"/docs/pages/guides/content-security-policy"},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting"}],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.176},{"site":"nextjs","path":"/docs/app/getting-started/caching","distance":0.1862},{"site":"nextjs","path":"/docs/app/guides/self-hosting","distance":0.1876},{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary","distance":0.199},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","distance":0.2061}],"related":[{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/rendering-philosophy","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/public-static-pages","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides","title":"Guides","summary":"Learn how to implement common patterns and real-world use cases using Next.js","outbound":[{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching"},{"site":"nextjs","path":"/docs/app/guides/ai-agents"},{"site":"nextjs","path":"/docs/app/guides/analytics"},{"site":"nextjs","path":"/docs/app/guides/authentication"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components"},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend"},{"site":"nextjs","path":"/docs/app/guides/building"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components"},{"site":"nextjs","path":"/docs/app/guides/cdn-caching"},{"site":"nextjs","path":"/docs/app/guides/ci-build-caching"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching"},{"site":"nextjs","path":"/docs/app/guides/content-security-policy"},{"site":"nextjs","path":"/docs/app/guides/css-in-js"},{"site":"nextjs","path":"/docs/app/guides/custom-server"},{"site":"nextjs","path":"/docs/app/guides/data-security"},{"site":"nextjs","path":"/docs/app/guides/debugging"},{"site":"nextjs","path":"/docs/app/guides/deploying-to-platforms"},{"site":"nextjs","path":"/docs/app/guides/draft-mode"},{"site":"nextjs","path":"/docs/app/guides/environment-variables"},{"site":"nextjs","path":"/docs/app/guides/forms"},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components"},{"site":"nextjs","path":"/docs/app/guides/instant-navigation"},{"site":"nextjs","path":"/docs/app/guides/instrumentation"},{"site":"nextjs","path":"/docs/app/guides/interactive-apps"},{"site":"nextjs","path":"/docs/app/guides/internationalization"},{"site":"nextjs","path":"/docs/app/guides/json-ld"},{"site":"nextjs","path":"/docs/app/guides/lazy-loading"},{"site":"nextjs","path":"/docs/app/guides/local-development"},{"site":"nextjs","path":"/docs/app/guides/mcp"},{"site":"nextjs","path":"/docs/app/guides/mdx"},{"site":"nextjs","path":"/docs/app/guides/memory-usage"},{"site":"nextjs","path":"/docs/app/guides/migrating"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/multi-tenant"},{"site":"nextjs","path":"/docs/app/guides/multi-zones"},{"site":"nextjs","path":"/docs/app/guides/offline-support"},{"site":"nextjs","path":"/docs/app/guides/open-telemetry"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching"},{"site":"nextjs","path":"/docs/app/guides/package-bundling"},{"site":"nextjs","path":"/docs/app/guides/ppr-platform-guide"},{"site":"nextjs","path":"/docs/app/guides/prefetching"},{"site":"nextjs","path":"/docs/app/guides/preserving-ui-state"},{"site":"nextjs","path":"/docs/app/guides/preventing-flash-before-hydration"},{"site":"nextjs","path":"/docs/app/guides/production-checklist"},{"site":"nextjs","path":"/docs/app/guides/progressive-web-apps"},{"site":"nextjs","path":"/docs/app/guides/public-static-pages"},{"site":"nextjs","path":"/docs/app/guides/redirecting"},{"site":"nextjs","path":"/docs/app/guides/rendering-philosophy"},{"site":"nextjs","path":"/docs/app/guides/sass"},{"site":"nextjs","path":"/docs/app/guides/scripts"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/app/guides/server-actions"},{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary"},{"site":"nextjs","path":"/docs/app/guides/single-page-applications"},{"site":"nextjs","path":"/docs/app/guides/static-exports"},{"site":"nextjs","path":"/docs/app/guides/streaming"},{"site":"nextjs","path":"/docs/app/guides/tailwind-v3-css"},{"site":"nextjs","path":"/docs/app/guides/testing"},{"site":"nextjs","path":"/docs/app/guides/third-party-libraries"},{"site":"nextjs","path":"/docs/app/guides/upgrading"},{"site":"nextjs","path":"/docs/app/guides/videos"},{"site":"nextjs","path":"/docs/app/guides/view-transitions"}],"inbound":[],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides","distance":0.0541},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.1268},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.1302},{"site":"nextjs","path":"/docs/app/guides/production-checklist","distance":0.1426},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","distance":0.1604}],"related":[{"site":"nextjs","path":"/docs/pages/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/production-checklist","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching","title":"Adopting Partial Prefetching","summary":"Learn how to enable Partial Prefetching and what changes for `<Link>`.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/partialPrefetching"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/instant"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/prefetch"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata"},{"site":"nextjs","path":"/docs/app/api-reference/functions/headers"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/instant-navigation"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching"},{"site":"nextjs","path":"/docs/app/guides/upgrading/codemods"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/prefetch"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/ai-agents"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components"},{"site":"nextjs","path":"/docs/app/guides/instant-navigation"},{"site":"nextjs","path":"/docs/app/guides/interactive-apps"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching"},{"site":"nextjs","path":"/docs/app/guides/prefetching"},{"site":"nextjs","path":"/docs/app/guides/upgrading/codemods"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/codemods"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching","distance":0.1509},{"site":"nextjs","path":"/docs/app/guides/prefetching","distance":0.1625},{"site":"nextjs","path":"/docs/app/guides/instant-navigation","distance":0.1919},{"site":"nextjs","path":"/docs/app/getting-started/caching","distance":0.21},{"site":"nextjs","path":"/docs/app/guides/streaming","distance":0.2344}],"related":[{"site":"nextjs","path":"/docs/app/guides/prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/caching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/streaming","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/building","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/ai-agents","title":"AI Coding Agents","summary":"Learn how to configure your Next.js project so AI coding agents use up-to-date documentation instead of outdated training data.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/cli/create-next-app"},{"site":"nextjs","path":"/docs/app/api-reference/cli/next"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/logging"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/upgrading"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching"},{"site":"nextjs","path":"/docs/app/guides/building"},{"site":"nextjs","path":"/docs/app/guides/instant-navigation"},{"site":"nextjs","path":"/docs/app/guides/mcp"}],"inbound":[{"site":"nextjs","path":"/docs/app/getting-started/installation"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/instant-navigation"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"},{"site":"nextjs","path":"/docs/pages/getting-started/installation"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/installation","distance":0.1925},{"site":"nextjs","path":"/docs/pages/getting-started/installation","distance":0.2148},{"site":"vercel-shop","path":"/docs/getting-started/extending-with-agents","distance":0.2176},{"site":"nextjs","path":"/docs/app/guides","distance":0.2274},{"site":"vercel-docs","path":"/docs/agent-resources","distance":0.2311}],"related":[{"site":"vercel-shop","path":"/docs/getting-started/extending-with-agents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/ship-it","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/coding-agents","via":"neighbor"},{"site":"v0","path":"/docs/text-prompting","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","via":"neighbor"},{"site":"workflow","path":"/docs/ai","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/installation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/analytics","title":"Analytics","summary":"Measure and track page performance using Next.js Speed Insights","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions/use-report-web-vitals"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/analytics","distance":0.0378},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-report-web-vitals","distance":0.089},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-report-web-vitals","distance":0.0891},{"site":"nextjs","path":"/docs/app/guides/production-checklist","distance":0.2282},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/webVitalsAttribution","distance":0.2368}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"inbound"},{"site":"nextjs","path":"/docs/pages/guides/analytics","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-report-web-vitals","via":"neighbor"},{"site":"vercel-shop","path":"/docs/skills/enable-analytics","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/quickstart","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/production-checklist","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/webVitalsAttribution","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/webVitalsAttribution","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/authentication","title":"Authentication","summary":"Learn how to implement authentication in your Next.js application.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components"},{"site":"nextjs","path":"/docs/app/guides/environment-variables"},{"site":"nextjs","path":"/docs/app/guides/redirecting"},{"site":"nextjs","path":"/docs/app/guides/server-actions"},{"site":"nextjs","path":"/docs/app/guides/single-page-applications"},{"site":"nextjs","path":"/docs/app/guides/streaming"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes"},{"site":"nextjs","path":"/docs/app/api-reference/functions/forbidden"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unauthorized"},{"site":"nextjs","path":"/docs/app/getting-started/proxy"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components"},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend"},{"site":"nextjs","path":"/docs/app/guides/data-security"},{"site":"nextjs","path":"/docs/app/guides/forms"},{"site":"vercel-kb","path":"/kb/guide/application-authentication-on-vercel"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/authentication","distance":0.2248},{"site":"nextjs","path":"/docs/app/guides/forms","distance":0.2435},{"site":"nextjs","path":"/docs/app/guides/data-security","distance":0.2634},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components","distance":0.2801},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data","distance":0.2868}],"related":[{"site":"vercel-kb","path":"/kb/guide/application-authentication-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/nextjs-prisma-postgres","via":"neighbor"},{"site":"vercel-docs","path":"/docs/botid/get-started","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/session-store-nextjs-redis-vercel-kv","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/authentication","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/forms","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/forms","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-server","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/components/form","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components","title":"Authentication with Cache Components","summary":"Learn how to read the user session, show authenticated UI without slowing down the page, and cache data derived from the session when Cache Components is enabled.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/partialPrefetching"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-private"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/connection"},{"site":"nextjs","path":"/docs/app/api-reference/functions/updateTag"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching"},{"site":"nextjs","path":"/docs/app/guides/authentication"},{"site":"nextjs","path":"/docs/app/guides/data-security"},{"site":"nextjs","path":"/docs/app/guides/instant-navigation"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching"},{"site":"nextjs","path":"/docs/app/guides/single-page-applications"},{"site":"nextjs","path":"/docs/app/guides/streaming"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/authentication"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/pages/guides/authentication"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/authentication","distance":0.1662},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching","distance":0.184},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents","distance":0.184},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","distance":0.1944},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","distance":0.2015}],"related":[{"site":"nextjs","path":"/docs/pages/guides/authentication","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/self-hosting","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend","title":"Backend for Frontend","summary":"Learn how to use Next.js as a backend framework","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/rewrites"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/app-icons"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/manifest"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/robots"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/sitemap"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-request"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-response"},{"site":"nextjs","path":"/docs/app/api-reference/functions/permanentRedirect"},{"site":"nextjs","path":"/docs/app/api-reference/functions/redirect"},{"site":"nextjs","path":"/docs/app/guides/authentication"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components"},{"site":"nextjs","path":"/docs/app/guides/server-actions"},{"site":"nextjs","path":"/docs/app/guides/static-exports"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/api-routes"}],"inbound":[{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"},{"site":"nextjs","path":"/docs/app/getting-started/proxy"},{"site":"nextjs","path":"/docs/app/getting-started/route-handlers"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/data-security"},{"site":"nextjs","path":"/docs/app/guides/production-checklist"},{"site":"nextjs","path":"/docs/app/guides/server-actions"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route","distance":0.1678},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/proxy","distance":0.1949},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy","distance":0.2036},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/api-routes","distance":0.2062},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-response","distance":0.2075}],"related":[{"site":"vercel-docs","path":"/docs/botid/get-started","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/proxy","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-response","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/redirecting","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/route-handlers","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/redirecting","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/building","title":"Building","summary":"Learn what happens when you run next build and how to read the build output.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/cli/next"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/generateBuildId"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/instant"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/headers"},{"site":"nextjs","path":"/docs/app/api-reference/turbopack"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/deploying"},{"site":"nextjs","path":"/docs/app/getting-started/revalidating"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/ci-build-caching"},{"site":"nextjs","path":"/docs/app/guides/environment-variables"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components"},{"site":"nextjs","path":"/docs/app/guides/instant-navigation"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/app/guides/static-exports"},{"site":"nextjs","path":"/docs/app/guides/streaming"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/cli/next"},{"site":"nextjs","path":"/docs/app/getting-started/deploying"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/ai-agents"},{"site":"nextjs","path":"/docs/pages/api-reference/cli/next"},{"site":"nextjs","path":"/docs/pages/getting-started/deploying"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/caching","distance":0.1671},{"site":"nextjs","path":"/docs/app/guides/public-static-pages","distance":0.2248},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching","distance":0.2355},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","distance":0.2357},{"site":"nextjs","path":"/docs/app/glossary","distance":0.2633}],"related":[{"site":"vercel-docs","path":"/docs/partial-prerendering/quickstart","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/public-static-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","title":"Caching (Previous Model)","summary":"Learn how to cache and revalidate data using fetch options, unstable_cache, and route segment configs for projects not using Cache Components.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies"},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/headers"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidatePath"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_cache"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-search-params"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/app-icons"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/manifest"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/robots"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/sitemap"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config"},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/revalidating"},{"site":"nextjs","path":"/docs/app/getting-started/route-handlers"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/app/guides/interactive-apps"},{"site":"nextjs","path":"/docs/app/guides/static-exports"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache"},{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/revalidating","distance":0.1319},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","distance":0.1579},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works","distance":0.1625},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch","distance":0.1642},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components","distance":0.1685}],"related":[{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute","via":"inbound"},{"site":"nextjs","path":"/docs/app/getting-started/revalidating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/cdn-caching","title":"CDN Caching","summary":"Learn how CDN caching works with Next.js, including what works today, cache variability, and the direction toward pathname-based cache keying.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/assetPrefix"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/intercepting-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidatePath"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag"},{"site":"nextjs","path":"/docs/app/guides/deploying-to-platforms"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/app/guides/static-exports"},{"site":"nextjs","path":"/docs/app/guides/streaming"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/deploying-to-platforms"},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works"},{"site":"nextjs","path":"/docs/app/guides/rendering-philosophy"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/rendering-philosophy","distance":0.1537},{"site":"nextjs","path":"/docs/app/guides/self-hosting","distance":0.1676},{"site":"nextjs","path":"/docs/app/guides/deploying-to-platforms","distance":0.1981},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","distance":0.2055},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","distance":0.2087}],"related":[{"site":"nextjs","path":"/docs/app/guides/rendering-philosophy","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/ci-build-caching","title":"CI Build Caching","summary":"Learn how to configure CI to cache Next.js builds","outbound":[{"site":"vercel-docs","path":"/docs/monorepos/turborepo"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackFileSystemCache"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/building"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/ci-build-caching","distance":0.0039},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheLife","distance":0.2669},{"site":"nextjs","path":"/docs/app/guides/self-hosting","distance":0.2703},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","distance":0.2711},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackFileSystemCache","distance":0.2767}],"related":[{"site":"nextjs","path":"/docs/pages/guides/ci-build-caching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheLife","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/self-hosting","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackFileSystemCache","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching","title":"Client-side data fetching","summary":"Fetch data in Client Components with a data-fetching library, optionally provide initial data from a Server Component, and coordinate server and client caches.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/updateTag"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/tanstack-query"},{"site":"nextjs","path":"/docs/app/guides/interactive-apps"},{"site":"nextjs","path":"/docs/app/guides/prefetching"},{"site":"nextjs","path":"/docs/app/guides/single-page-applications"}],"inbound":[{"site":"nextjs","path":"/docs/app/getting-started/fetching-data"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/tanstack-query"},{"site":"nextjs","path":"/docs/app/guides/interactive-apps"},{"site":"nextjs","path":"/docs/app/guides/single-page-applications"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","distance":0.1349},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side","distance":0.1512},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching","distance":0.1839},{"site":"swr","path":"/docs/with-nextjs","distance":0.1897},{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary","distance":0.2077}],"related":[{"site":"swr","path":"/docs/with-nextjs","via":"neighbor"},{"site":"swr","path":"/docs/prefetching","via":"neighbor"},{"site":"swr","path":"/docs/getting-started","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","title":"SWR","summary":"Fetch client-side data with SWR, optionally provide initial data from a Server Component, and coordinate server and client caches.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/updateTag"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/error-handling"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/app/guides/single-page-applications"},{"site":"swr","path":"/docs/advanced/understanding"},{"site":"swr","path":"/docs/arguments"},{"site":"swr","path":"/docs/data-fetching"},{"site":"swr","path":"/docs/getting-started"},{"site":"swr","path":"/docs/mutation"},{"site":"swr","path":"/docs/revalidation"},{"site":"swr","path":"/docs/suspense"},{"site":"swr","path":"/docs/with-nextjs"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching"}],"requires":[{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching"}],"neighbors":[{"site":"swr","path":"/docs/with-nextjs","distance":0.11},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching","distance":0.1349},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side","distance":0.1597},{"site":"swr","path":"/blog/swr-v2","distance":0.1712},{"site":"swr","path":"/docs/getting-started","distance":0.1829}],"related":[{"site":"swr","path":"/blog/swr-v2","via":"neighbor"},{"site":"swr","path":"/docs/prefetching","via":"neighbor"},{"site":"swr","path":"/docs/advanced/performance","via":"neighbor"},{"site":"swr","path":"/docs/api","via":"neighbor"},{"site":"swr","path":"/docs/pagination","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/tanstack-query","title":"TanStack Query","summary":"Fetch client-side data with TanStack Query, optionally provide initial data from a Server Component, and coordinate server and client caches.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/updateTag"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/error-handling"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching"},{"site":"nextjs","path":"/docs/app/guides/single-page-applications"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching"}],"requires":[{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote","distance":0.2618},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components","distance":0.2641},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife","distance":0.2756},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache","distance":0.2907},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data","distance":0.2929}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/preventing-flash-before-hydration","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/content-security-policy","title":"Content Security Policy","summary":"Learn how to set a Content Security Policy (CSP) for your Next.js application.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/api-reference/functions/headers"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/app/glossary"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/headers"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/data-security"},{"site":"nextjs","path":"/docs/app/guides/preventing-flash-before-hydration"},{"site":"nextjs","path":"/docs/app/guides/production-checklist"},{"site":"nextjs","path":"/docs/app/guides/progressive-web-apps"},{"site":"nextjs","path":"/docs/app/guides/third-party-libraries"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/headers"},{"site":"nextjs","path":"/docs/pages/guides/production-checklist"},{"site":"nextjs","path":"/docs/pages/guides/third-party-libraries"},{"site":"vercel-kb","path":"/kb/guide/application-authentication-on-vercel"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/content-security-policy","distance":0.0212},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/headers","distance":0.2175},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/headers","distance":0.2384},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2502},{"site":"nextjs","path":"/docs/app/guides/cdn-caching","distance":0.2642}],"related":[{"site":"vercel-kb","path":"/kb/guide/application-authentication-on-vercel","via":"inbound"},{"site":"nextjs","path":"/docs/pages/guides/content-security-policy","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/headers","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/headers","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/cdn-caching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/css-in-js","title":"CSS-in-JS","summary":"Use CSS-in-JS libraries with Next.js","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/architecture/nextjs-compiler"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/image"},{"site":"nextjs","path":"/docs/app/getting-started/css"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/pages/api-reference/components/image"},{"site":"nextjs","path":"/docs/pages/getting-started/css"},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/css-in-js","distance":0.1327},{"site":"nextjs","path":"/docs/app/getting-started/css","distance":0.1722},{"site":"nextjs","path":"/docs/pages/getting-started/css","distance":0.1924},{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary","distance":0.2076},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components","distance":0.222}],"related":[{"site":"nextjs","path":"/docs/pages/guides/css-in-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/css","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/css","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/custom-server","title":"Custom Server","summary":"Start a Next.js app programmatically using a custom server.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/getting-started/deploying"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/pages/getting-started/deploying"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/custom-server","distance":0.0303},{"site":"nextjs","path":"/docs/pages/getting-started/installation","distance":0.2481},{"site":"nextjs","path":"/docs/app/getting-started/installation","distance":0.2597},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","distance":0.2614},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2708}],"related":[{"site":"nextjs","path":"/docs/pages/guides/custom-server","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/installation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/installation","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/data-security","title":"Data Security","summary":"Learn the built-in data security features in Next.js and learn best practices for protecting your application's data.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverActions"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/taint"},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/app/guides/authentication"},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend"},{"site":"nextjs","path":"/docs/app/guides/content-security-policy"},{"site":"nextjs","path":"/docs/app/guides/environment-variables"},{"site":"nextjs","path":"/docs/app/guides/forms"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/app/guides/server-actions"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/directives/use-server"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components"},{"site":"nextjs","path":"/docs/app/guides/forms"},{"site":"nextjs","path":"/docs/app/guides/production-checklist"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/app/guides/server-actions"},{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting"},{"site":"vercel-kb","path":"/kb/guide/sending-emails-from-an-application-on-vercel"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/server-actions","distance":0.2089},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data","distance":0.2376},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-server","distance":0.248},{"site":"nextjs","path":"/docs/app/guides/authentication","distance":0.2634},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components","distance":0.2688}],"related":[{"site":"vercel-kb","path":"/kb/guide/sending-emails-from-an-application-on-vercel","via":"inbound"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-server","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/single-page-applications","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/authentication","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/debugging","title":"Debugging","summary":"Learn how to debug your Next.js application with VS Code, Chrome DevTools, or Firefox DevTools.","outbound":[{"site":"nextjs","path":"/docs/pages/api-reference/cli/next"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/debugging","distance":0.0036},{"site":"nextjs","path":"/docs/app/getting-started/installation","distance":0.256},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2602},{"site":"nextjs","path":"/docs/app/guides/local-development","distance":0.2614},{"site":"nextjs","path":"/docs/pages/getting-started/installation","distance":0.2659}],"related":[{"site":"nextjs","path":"/docs/pages/guides/debugging","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/installation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/local-development","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/installation","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/deploying-to-platforms","title":"Deploying to Platforms","summary":"Understand which Next.js features require specific platform capabilities and how to choose the right deployment target.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/testing-adapters"},{"site":"nextjs","path":"/docs/app/api-reference/components/image"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheHandlers"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/incrementalCacheHandlerPath"},{"site":"nextjs","path":"/docs/app/getting-started/deploying"},{"site":"nextjs","path":"/docs/app/guides/cdn-caching"},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works"},{"site":"nextjs","path":"/docs/app/guides/ppr-platform-guide"},{"site":"nextjs","path":"/docs/app/guides/rendering-philosophy"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"}],"inbound":[{"site":"nextjs","path":"/docs/app/getting-started/deploying"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/cdn-caching"},{"site":"nextjs","path":"/docs/app/guides/ppr-platform-guide"},{"site":"nextjs","path":"/docs/app/guides/rendering-philosophy"},{"site":"nextjs","path":"/docs/pages/getting-started/deploying"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/rendering-philosophy","distance":0.1102},{"site":"nextjs","path":"/docs/app/getting-started/deploying","distance":0.132},{"site":"nextjs","path":"/docs/pages/getting-started/deploying","distance":0.1324},{"site":"nextjs","path":"/docs/app/guides/ppr-platform-guide","distance":0.1787},{"site":"nextjs","path":"/docs/app/api-reference/adapters","distance":0.1828}],"related":[{"site":"nextjs","path":"/docs/pages/getting-started/deploying","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/adapters","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/draft-mode","title":"Draft Mode","summary":"Bypass Next.js caching for a request so editors can preview unpublished content from a headless CMS.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/functions/draft-mode"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_cache"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/functions/draft-mode"},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/app/guides/static-exports"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting"},{"site":"vercel-docs","path":"/docs/draft-mode"},{"site":"vercel-kb","path":"/kb/guide/how-to-move-to-on-demand-revalidation"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/draft-mode","distance":0.0852},{"site":"nextjs","path":"/docs/app/api-reference/functions/draft-mode","distance":0.138},{"site":"vercel-docs","path":"/docs/draft-mode","distance":0.1788},{"site":"nextjs","path":"/docs/pages/guides/preview-mode","distance":0.1877},{"site":"nextjs","path":"/docs/app/guides/prefetching","distance":0.2743}],"related":[{"site":"vercel-docs","path":"/docs/draft-mode","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-move-to-on-demand-revalidation","via":"inbound"},{"site":"nextjs","path":"/docs/pages/guides/draft-mode","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/preview-mode","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/environment-variables","title":"Environment Variables","summary":"Learn to add and access environment variables in your Next.js application.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/src-folder"},{"site":"nextjs","path":"/docs/app/guides/instrumentation"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/env"},{"site":"nextjs","path":"/docs/app/api-reference/config/typescript"},{"site":"nextjs","path":"/docs/app/api-reference/edge"},{"site":"nextjs","path":"/docs/app/getting-started/project-structure"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/authentication"},{"site":"nextjs","path":"/docs/app/guides/building"},{"site":"nextjs","path":"/docs/app/guides/data-security"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-vite"},{"site":"nextjs","path":"/docs/app/guides/production-checklist"},{"site":"nextjs","path":"/docs/app/guides/testing/jest"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript"},{"site":"nextjs","path":"/docs/pages/api-reference/edge"},{"site":"nextjs","path":"/docs/pages/getting-started/project-structure"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-vite"},{"site":"nextjs","path":"/docs/pages/guides/production-checklist"},{"site":"nextjs","path":"/docs/pages/guides/testing/jest"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/environment-variables","distance":0.0042},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/env","distance":0.145},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/env","distance":0.148},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2357},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","distance":0.245}],"related":[{"site":"nextjs","path":"/docs/pages/guides/environment-variables","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/env","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/env","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/forms","title":"Forms","summary":"Learn how to create forms in Next.js with React Server Actions.","outbound":[{"site":"nextjs","path":"/docs/app/guides/authentication"},{"site":"nextjs","path":"/docs/app/guides/data-security"},{"site":"nextjs","path":"/docs/app/guides/offline-support"},{"site":"nextjs","path":"/docs/app/guides/server-actions"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes"},{"site":"nextjs","path":"/docs/app/getting-started/error-handling"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/data-security"},{"site":"nextjs","path":"/docs/app/guides/production-checklist"},{"site":"nextjs","path":"/docs/app/guides/server-actions"},{"site":"nextjs","path":"/docs/app/guides/single-page-applications"},{"site":"vercel-docs","path":"/docs/botid/form-submissions"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/mutating-data","distance":0.1359},{"site":"nextjs","path":"/docs/app/api-reference/components/form","distance":0.1395},{"site":"nextjs","path":"/docs/app/guides/server-actions","distance":0.1694},{"site":"nextjs","path":"/docs/pages/guides/forms","distance":0.1765},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-server","distance":0.1868}],"related":[{"site":"vercel-docs","path":"/docs/botid/form-submissions","via":"inbound"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/components/form","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/forms","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-server","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/components/form","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works","title":"How Revalidation Works","summary":"A deep dive into how Next.js revalidates cached content, including the tag system, cache consistency, and multi-instance coordination.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheHandlers"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/deploymentId"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidatePath"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/guides/cdn-caching"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/app/guides/rendering-philosophy"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/runtime-integration"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheHandlers"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/deploying-to-platforms"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/app/guides/rendering-philosophy"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/app/guides/server-actions"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/runtime-integration"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/revalidating","distance":0.0936},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidatePath","distance":0.1401},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag","distance":0.1601},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","distance":0.1625},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag","distance":0.1799}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-move-to-on-demand-revalidation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/revalidating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/incrementalCacheHandlerPath","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/self-hosting","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/updateTag","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration","title":"ISR","summary":"Learn how to create or update static pages at runtime with Incremental Static Regeneration.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/incrementalCacheHandlerPath"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/logging"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/dynamicParams"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidatePath"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/deploying"},{"site":"nextjs","path":"/docs/app/getting-started/error-handling"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components"},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/app/guides/static-exports"},{"site":"nextjs","path":"/docs/pages/guides/incremental-static-regeneration"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/incrementalCacheHandlerPath"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components"},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components"},{"site":"nextjs","path":"/docs/app/guides/ppr-platform-guide"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/app/guides/static-exports"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting"},{"site":"vercel-docs","path":"/docs/functions/logs"},{"site":"vercel-kb","path":"/kb/guide/how-to-effectively-load-test-your-vercel-application"},{"site":"vercel-kb","path":"/kb/guide/how-to-move-to-on-demand-revalidation"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/incremental-static-regeneration","distance":0.0185},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","distance":0.1693},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/quickstart","distance":0.17},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","distance":0.1853},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration","distance":0.1965}],"related":[{"site":"vercel-docs","path":"/docs/functions/logs","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-effectively-load-test-your-vercel-application","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-move-to-on-demand-revalidation","via":"inbound"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-revalidation-costs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/revalidating","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife","via":"inbound"},{"site":"nextjs","path":"/docs/app/guides/ppr-platform-guide","via":"inbound"}]},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","title":"ISR with Cache Components","summary":"Learn how to prerender a subset of dynamic routes, serve App Shells for the rest, and upgrade them after the first visit.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheHandlers"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/incrementalCacheHandlerPath"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/partialPrefetching"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/app/guides/instant-navigation"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/app/guides/streaming"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/building"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/public-static-pages"},{"site":"nextjs","path":"/docs/pages/guides/incremental-static-regeneration"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/public-static-pages","distance":0.1245},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching","distance":0.1412},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","distance":0.1579},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.1585},{"site":"nextjs","path":"/docs/app/guides","distance":0.1604}],"related":[{"site":"nextjs","path":"/docs/app/guides/public-static-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/incremental-static-regeneration","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/instant-navigation","title":"Instant navigation","summary":"Learn how to structure your app to prefetch and prerender more content, providing instant page loads and client navigations.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-private"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/instant"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/revalidating"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching"},{"site":"nextjs","path":"/docs/app/guides/ai-agents"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching"},{"site":"nextjs","path":"/docs/app/guides/prefetching"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/instant"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/prefetch"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching"},{"site":"nextjs","path":"/docs/app/guides/ai-agents"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components"},{"site":"nextjs","path":"/docs/app/guides/building"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components"},{"site":"nextjs","path":"/docs/app/guides/interactive-apps"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching","distance":0.1919},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/instant","distance":0.2152},{"site":"nextjs","path":"/docs/app/getting-started/caching","distance":0.2522},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching","distance":0.2582},{"site":"nextjs","path":"/docs/app/guides/prefetching","distance":0.2653}],"related":[{"site":"vercel-kb","path":"/kb/guide/optimizing-hard-navigations","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/building","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/streaming","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/offline-support","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/instrumentation","title":"Instrumentation","summary":"Learn how to use instrumentation to run code at server startup in your Next.js app","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/pageExtensions"},{"site":"nextjs","path":"/docs/app/api-reference/edge"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/src-folder"},{"site":"vercel-docs","path":"/docs/tracing/instrumentation"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation-client"},{"site":"nextjs","path":"/docs/app/getting-started/project-structure"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/environment-variables"},{"site":"nextjs","path":"/docs/app/guides/open-telemetry"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/pages/getting-started/project-structure"},{"site":"nextjs","path":"/docs/pages/guides/environment-variables"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/instrumentation","distance":0.0103},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation","distance":0.1241},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/instrumentation","distance":0.1504},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation-client","distance":0.1748},{"site":"nextjs","path":"/docs/app/guides/open-telemetry","distance":0.2322}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"inbound"},{"site":"nextjs","path":"/docs/pages/guides/instrumentation","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/instrumentation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation-client","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/open-telemetry","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/open-telemetry","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/interactive-apps","title":"Interactive apps","summary":"Learn how to build responsive interactions with Server Functions, transitions, optimistic UI, and pending feedback.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/error"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/refresh"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/updateTag"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/error-handling"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"},{"site":"nextjs","path":"/docs/app/getting-started/revalidating"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching"},{"site":"nextjs","path":"/docs/app/guides/instant-navigation"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching"},{"site":"nextjs","path":"/docs/app/guides/prefetching"},{"site":"nextjs","path":"/docs/app/guides/single-page-applications"},{"site":"nextjs","path":"/docs/app/guides/streaming"},{"site":"nextjs","path":"/docs/app/guides/view-transitions"}],"inbound":[{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching"},{"site":"nextjs","path":"/docs/app/guides/preserving-ui-state"},{"site":"nextjs","path":"/docs/app/guides/single-page-applications"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/preserving-ui-state","distance":0.3035},{"site":"vercel-kb","path":"/kb/guide/real-time-board-nextjs-fastapi","distance":0.3292},{"site":"vercel-kb","path":"/kb/guide/building-human-in-the-loop-agents-for-community-moderation-with-durable-workflows","distance":0.3296},{"site":"nextjs","path":"/docs/app/guides/single-page-applications","distance":0.3335},{"site":"nextjs","path":"/docs/app/guides/preventing-flash-before-hydration","distance":0.3452}],"related":[{"site":"vercel-kb","path":"/kb/guide/real-time-board-nextjs-fastapi","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-human-in-the-loop-agents-for-community-moderation-with-durable-workflows","via":"neighbor"},{"site":"chat-sdk","path":"/docs/cards","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/loading-state","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/preserving-ui-state","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/preventing-flash-before-hydration","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/tanstack-query","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/internationalization","title":"Internationalization","summary":"Add support for multiple languages with internationalized routing and localized content.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-root-params"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/headers"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/redirects"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/error"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-request"},{"site":"nextjs","path":"/docs/app/getting-started/error-handling"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-vite"},{"site":"nextjs","path":"/docs/app/guides/preventing-flash-before-hydration"},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-vite"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/internationalization","distance":0.1278},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-root-params","distance":0.1315},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.1549},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","distance":0.1761},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.178}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-internationalise-error-pages-in-next-js-app-router","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/internationalization","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/json-ld","title":"JSON-LD","summary":"Learn how to add JSON-LD to your Next.js application to describe your content to search engines and AI.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/guides"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides","distance":0.264},{"site":"nextjs","path":"/docs/pages/guides/css-in-js","distance":0.2808},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.2823},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.2853},{"site":"nextjs","path":"/docs/app/guides/public-static-pages","distance":0.2864}],"related":[{"site":"nextjs","path":"/docs/pages/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/css-in-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/public-static-pages","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/lazy-loading","title":"Lazy Loading","summary":"Lazy load imported libraries and React Components to improve your application's loading performance.","outbound":[{"site":"nextjs","path":"/docs/app/guides/streaming"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/turbopack"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/package-bundling"},{"site":"nextjs","path":"/docs/app/guides/production-checklist"},{"site":"nextjs","path":"/docs/app/guides/single-page-applications"},{"site":"nextjs","path":"/docs/pages/api-reference/turbopack"},{"site":"nextjs","path":"/docs/pages/guides/package-bundling"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/lazy-loading","distance":0.0721},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.162},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.193},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-9","distance":0.1992},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components","distance":0.2036}],"related":[{"site":"nextjs","path":"/docs/pages/guides/lazy-loading","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-9","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/local-development","title":"Development Environment","summary":"Learn how to optimize your local development environment with Next.js.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/logging"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverComponentsHmrCache"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopack"},{"site":"nextjs","path":"/docs/app/getting-started/deploying"},{"site":"nextjs","path":"/docs/app/guides/memory-usage"},{"site":"nextjs","path":"/docs/app/guides/package-bundling"},{"site":"nextjs","path":"/docs/app/guides/upgrading"}],"inbound":[{"site":"nextjs","path":"/docs/app/getting-started/deploying"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"},{"site":"nextjs","path":"/docs/pages/getting-started/deploying"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/package-bundling","distance":0.1702},{"site":"nextjs","path":"/docs/pages/guides/package-bundling","distance":0.174},{"site":"nextjs","path":"/docs/app/guides/production-checklist","distance":0.1785},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.1983},{"site":"nextjs","path":"/docs/pages/guides/production-checklist","distance":0.2038}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-your-document-size-in-next-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/package-bundling","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/production-checklist","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/production-checklist","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/mcp","title":"Next.js MCP Server","summary":"Learn how to use Next.js MCP support to allow coding agents access to your application state","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/ai-agents"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-mcp-server-with-nuxt","distance":0.2262},{"site":"nextjs","path":"/docs/app/guides/ai-agents","distance":0.2387},{"site":"vercel-kb","path":"/kb/guide/using-xmcp-with-nextjs","distance":0.2509},{"site":"v0","path":"/docs/api/v1/adapters/mcp-server","distance":0.261},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp","distance":0.2701}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-mcp-server-with-nuxt","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-xmcp-with-nextjs","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/adapters/mcp-server","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp","via":"neighbor"},{"site":"eve","path":"/docs/channels/mcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"eve","path":"/docs/connections/mcp","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/acp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/mcp-server-with-weather-tool-express","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-mcp-apps","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/mdx","title":"MDX","summary":"Learn how to configure MDX and use it in your Next.js apps.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/mdx-components"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params"},{"site":"nextjs","path":"/docs/app/api-reference/turbopack"},{"site":"nextjs","path":"/docs/app/getting-started/installation"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/mdx-components"},{"site":"nextjs","path":"/docs/app/guides"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/mdx","distance":0.0029},{"site":"nextjs","path":"/docs/community/contribution-guide","distance":0.2079},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/mdxRs","distance":0.2151},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/mdx-components","distance":0.221},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2257}],"related":[{"site":"nextjs","path":"/docs/pages/guides/mdx","via":"neighbor"},{"site":"nextjs","path":"/docs/community/contribution-guide","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/mdxRs","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-9","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/memory-usage","title":"Memory Usage","summary":"Optimize memory used by your application in development and production.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/webpack"},{"site":"nextjs","path":"/docs/app/api-reference/config/typescript"},{"site":"nextjs","path":"/docs/app/guides/package-bundling"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/local-development"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/package-bundling","distance":0.1866},{"site":"nextjs","path":"/docs/app/guides/production-checklist","distance":0.1943},{"site":"nextjs","path":"/docs/app/guides/package-bundling","distance":0.1964},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.199},{"site":"nextjs","path":"/docs/pages/guides/production-checklist","distance":0.2062}],"related":[{"site":"nextjs","path":"/docs/pages/guides/package-bundling","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/production-checklist","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/production-checklist","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/local-development","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/migrating","title":"Migrating","summary":"Learn how to migrate from popular frameworks to Next.js","outbound":[{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-vite"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/migrating","distance":0.0084},{"site":"nextjs","path":"/docs/pages/guides/upgrading","distance":0.1877},{"site":"nextjs","path":"/docs/app/guides/upgrading","distance":0.1968},{"site":"nextjs","path":"/docs/pages/guides","distance":0.2028},{"site":"nextjs","path":"/docs/app/getting-started","distance":0.2054}],"related":[{"site":"nextjs","path":"/docs/pages/guides/migrating","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components","title":"Migrating to Cache Components","summary":"Learn how to migrate from route segment configs to Cache Components in Next.js.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheHandlers"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/instant"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/connection"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-viewport"},{"site":"nextjs","path":"/docs/app/api-reference/functions/headers"},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidatePath"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/updateTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-pathname"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-search-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-selected-layout-segment"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-selected-layout-segments"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components"},{"site":"nextjs","path":"/docs/app/guides/instant-navigation"},{"site":"nextjs","path":"/docs/app/guides/mcp"},{"site":"nextjs","path":"/docs/app/guides/preserving-ui-state"},{"site":"nextjs","path":"/docs/app/guides/preventing-flash-before-hydration"},{"site":"nextjs","path":"/docs/app/guides/streaming"},{"site":"nextjs","path":"/docs/app/guides/upgrading"},{"site":"nextjs","path":"/docs/app/guides/upgrading/codemods"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components"},{"site":"nextjs","path":"/docs/app/guides/instant-navigation"},{"site":"nextjs","path":"/docs/app/guides/interactive-apps"},{"site":"nextjs","path":"/docs/app/guides/preserving-ui-state"},{"site":"nextjs","path":"/docs/app/guides/upgrading/codemods"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/codemods"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache","distance":0.156},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife","distance":0.1663},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","distance":0.1685},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16","distance":0.2119},{"site":"nextjs","path":"/docs/app/getting-started/revalidating","distance":0.2211}],"related":[{"site":"vercel-docs","path":"/docs/caching/runtime-cache","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/revalidating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/tanstack-query","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration","title":"App Router","summary":"Learn how to upgrade your existing Next.js application from the Pages Router to the App Router.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/font"},{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/components/script"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/dynamicParams"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies"},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/headers"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-pathname"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-search-params"},{"site":"nextjs","path":"/docs/app/getting-started/css"},{"site":"nextjs","path":"/docs/app/getting-started/error-handling"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/css-in-js"},{"site":"nextjs","path":"/docs/app/guides/internationalization"},{"site":"nextjs","path":"/docs/app/guides/sass"},{"site":"nextjs","path":"/docs/app/guides/single-page-applications"},{"site":"nextjs","path":"/docs/app/guides/upgrading/codemods"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/appDir"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/app/guides/migrating"},{"site":"nextjs","path":"/docs/app/guides/single-page-applications"},{"site":"nextjs","path":"/docs/pages/api-reference/components/link"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-app"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-document"},{"site":"nextjs","path":"/docs/pages/guides/environment-variables"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting"}],"requires":[{"site":"nextjs","path":"/docs/app/guides/migrating"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration","distance":0.002},{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app","distance":0.2066},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app","distance":0.2147},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-router","distance":0.2329},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.2355}],"related":[{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-vite","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-vite","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app","title":"Create React App","summary":"Learn how to migrate your existing React application from Create React App to Next.js.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/font"},{"site":"nextjs","path":"/docs/app/api-reference/components/image"},{"site":"nextjs","path":"/docs/app/api-reference/config/eslint"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/basePath"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/rewrites"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopack"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/webpack"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata"},{"site":"nextjs","path":"/docs/app/getting-started/css"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/app/guides/environment-variables"},{"site":"nextjs","path":"/docs/app/guides/internationalization"},{"site":"nextjs","path":"/docs/app/guides/progressive-web-apps"},{"site":"nextjs","path":"/docs/app/guides/scripts"},{"site":"nextjs","path":"/docs/app/guides/single-page-applications"},{"site":"nextjs","path":"/docs/app/guides/testing"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr"},{"site":"nextjs","path":"/docs/app/guides/migrating"},{"site":"nextjs","path":"/docs/app/guides/single-page-applications"}],"requires":[{"site":"nextjs","path":"/docs/app/guides/migrating"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app","distance":0.006},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-vite","distance":0.1865},{"site":"nextjs","path":"/docs/app/guides/migrating/from-vite","distance":0.1906},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration","distance":0.2059},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration","distance":0.2066}],"related":[{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-vite","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-vite","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/migrating/from-vite","title":"Vite","summary":"Learn how to migrate your existing React application from Vite to Next.js.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/font"},{"site":"nextjs","path":"/docs/app/api-reference/components/image"},{"site":"nextjs","path":"/docs/app/api-reference/config/eslint"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/basePath"},{"site":"nextjs","path":"/docs/app/api-reference/config/typescript"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params"},{"site":"nextjs","path":"/docs/app/api-reference/turbopack"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/app/guides/environment-variables"},{"site":"nextjs","path":"/docs/app/guides/internationalization"},{"site":"nextjs","path":"/docs/app/guides/scripts"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides/migrating"},{"site":"nextjs","path":"/docs/app/guides/single-page-applications"}],"requires":[{"site":"nextjs","path":"/docs/app/guides/migrating"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/migrating/from-vite","distance":0.0056},{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app","distance":0.1906},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app","distance":0.1927},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration","distance":0.2421},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration","distance":0.2433}],"related":[{"site":"nextjs","path":"/docs/pages/guides/migrating/from-vite","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/multi-tenant","title":"Multi-tenant","summary":"Learn how to build multi-tenant apps with the App Router.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/guides"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/building-your-application","distance":0.2158},{"site":"nextjs","path":"/docs/pages/getting-started","distance":0.2603},{"site":"nextjs","path":"/docs/app/getting-started","distance":0.2606},{"site":"nextjs","path":"/docs/pages/guides","distance":0.2733},{"site":"nextjs","path":"/docs/app/api-reference/config","distance":0.2752}],"related":[{"site":"vercel-docs","path":"/docs/platforms/examples/multi-tenant-template","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/multi-zones","title":"Multi-zones","summary":"Learn how to build micro-frontends using Next.js Multi-Zones to deploy multiple Next.js apps under a single domain.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/assetPrefix"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/rewrites"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverActions"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/multi-zones","distance":0.0235},{"site":"nextjs","path":"/docs/app/guides","distance":0.2425},{"site":"nextjs","path":"/docs/pages/guides","distance":0.2476},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2645},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","distance":0.2723}],"related":[{"site":"nextjs","path":"/docs/pages/guides/multi-zones","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/offline-support","title":"Offline support","summary":"How a Next.js app can recover when the network drops mid-fetch or mid-Server Action, and how to communicate that state to the user.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/partialPrefetching"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/useOffline"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-offline"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching"},{"site":"nextjs","path":"/docs/app/guides/prefetching"},{"site":"nextjs","path":"/docs/app/guides/progressive-web-apps"}],"inbound":[{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/forms"},{"site":"nextjs","path":"/docs/app/guides/prefetching"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/useOffline","distance":0.1233},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-offline","distance":0.1278},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.2127},{"site":"nextjs","path":"/docs/app/guides/prefetching","distance":0.2429},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data","distance":0.2624}],"related":[{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/error-handling","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/open-telemetry","title":"OpenTelemetry","summary":"Learn how to instrument your Next.js app with OpenTelemetry.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/pageExtensions"},{"site":"nextjs","path":"/docs/app/guides/instrumentation"},{"site":"vercel-docs","path":"/docs/tracing/instrumentation"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides"},{"site":"vercel-docs","path":"/docs/tracing/instrumentation"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/open-telemetry","distance":0.0025},{"site":"vercel-docs","path":"/docs/tracing/instrumentation","distance":0.182},{"site":"nextjs","path":"/docs/pages/guides/instrumentation","distance":0.2256},{"site":"nextjs","path":"/docs/app/guides/instrumentation","distance":0.2322},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation","distance":0.2627}],"related":[{"site":"nextjs","path":"/docs/pages/guides/open-telemetry","via":"neighbor"},{"site":"vercel-docs","path":"/docs/tracing","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/signoz","via":"neighbor"},{"site":"eve","path":"/docs/guides/instrumentation","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/arize-ax","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/laminar","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/instrumentation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching","title":"Optimizing prefetching","summary":"Resolve per-link URL data with the prefetch prop, or include session data in the App Shell.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/partialPrefetching"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-private"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/instant"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/prefetch"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/headers"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching"},{"site":"nextjs","path":"/docs/app/guides/instant-navigation"},{"site":"nextjs","path":"/docs/app/guides/prefetching"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/partialPrefetching"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components"},{"site":"nextjs","path":"/docs/app/guides/instant-navigation"},{"site":"nextjs","path":"/docs/app/guides/interactive-apps"},{"site":"nextjs","path":"/docs/app/guides/offline-support"},{"site":"nextjs","path":"/docs/app/guides/prefetching"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/prefetching","distance":0.082},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/partialPrefetching","distance":0.1027},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/prefetch","distance":0.1143},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","distance":0.1412},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.1472}],"related":[{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/prefetchInlining","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/package-bundling","title":"Package Bundling","summary":"Learn how to analyze and optimize your application's server and client bundles with the Next.js Bundle Analyzer for Turbopack, and the `@next/bundle-analyzer` plugin for Webpack.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/optimizePackageImports"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverExternalPackages"},{"site":"nextjs","path":"/docs/app/guides/lazy-loading"},{"site":"nextjs","path":"/docs/app/guides/production-checklist"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/cli/next"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/local-development"},{"site":"nextjs","path":"/docs/app/guides/memory-usage"},{"site":"nextjs","path":"/docs/app/guides/production-checklist"},{"site":"nextjs","path":"/docs/pages/api-reference/cli/next"},{"site":"nextjs","path":"/docs/pages/guides/production-checklist"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-kb","path":"/kb/guide/improve-function-cold-start-performance-on-vercel"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/package-bundling","distance":0.0126},{"site":"nextjs","path":"/docs/app/guides/production-checklist","distance":0.1537},{"site":"nextjs","path":"/docs/app/guides/local-development","distance":0.1702},{"site":"nextjs","path":"/docs/pages/guides/production-checklist","distance":0.1835},{"site":"nextjs","path":"/docs/app/guides/memory-usage","distance":0.1964}],"related":[{"site":"vercel-docs","path":"/docs/manage-cdn-usage","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/improve-function-cold-start-performance-on-vercel","via":"inbound"},{"site":"nextjs","path":"/docs/pages/guides/package-bundling","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-your-document-size-in-next-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/local-development","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/production-checklist","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/memory-usage","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/ppr-platform-guide","title":"PPR Platform Guide","summary":"A guide for platform engineers on implementing PPR support, from basic origin rendering to optimized CDN integration.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/implementing-ppr-in-an-adapter"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/output-types"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag"},{"site":"nextjs","path":"/docs/app/guides/deploying-to-platforms"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/app/guides/rendering-philosophy"},{"site":"nextjs","path":"/docs/app/guides/streaming"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/runtime-integration"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/deploying-to-platforms"},{"site":"nextjs","path":"/docs/app/guides/rendering-philosophy"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/implementing-ppr-in-an-adapter","distance":0.1237},{"site":"nextjs","path":"/docs/app/guides/rendering-philosophy","distance":0.1269},{"site":"nextjs","path":"/docs/app/api-reference/adapters/runtime-integration","distance":0.1672},{"site":"nextjs","path":"/docs/app/guides/deploying-to-platforms","distance":0.1787},{"site":"nextjs","path":"/docs/app/guides/public-static-pages","distance":0.2341}],"related":[{"site":"vercel-docs","path":"/docs/partial-prerendering/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/partial-prerendering","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/runtime-integration","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/public-static-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/cdn-caching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/prefetching","title":"Prefetching","summary":"Learn how to configure prefetching in Next.js","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/partialPrefetching"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/staleTimes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching"},{"site":"nextjs","path":"/docs/app/guides/offline-support"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/prefetchInlining"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/useOffline"},{"site":"nextjs","path":"/docs/app/api-reference/functions/io"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching"},{"site":"nextjs","path":"/docs/app/guides/instant-navigation"},{"site":"nextjs","path":"/docs/app/guides/interactive-apps"},{"site":"nextjs","path":"/docs/app/guides/offline-support"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching"},{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching","distance":0.082},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/prefetch","distance":0.099},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.1091},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/partialPrefetching","distance":0.1156},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/prefetchInlining","distance":0.1552}],"related":[{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/optimizing-hard-navigations","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/prefetch","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/prefetchInlining","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/components/link","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/preserving-ui-state","title":"Preserving UI state","summary":"Learn how React's Activity component preserves UI state across navigations in Next.js and how to control what resets.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages"},{"site":"nextjs","path":"/docs/app/guides/interactive-apps"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/preventing-flash-before-hydration","distance":0.2773},{"site":"nextjs","path":"/docs/app/api-reference/components/link","distance":0.2811},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data","distance":0.2834},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache","distance":0.3001},{"site":"nextjs","path":"/docs/app/getting-started/caching","distance":0.301}],"related":[{"site":"nextjs","path":"/docs/app/guides/preventing-flash-before-hydration","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/single-page-applications","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/preventing-flash-before-hydration","title":"Preventing Flash","summary":"Learn how to correct server-rendered content before the browser paints, avoiding visible flash when the page hydrates.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies"},{"site":"nextjs","path":"/docs/app/api-reference/functions/headers"},{"site":"nextjs","path":"/docs/app/guides/content-security-policy"},{"site":"nextjs","path":"/docs/app/guides/internationalization"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions/use-pathname"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/public-static-pages"},{"site":"nextjs","path":"/docs/app/guides/streaming"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/single-page-applications","distance":0.2507},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data","distance":0.2609},{"site":"nextjs","path":"/docs/app/guides/preserving-ui-state","distance":0.2773},{"site":"nextjs","path":"/docs/app/api-reference/components/link","distance":0.2809},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache","distance":0.281}],"related":[{"site":"vercel-docs","path":"/docs/analytics/package","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/single-page-applications","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/preserving-ui-state","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/components/link","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/production-checklist","title":"Production","summary":"Recommendations to ensure the best performance and user experience before taking your Next.js application to production.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/font"},{"site":"nextjs","path":"/docs/app/api-reference/components/image"},{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/taint"},{"site":"nextjs","path":"/docs/app/api-reference/config/typescript"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/error"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/robots"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/public-folder"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-sitemaps"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_cache"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-report-web-vitals"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/error-handling"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend"},{"site":"nextjs","path":"/docs/app/guides/content-security-policy"},{"site":"nextjs","path":"/docs/app/guides/data-security"},{"site":"nextjs","path":"/docs/app/guides/environment-variables"},{"site":"nextjs","path":"/docs/app/guides/forms"},{"site":"nextjs","path":"/docs/app/guides/lazy-loading"},{"site":"nextjs","path":"/docs/app/guides/package-bundling"},{"site":"nextjs","path":"/docs/app/guides/scripts"},{"site":"nextjs","path":"/docs/architecture/accessibility"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/package-bundling"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/production-checklist","distance":0.0236},{"site":"nextjs","path":"/docs/pages/guides/package-bundling","distance":0.1287},{"site":"nextjs","path":"/docs/app/guides","distance":0.1426},{"site":"nextjs","path":"/docs/app/guides/package-bundling","distance":0.1537},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.1571}],"related":[{"site":"nextjs","path":"/docs/pages/guides/production-checklist","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/package-bundling","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/local-development","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/progressive-web-apps","title":"PWAs","summary":"Learn how to build a Progressive Web Application (PWA) with Next.js.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/cli/next"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/useOffline"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/manifest"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-offline"},{"site":"nextjs","path":"/docs/app/guides/content-security-policy"},{"site":"nextjs","path":"/docs/app/guides/static-exports"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/useOffline"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-offline"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/app/guides/offline-support"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app","distance":0.2946},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app","distance":0.2957},{"site":"nextjs","path":"/docs/app/guides/data-security","distance":0.3485},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","distance":0.3544},{"site":"nextjs","path":"/docs/app/getting-started/installation","distance":0.3631}],"related":[{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/data-security","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/installation","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/public-static-pages","title":"Public pages","summary":"Learn how to build public, \"static\" pages that share data across users, such as landing pages, list pages (products, blogs, etc.), marketing and news sites.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/cli/next"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components"},{"site":"nextjs","path":"/docs/app/guides/preventing-flash-before-hydration"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","distance":0.1245},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.1671},{"site":"nextjs","path":"/docs/app/guides/rendering-philosophy","distance":0.1731},{"site":"nextjs","path":"/docs/app/guides","distance":0.1771},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/static-site-generation","distance":0.1999}],"related":[{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/rendering-philosophy","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/static-site-generation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/caching","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/redirecting","title":"Redirecting","summary":"Learn the different ways to handle redirects in Next.js.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/redirects"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/functions/permanentRedirect"},{"site":"nextjs","path":"/docs/app/api-reference/functions/redirect"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"vercel-docs","path":"/docs/global-config/get-started"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/form"},{"site":"nextjs","path":"/docs/app/api-reference/functions/redirect"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_rethrow"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/authentication"},{"site":"vercel-docs","path":"/docs/incremental-migration"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/routing/redirects/configuration-redirects"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/redirecting","distance":0.0351},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/redirects","distance":0.1297},{"site":"nextjs","path":"/docs/app/api-reference/functions/redirect","distance":0.1326},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/redirects","distance":0.1348},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-response","distance":0.1962}],"related":[{"site":"vercel-docs","path":"/docs/incremental-migration","via":"inbound"},{"site":"vercel-docs","path":"/docs/limits","via":"inbound"},{"site":"vercel-docs","path":"/docs/routing/redirects/configuration-redirects","via":"inbound"},{"site":"nextjs","path":"/docs/pages/guides/redirecting","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/redirects","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-response","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-response","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/rendering-philosophy","title":"Rendering Philosophy","summary":"Learn how Next.js treats static and dynamic rendering as a spectrum at the component level, and what this means for deployment.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/testing-adapters"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidatePath"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/deploying"},{"site":"nextjs","path":"/docs/app/guides/cdn-caching"},{"site":"nextjs","path":"/docs/app/guides/deploying-to-platforms"},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works"},{"site":"nextjs","path":"/docs/app/guides/ppr-platform-guide"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/app/guides/streaming"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/deploying-to-platforms"},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works"},{"site":"nextjs","path":"/docs/app/guides/ppr-platform-guide"},{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary"},{"site":"nextjs","path":"/docs/app/guides/streaming"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/deploying-to-platforms","distance":0.1102},{"site":"nextjs","path":"/docs/app/guides/ppr-platform-guide","distance":0.1269},{"site":"nextjs","path":"/docs/app/guides/cdn-caching","distance":0.1537},{"site":"nextjs","path":"/docs/app/guides/self-hosting","distance":0.1635},{"site":"nextjs","path":"/docs/app/guides","distance":0.1657}],"related":[{"site":"nextjs","path":"/docs/app/guides/public-static-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/sass","title":"Sass","summary":"Style your Next.js application using Sass.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/webpack"},{"site":"nextjs","path":"/docs/app/getting-started/css"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/pages/getting-started/css"},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/sass","distance":0.0113},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/sassOptions","distance":0.1601},{"site":"nextjs","path":"/docs/app/getting-started/css","distance":0.2035},{"site":"nextjs","path":"/docs/pages/getting-started/css","distance":0.2041},{"site":"nextjs","path":"/docs/pages/guides/css-in-js","distance":0.2322}],"related":[{"site":"nextjs","path":"/docs/pages/guides/sass","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/sassOptions","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/css","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/css","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/css-in-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/scripts","title":"Scripts","summary":"Optimize 3rd party scripts with the built-in Script component.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/script"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/script"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/crossOrigin"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-vite"},{"site":"nextjs","path":"/docs/app/guides/production-checklist"},{"site":"nextjs","path":"/docs/pages/api-reference/components/script"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-vite"},{"site":"nextjs","path":"/docs/pages/guides/production-checklist"},{"site":"vercel-docs","path":"/docs/production-checklist"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/scripts","distance":0.027},{"site":"nextjs","path":"/docs/app/api-reference/components/script","distance":0.1009},{"site":"nextjs","path":"/docs/pages/api-reference/components/script","distance":0.1011},{"site":"nextjs","path":"/docs/app/guides/third-party-libraries","distance":0.2213},{"site":"nextjs","path":"/docs/pages/guides/third-party-libraries","distance":0.2267}],"related":[{"site":"vercel-docs","path":"/docs/production-checklist","via":"inbound"},{"site":"nextjs","path":"/docs/pages/guides/scripts","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/components/script","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/third-party-libraries","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/third-party-libraries","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/self-hosting","title":"Self-Hosting","summary":"Learn how to self-host your Next.js application on a Node.js server, Docker image, or static HTML files (static exports).","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/image"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/assetPrefix"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheHandlers"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/deploymentId"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/incrementalCacheHandlerPath"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/redirects"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/rewrites"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/api-reference/functions/after"},{"site":"nextjs","path":"/docs/app/api-reference/functions/headers"},{"site":"nextjs","path":"/docs/app/api-reference/functions/redirect"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/deploying"},{"site":"nextjs","path":"/docs/app/getting-started/images"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/cdn-caching"},{"site":"nextjs","path":"/docs/app/guides/data-security"},{"site":"nextjs","path":"/docs/app/guides/draft-mode"},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/app/guides/instrumentation"},{"site":"nextjs","path":"/docs/app/guides/ppr-platform-guide"},{"site":"nextjs","path":"/docs/app/guides/static-exports"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props"},{"site":"nextjs","path":"/docs/pages/guides/custom-server"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/deploymentId"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/incrementalCacheHandlerPath"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/api-reference/functions/after"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/deploying"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/building"},{"site":"nextjs","path":"/docs/app/guides/cdn-caching"},{"site":"nextjs","path":"/docs/app/guides/data-security"},{"site":"nextjs","path":"/docs/app/guides/deploying-to-platforms"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components"},{"site":"nextjs","path":"/docs/app/guides/rendering-philosophy"},{"site":"nextjs","path":"/docs/app/guides/server-actions"},{"site":"nextjs","path":"/docs/app/guides/streaming"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/deploymentId"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/pages/getting-started/deploying"},{"site":"nextjs","path":"/docs/pages/guides/incremental-static-regeneration"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/self-hosting","distance":0.0503},{"site":"nextjs","path":"/docs/app/guides/rendering-philosophy","distance":0.1635},{"site":"nextjs","path":"/docs/app/guides/cdn-caching","distance":0.1676},{"site":"nextjs","path":"/docs/app/glossary","distance":0.1876},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.189}],"related":[{"site":"nextjs","path":"/docs/pages/guides/self-hosting","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/rendering-philosophy","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/server-actions","title":"Server Actions","summary":"How Server Actions work in Next.js, including the single-roundtrip response model, sequential dispatch, security, and caching integration.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/authInterrupts"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverActions"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-server"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies"},{"site":"nextjs","path":"/docs/app/api-reference/functions/forbidden"},{"site":"nextjs","path":"/docs/app/api-reference/functions/redirect"},{"site":"nextjs","path":"/docs/app/api-reference/functions/refresh"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidatePath"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unauthorized"},{"site":"nextjs","path":"/docs/app/api-reference/functions/updateTag"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend"},{"site":"nextjs","path":"/docs/app/guides/data-security"},{"site":"nextjs","path":"/docs/app/guides/forms"},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverActions"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-server"},{"site":"nextjs","path":"/docs/app/api-reference/functions/redirect"},{"site":"nextjs","path":"/docs/app/api-reference/functions/refresh"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidatePath"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"},{"site":"nextjs","path":"/docs/app/getting-started/revalidating"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/authentication"},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend"},{"site":"nextjs","path":"/docs/app/guides/data-security"},{"site":"nextjs","path":"/docs/app/guides/forms"},{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary"},{"site":"nextjs","path":"/docs/app/guides/single-page-applications"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/mutating-data","distance":0.0586},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-server","distance":0.1599},{"site":"nextjs","path":"/docs/app/guides/forms","distance":0.1694},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverActions","distance":0.1876},{"site":"nextjs","path":"/docs/app/guides/data-security","distance":0.2089}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/components/form","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/forms","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/error-handling","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary","title":"Server and Client Boundary","summary":"Learn where Server and Client Components run in the App Router and how the boundary between them works.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/directives"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-client"},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/data-security"},{"site":"nextjs","path":"/docs/app/guides/rendering-philosophy"},{"site":"nextjs","path":"/docs/app/guides/server-actions"},{"site":"nextjs","path":"/docs/app/guides/streaming"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/directives/use-client"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/app/guides"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components","distance":0.1129},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-client","distance":0.1516},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.1831},{"site":"nextjs","path":"/docs/app/glossary","distance":0.199},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data","distance":0.2061}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-rsc-payload-size","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/css-in-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/single-page-applications","title":"SPAs","summary":"Next.js fully supports building Single-Page Applications (SPAs).","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-pathname"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-search-params"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching"},{"site":"nextjs","path":"/docs/app/guides/forms"},{"site":"nextjs","path":"/docs/app/guides/interactive-apps"},{"site":"nextjs","path":"/docs/app/guides/lazy-loading"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-vite"},{"site":"nextjs","path":"/docs/app/guides/server-actions"},{"site":"nextjs","path":"/docs/app/guides/static-exports"},{"site":"nextjs","path":"/docs/app/guides/streaming"}],"inbound":[{"site":"nextjs","path":"/docs/app/getting-started/deploying"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/authentication"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/tanstack-query"},{"site":"nextjs","path":"/docs/app/guides/interactive-apps"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/app/guides/streaming"},{"site":"nextjs","path":"/docs/pages/getting-started/deploying"},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components","distance":0.2069},{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary","distance":0.2203},{"site":"nextjs","path":"/docs/app/glossary","distance":0.2339},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app","distance":0.2352},{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app","distance":0.2364}],"related":[{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary","via":"neighbor"},{"site":"nextjs","path":"/docs/app/glossary","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/caching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/preventing-flash-before-hydration","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/static-exports","title":"Static Exports","summary":"Next.js enables starting as a static site or Single-Page Application (SPA), then later optionally upgrading to use features that require a server.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/image"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/headers"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/redirects"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/rewrites"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/intercepting-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components"},{"site":"nextjs","path":"/docs/app/guides/draft-mode"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/exportPathMap"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/trailingSlash"},{"site":"nextjs","path":"/docs/app/getting-started/deploying"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend"},{"site":"nextjs","path":"/docs/app/guides/building"},{"site":"nextjs","path":"/docs/app/guides/cdn-caching"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/app/guides/progressive-web-apps"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/app/guides/single-page-applications"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-14"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/trailingSlash"},{"site":"nextjs","path":"/docs/pages/getting-started/deploying"},{"site":"nextjs","path":"/docs/pages/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-14"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/static-exports","distance":0.0166},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.1773},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","distance":0.1872},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props","distance":0.1948},{"site":"nextjs","path":"/docs/pages/getting-started/installation","distance":0.196}],"related":[{"site":"nextjs","path":"/docs/pages/guides/static-exports","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/installation","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/streaming","title":"Streaming","summary":"Learn how streaming works in Next.js and how to use it to progressively render UI as data becomes available.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/image"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/htmlLimitedBots"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/redirects"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/error"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata"},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found"},{"site":"nextjs","path":"/docs/app/api-reference/functions/redirect"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/deploying"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/preventing-flash-before-hydration"},{"site":"nextjs","path":"/docs/app/guides/rendering-philosophy"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/app/guides/single-page-applications"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/authentication"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components"},{"site":"nextjs","path":"/docs/app/guides/building"},{"site":"nextjs","path":"/docs/app/guides/cdn-caching"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components"},{"site":"nextjs","path":"/docs/app/guides/interactive-apps"},{"site":"nextjs","path":"/docs/app/guides/lazy-loading"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/ppr-platform-guide"},{"site":"nextjs","path":"/docs/app/guides/rendering-philosophy"},{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary"},{"site":"nextjs","path":"/docs/app/guides/single-page-applications"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/fetching-data","distance":0.1746},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading","distance":0.1949},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching","distance":0.2344},{"site":"nextjs","path":"/docs/app/getting-started/caching","distance":0.2416},{"site":"nextjs","path":"/docs/app/glossary","distance":0.2566}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/loading-state","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/building","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/api-routes","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/tailwind-v3-css","title":"Tailwind CSS v3","summary":"Style your Next.js Application using Tailwind CSS v3 for broader browser support.","outbound":[{"site":"nextjs","path":"/docs/app/getting-started/css"}],"inbound":[{"site":"nextjs","path":"/docs/app/getting-started/css"},{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/pages/getting-started/css"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/tailwind-v3-css","distance":0.0254},{"site":"nextjs","path":"/docs/app/getting-started/css","distance":0.1305},{"site":"nextjs","path":"/docs/pages/getting-started/css","distance":0.14},{"site":"turborepo","path":"/docs/guides/tools/tailwind","distance":0.215},{"site":"nextjs","path":"/docs/pages/guides","distance":0.2707}],"related":[{"site":"nextjs","path":"/docs/pages/guides/tailwind-v3-css","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/tailwind","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/css","via":"neighbor"},{"site":"streamdown","path":"/docs/getting-started","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/post-css","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/components/font","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/testing","title":"Testing","summary":"Learn how to set up Next.js with four commonly used testing tools — Cypress, Playwright, Vitest, and Jest.","outbound":[{"site":"nextjs","path":"/docs/app/guides/testing/cypress"},{"site":"nextjs","path":"/docs/app/guides/testing/jest"},{"site":"nextjs","path":"/docs/app/guides/testing/playwright"},{"site":"nextjs","path":"/docs/app/guides/testing/vitest"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/testing","distance":0.0291},{"site":"nextjs","path":"/docs/app/guides/testing/jest","distance":0.1416},{"site":"nextjs","path":"/docs/pages/guides/testing/vitest","distance":0.1586},{"site":"nextjs","path":"/docs/pages/guides/testing/jest","distance":0.1628},{"site":"nextjs","path":"/docs/app/guides/testing/vitest","distance":0.1656}],"related":[{"site":"nextjs","path":"/docs/pages/guides/testing","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/testing/vitest","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/testing/jest","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/testing/playwright","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/testing/cypress","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/testing/cypress","title":"Cypress","summary":"Learn how to set up Cypress with Next.js for End-to-End (E2E) and Component Testing.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/guides/testing"}],"requires":[{"site":"nextjs","path":"/docs/app/guides/testing"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/testing/cypress","distance":0.0117},{"site":"nextjs","path":"/docs/pages/guides/testing","distance":0.1922},{"site":"nextjs","path":"/docs/app/guides/testing","distance":0.2013},{"site":"nextjs","path":"/docs/app/guides/testing/jest","distance":0.2283},{"site":"nextjs","path":"/docs/pages/guides/testing/jest","distance":0.2333}],"related":[{"site":"nextjs","path":"/docs/pages/guides/testing/cypress","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/testing","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/testing/jest","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/testing/jest","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/testing/playwright","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/testing/jest","title":"Jest","summary":"Learn how to set up Jest with Next.js for Unit Testing and Snapshot Testing.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/font"},{"site":"nextjs","path":"/docs/app/getting-started/installation"},{"site":"nextjs","path":"/docs/app/guides/environment-variables"},{"site":"nextjs","path":"/docs/architecture/nextjs-compiler"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides/testing"}],"requires":[{"site":"nextjs","path":"/docs/app/guides/testing"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/testing/jest","distance":0.0191},{"site":"nextjs","path":"/docs/pages/guides/testing/vitest","distance":0.1378},{"site":"nextjs","path":"/docs/app/guides/testing/vitest","distance":0.139},{"site":"nextjs","path":"/docs/app/guides/testing","distance":0.1416},{"site":"nextjs","path":"/docs/pages/guides/testing","distance":0.1443}],"related":[{"site":"nextjs","path":"/docs/pages/guides/testing/jest","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/testing/vitest","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/testing/vitest","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/testing","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/installation","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/testing/playwright","title":"Playwright","summary":"Learn how to set up Playwright with Next.js for End-to-End (E2E) Testing.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/guides/testing"}],"requires":[{"site":"nextjs","path":"/docs/app/guides/testing"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/testing/playwright","distance":0.0106},{"site":"nextjs","path":"/docs/pages/guides/testing","distance":0.1993},{"site":"nextjs","path":"/docs/app/guides/testing","distance":0.2032},{"site":"nextjs","path":"/docs/app/guides/testing/cypress","distance":0.2538},{"site":"nextjs","path":"/docs/app/guides/testing/vitest","distance":0.2573}],"related":[{"site":"nextjs","path":"/docs/pages/guides/testing/playwright","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/playwright","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/testing","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/testing/cypress","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/testing/vitest","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/testing/vitest","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/testing/vitest","title":"Vitest","summary":"Learn how to set up Vitest with Next.js for Unit Testing.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/guides/testing"}],"requires":[{"site":"nextjs","path":"/docs/app/guides/testing"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/testing/vitest","distance":0.0138},{"site":"nextjs","path":"/docs/app/guides/testing/jest","distance":0.139},{"site":"nextjs","path":"/docs/pages/guides/testing/jest","distance":0.1438},{"site":"nextjs","path":"/docs/pages/guides/testing","distance":0.162},{"site":"nextjs","path":"/docs/app/guides/testing","distance":0.1656}],"related":[{"site":"nextjs","path":"/docs/pages/guides/testing/vitest","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/testing/jest","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/testing/jest","via":"neighbor"},{"site":"workflow","path":"/docs/testing/server-based","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/vitest","via":"neighbor"},{"site":"workflow","path":"/docs/testing","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/third-party-libraries","title":"Third Party Libraries","summary":"Optimize the performance of third-party libraries in your application with the `@next/third-parties` package.","outbound":[{"site":"nextjs","path":"/docs/app/guides/content-security-policy"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/third-party-libraries","distance":0.0096},{"site":"nextjs","path":"/docs/pages/guides/scripts","distance":0.2207},{"site":"nextjs","path":"/docs/app/guides/scripts","distance":0.2213},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.2288},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.2292}],"related":[{"site":"nextjs","path":"/docs/pages/guides/third-party-libraries","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/scripts","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/scripts","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/upgrading","title":"Upgrading","summary":"Learn how to upgrade to the latest versions of Next.js.","outbound":[{"site":"nextjs","path":"/docs/app/guides/upgrading/codemods"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-14"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/local-development"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/upgrading","distance":0.0715},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-14","distance":0.1864},{"site":"nextjs","path":"/docs/app/getting-started/upgrading","distance":0.1891},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-14","distance":0.1892},{"site":"nextjs","path":"/docs/pages/guides","distance":0.1949}],"related":[{"site":"nextjs","path":"/docs/pages/guides/upgrading","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/upgrading","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-14","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/upgrading/codemods","title":"Codemods","summary":"Use codemods to upgrade your Next.js codebase when new features are released.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/partialPrefetching"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/runtime"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/image"},{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/config/eslint"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies"},{"site":"nextjs","path":"/docs/app/api-reference/functions/draft-mode"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-viewport"},{"site":"nextjs","path":"/docs/app/api-reference/functions/headers"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/app/guides/upgrading"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-14"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"},{"site":"nextjs","path":"/docs/pages/api-reference/components/image"},{"site":"nextjs","path":"/docs/pages/api-reference/components/link"},{"site":"nextjs","path":"/docs/pages/api-reference/config/eslint"},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-14"}],"requires":[{"site":"nextjs","path":"/docs/app/guides/upgrading"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/upgrading/codemods","distance":0.0076},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16","distance":0.201},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","distance":0.2065},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-9","distance":0.224},{"site":"nextjs","path":"/docs/pages/api-reference/components/link","distance":0.2512}],"related":[{"site":"nextjs","path":"/docs/pages/guides/upgrading/codemods","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-9","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/components/link","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-14","title":"Version 14","summary":"Upgrade your Next.js Application from Version 13 to 14.","outbound":[{"site":"nextjs","path":"/docs/app/guides/static-exports"},{"site":"nextjs","path":"/docs/app/guides/upgrading/codemods"}],"inbound":[{"site":"nextjs","path":"/docs/app/getting-started/upgrading"},{"site":"nextjs","path":"/docs/app/guides/upgrading"}],"requires":[{"site":"nextjs","path":"/docs/app/guides/upgrading"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-14","distance":0.0056},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-13","distance":0.1534},{"site":"nextjs","path":"/docs/app/guides/upgrading","distance":0.1864},{"site":"nextjs","path":"/docs/pages/guides/upgrading","distance":0.1961},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-11","distance":0.2023}],"related":[{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-14","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-13","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-11","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-10","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","title":"Version 15","summary":"Upgrade your Next.js Application from Version 14 to 15.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/font"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/staleTimes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/default"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/app-icons"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/runtime"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies"},{"site":"nextjs","path":"/docs/app/api-reference/functions/draft-mode"},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch"},{"site":"nextjs","path":"/docs/app/api-reference/functions/headers"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/upgrading/codemods"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package"},{"site":"vercel-docs","path":"/docs/speed-insights/quickstart"}],"inbound":[{"site":"nextjs","path":"/docs/app/getting-started/upgrading"},{"site":"nextjs","path":"/docs/app/guides/upgrading"},{"site":"nextjs","path":"/docs/app/guides/upgrading/codemods"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/codemods"}],"requires":[{"site":"nextjs","path":"/docs/app/guides/upgrading"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-9","distance":0.1484},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.1552},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.1757},{"site":"nextjs","path":"/docs/app/guides/internationalization","distance":0.1761},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.1804}],"related":[{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-9","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/internationalization","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16","title":"Version 16","summary":"Upgrade your Next.js Application from Version 15 to 16.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/cli/next"},{"site":"nextjs","path":"/docs/app/api-reference/config/eslint"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/devIndicators"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/taint"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopack"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackFileSystemCache"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/webpack"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/default"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/app-icons"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/connection"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies"},{"site":"nextjs","path":"/docs/app/api-reference/functions/draft-mode"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-sitemaps"},{"site":"nextjs","path":"/docs/app/api-reference/functions/headers"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-root-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/refresh"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/updateTag"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"},{"site":"nextjs","path":"/docs/app/guides/ai-agents"},{"site":"nextjs","path":"/docs/app/guides/environment-variables"},{"site":"nextjs","path":"/docs/app/guides/local-development"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/upgrading/codemods"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/getting-started/upgrading"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/upgrading"},{"site":"vercel-kb","path":"/kb/guide/application-authentication-on-vercel"}],"requires":[{"site":"nextjs","path":"/docs/app/guides/upgrading"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","distance":0.1954},{"site":"nextjs","path":"/docs/app/guides/upgrading/codemods","distance":0.201},{"site":"nextjs","path":"/docs/pages/guides/upgrading/codemods","distance":0.2018},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components","distance":0.2119},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-11","distance":0.2393}],"related":[{"site":"vercel-kb","path":"/kb/guide/application-authentication-on-vercel","via":"inbound"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/codemods","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-11","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-9","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/videos","title":"Videos","summary":"Recommendations and best practices for optimizing videos in your Next.js application.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/vercel-blob/client-upload"},{"site":"vercel-docs","path":"/docs/vercel-blob/server-upload"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/best-practices-for-hosting-videos-on-vercel-nextjs-mp4-gif","distance":0.2326},{"site":"nextjs","path":"/docs/pages/guides/third-party-libraries","distance":0.2454},{"site":"nextjs","path":"/docs/app/guides/third-party-libraries","distance":0.2519},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.2628},{"site":"nextjs","path":"/docs/app/getting-started/images","distance":0.2696}],"related":[{"site":"vercel-kb","path":"/kb/guide/best-practices-for-hosting-videos-on-vercel-nextjs-mp4-gif","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/third-party-libraries","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/third-party-libraries","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/images","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/images","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/view-transitions","title":"View transitions","summary":"Learn how to use view transitions to communicate meaning during navigation, loading, and content changes in a Next.js app.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-router"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides"},{"site":"nextjs","path":"/docs/app/guides/interactive-apps"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.2416},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.2644},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes","distance":0.2728},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","distance":0.2919},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating","distance":0.2923}],"related":[{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating","via":"neighbor"}]},{"site":"nextjs","path":"/docs/architecture","title":"Architecture","summary":"How Next.js Works","outbound":[{"site":"nextjs","path":"/docs/architecture/accessibility"},{"site":"nextjs","path":"/docs/architecture/fast-refresh"},{"site":"nextjs","path":"/docs/architecture/nextjs-compiler"},{"site":"nextjs","path":"/docs/architecture/supported-browsers"}],"inbound":[],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/architecture/accessibility","distance":0.1957},{"site":"nextjs","path":"/docs/pages/building-your-application","distance":0.1997},{"site":"nextjs","path":"/docs/pages/guides","distance":0.202},{"site":"nextjs","path":"/docs/app/api-reference/config","distance":0.2125},{"site":"nextjs","path":"/docs/app/guides","distance":0.2173}],"related":[{"site":"nextjs","path":"/docs/pages/building-your-application","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config","via":"neighbor"}]},{"site":"nextjs","path":"/docs/architecture/accessibility","title":"Accessibility","summary":"The built-in accessibility features of Next.js.","outbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/eslint"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides/production-checklist"},{"site":"nextjs","path":"/docs/architecture"},{"site":"nextjs","path":"/docs/pages/guides/production-checklist"}],"requires":[{"site":"nextjs","path":"/docs/architecture"}],"neighbors":[{"site":"nextjs","path":"/docs/architecture","distance":0.1957},{"site":"nextjs","path":"/docs/pages/guides","distance":0.2097},{"site":"nextjs","path":"/docs/app/guides","distance":0.2271},{"site":"nextjs","path":"/docs/architecture/supported-browsers","distance":0.2335},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.2368}],"related":[{"site":"nextjs","path":"/docs/pages/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/architecture/supported-browsers","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/production-checklist","via":"neighbor"}]},{"site":"nextjs","path":"/docs/architecture/fast-refresh","title":"Fast Refresh","summary":"Fast Refresh is a hot module reloading experience that gives you instantaneous feedback on edits made to your React components.","outbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/reactStrictMode"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/codemods"}],"inbound":[{"site":"nextjs","path":"/docs/app/getting-started/css"},{"site":"nextjs","path":"/docs/architecture"},{"site":"nextjs","path":"/docs/pages/getting-started/css"}],"requires":[{"site":"nextjs","path":"/docs/architecture"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/lazy-loading","distance":0.3042},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.3098},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","distance":0.3169},{"site":"nextjs","path":"/docs/app/guides/lazy-loading","distance":0.3172},{"site":"nextjs","path":"/docs/architecture","distance":0.3181}],"related":[{"site":"nextjs","path":"/docs/pages/guides/lazy-loading","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/lazy-loading","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/refresh","via":"neighbor"}]},{"site":"nextjs","path":"/docs/architecture/nextjs-compiler","title":"Next.js Compiler","summary":"Next.js Compiler, written in Rust, which transforms and minifies your Next.js application.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/optimizePackageImports"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/typescript"},{"site":"nextjs","path":"/docs/app/guides/css-in-js"},{"site":"nextjs","path":"/docs/app/guides/testing/jest"},{"site":"nextjs","path":"/docs/architecture"},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript"},{"site":"nextjs","path":"/docs/pages/guides/testing/jest"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-13"}],"requires":[{"site":"nextjs","path":"/docs/architecture"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-12","distance":0.1549},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2093},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/reactCompiler","distance":0.2135},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","distance":0.2177},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2415}],"related":[{"site":"swr","path":"/blog/swr-v2","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-12","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/reactCompiler","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/architecture/supported-browsers","title":"Supported Browsers","summary":"Browser support and which JavaScript features are supported by Next.js.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation-client"},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-app"},{"site":"nextjs","path":"/docs/pages/guides/babel"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/httpAgentOptions"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation-client"},{"site":"nextjs","path":"/docs/app/getting-started/installation"},{"site":"nextjs","path":"/docs/architecture"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/httpAgentOptions"},{"site":"nextjs","path":"/docs/pages/getting-started/installation"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-13"}],"requires":[{"site":"nextjs","path":"/docs/architecture"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.1741},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.1916},{"site":"nextjs","path":"/docs/pages/guides","distance":0.203},{"site":"nextjs","path":"/docs/app/guides","distance":0.2078},{"site":"nextjs","path":"/docs/pages/getting-started/installation","distance":0.2165}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/installation","via":"neighbor"}]},{"site":"nextjs","path":"/docs/community","title":"Community","summary":"Get involved in the Next.js community.","outbound":[{"site":"nextjs","path":"/docs/community/contribution-guide"},{"site":"nextjs","path":"/docs/community/rspack"}],"inbound":[],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/community/contribution-guide","distance":0.2175},{"site":"nextjs","path":"/docs/pages/guides","distance":0.2462},{"site":"nextjs","path":"/docs/community/rspack","distance":0.2626},{"site":"nextjs","path":"/docs/architecture","distance":0.2711},{"site":"nextjs","path":"/docs/app/guides","distance":0.272}],"related":[{"site":"nextjs","path":"/docs/pages/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/architecture","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application","via":"neighbor"}]},{"site":"nextjs","path":"/docs/community/contribution-guide","title":"Contribution Guide","summary":"Learn how to contribute to Next.js Documentation","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"inbound":[{"site":"nextjs","path":"/docs/community"}],"requires":[{"site":"nextjs","path":"/docs/community"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides","distance":0.1867},{"site":"nextjs","path":"/docs/pages/getting-started/installation","distance":0.1891},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.1933},{"site":"nextjs","path":"/docs/app/getting-started/installation","distance":0.1952},{"site":"nextjs","path":"/docs/app/guides","distance":0.1981}],"related":[{"site":"nextjs","path":"/docs/pages/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/installation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/installation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides","via":"neighbor"}]},{"site":"nextjs","path":"/docs/community/rspack","title":"Rspack","summary":"Use the `next-rspack` plugin to bundle your Next.js with Rspack.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/community"}],"requires":[{"site":"nextjs","path":"/docs/community"}],"neighbors":[{"site":"nextjs","path":"/docs/community","distance":0.2626},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackRustReactCompiler","distance":0.3419},{"site":"nextjs","path":"/docs/app/guides/package-bundling","distance":0.3456},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/webpack","distance":0.347},{"site":"nextjs","path":"/docs/pages/guides/package-bundling","distance":0.3508}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-next","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackRustReactCompiler","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/package-bundling","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/webpack","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/package-bundling","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/webpack","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference","title":"API Reference","summary":"Next.js API Reference for the Pages Router.","outbound":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters"},{"site":"nextjs","path":"/docs/pages/api-reference/cli"},{"site":"nextjs","path":"/docs/pages/api-reference/components"},{"site":"nextjs","path":"/docs/pages/api-reference/config"},{"site":"nextjs","path":"/docs/pages/api-reference/edge"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions"},{"site":"nextjs","path":"/docs/pages/api-reference/functions"},{"site":"nextjs","path":"/docs/pages/api-reference/turbopack"}],"inbound":[],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference","distance":0.0751},{"site":"nextjs","path":"/docs/pages/api-reference/components","distance":0.1166},{"site":"nextjs","path":"/docs/pages/api-reference/functions","distance":0.1434},{"site":"nextjs","path":"/docs/pages/getting-started","distance":0.1683},{"site":"nextjs","path":"/docs/pages/building-your-application/routing","distance":0.1871}],"related":[{"site":"nextjs","path":"/docs/app/api-reference","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","title":"Adapters","summary":"Build deployment adapters for Next.js platforms and infrastructure.","outbound":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters/api-reference"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/configuration"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/creating-an-adapter"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/invoking-entrypoints"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/output-types"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/routing-information"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/routing-with-next-routing"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/runtime-integration"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/testing-adapters"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/use-cases"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters/api-reference"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/adapters","distance":0.0126},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/adapterPath","distance":0.0847},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath","distance":0.0929},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/creating-an-adapter","distance":0.1233},{"site":"nextjs","path":"/docs/app/api-reference/adapters/creating-an-adapter","distance":0.1318}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/adapters","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/adapterPath","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/creating-an-adapter","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/use-cases","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/api-reference","title":"API Reference","summary":"Reference for `modifyConfig` and `onBuildComplete` in the `NextAdapter` interface.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/api-reference","distance":0.0065},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.3347},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.3451},{"site":"nextjs","path":"/docs/app/api-reference/adapters","distance":0.367},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","distance":0.3693}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/api-reference","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/adapters","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/routing-information","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/routing-information","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/configuration","title":"Configuration","summary":"Configure `adapterPath` or `NEXT_ADAPTER_PATH` to use a custom deployment adapter.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/configuration","distance":0.0094},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/adapterPath","distance":0.1179},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath","distance":0.1223},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","distance":0.1391},{"site":"nextjs","path":"/docs/app/api-reference/adapters","distance":0.1529}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/configuration","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/adapterPath","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/adapters","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/creating-an-adapter","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/creating-an-adapter","title":"Creating an Adapter","summary":"Create an adapter module that implements the `NextAdapter` interface.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/creating-an-adapter","distance":0.0045},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","distance":0.1233},{"site":"nextjs","path":"/docs/app/api-reference/adapters","distance":0.1358},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/adapterPath","distance":0.1366},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath","distance":0.1465}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/creating-an-adapter","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/adapters","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/adapterPath","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/custom-adapters","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/configuration","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/invoking-entrypoints","title":"Invoking Entrypoints","summary":"Invoke Node.js and Edge build entrypoints with adapter runtime context.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/invoking-entrypoints","distance":0.0059},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/runtime-integration","distance":0.2464},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/runtime","distance":0.2499},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","distance":0.256},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.26}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/invoking-entrypoints","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/runtime-integration","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/runtime","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/runtime-integration","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/output-types","title":"Output Types","summary":"Reference for all build output types exposed to adapters.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/immutable-static-assets"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/output-types","distance":0.0006},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","distance":0.2287},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths","distance":0.2364},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props","distance":0.2594},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2613}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/output-types","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/routing-information","title":"Routing Information","summary":"Reference for routing phases and route fields exposed in `onBuildComplete`.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/routing-information","distance":0.012},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/routing-with-next-routing","distance":0.1652},{"site":"nextjs","path":"/docs/app/api-reference/adapters/routing-with-next-routing","distance":0.1765},{"site":"nextjs","path":"/docs/pages/building-your-application/routing","distance":0.1878},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/dynamic-routes","distance":0.26}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/routing-information","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/routing-with-next-routing","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/routing-with-next-routing","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/dynamic-routes","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/routing-with-next-routing","title":"Routing with @next/routing","summary":"Use `@next/routing` to apply Next.js route matching behavior in adapters.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/routing-with-next-routing","distance":0.0078},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/routing-information","distance":0.1652},{"site":"nextjs","path":"/docs/app/api-reference/adapters/routing-information","distance":0.1843},{"site":"nextjs","path":"/docs/pages/building-your-application/routing","distance":0.1894},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating","distance":0.2175}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/routing-with-next-routing","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/routing-information","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/routing-information","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/runtime-integration","title":"Runtime Integration","summary":"Understand how build-time adapters and runtime cache interfaces work together.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheHandlers"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/incrementalCacheHandlerPath"},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/runtime-integration","distance":0.0623},{"site":"nextjs","path":"/docs/app/api-reference/adapters","distance":0.2057},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","distance":0.2084},{"site":"nextjs","path":"/docs/app/guides/deploying-to-platforms","distance":0.2325},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/invoking-entrypoints","distance":0.2464}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/runtime-integration","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/adapters","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/deploying-to-platforms","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/invoking-entrypoints","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/invoking-entrypoints","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/testing-adapters","title":"Testing Adapters","summary":"Validate adapters with the Next.js compatibility test harness and custom lifecycle scripts.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/testing-adapters","distance":0.0026},{"site":"nextjs","path":"/docs/app/api-reference/adapters","distance":0.1993},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","distance":0.1998},{"site":"nextjs","path":"/docs/app/api-reference/adapters/use-cases","distance":0.2486},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/use-cases","distance":0.2548}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/testing-adapters","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/adapters","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/use-cases","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/use-cases","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/use-cases","title":"Use Cases","summary":"Common patterns and examples for deployment adapter implementations.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/use-cases","distance":0.0092},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","distance":0.1367},{"site":"nextjs","path":"/docs/app/api-reference/adapters","distance":0.1511},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/adapterPath","distance":0.2032},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath","distance":0.2094}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/use-cases","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/adapters","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/adapterPath","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/configuration","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/cli","title":"CLI","summary":"API Reference for the Next.js Command Line Interface (CLI) tools.","outbound":[{"site":"nextjs","path":"/docs/pages/api-reference/cli/create-next-app"},{"site":"nextjs","path":"/docs/pages/api-reference/cli/next"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference"}],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/cli","distance":0.0116},{"site":"nextjs","path":"/docs/pages/api-reference/cli/create-next-app","distance":0.2057},{"site":"nextjs","path":"/docs/app/api-reference","distance":0.2064},{"site":"nextjs","path":"/docs/app/api-reference/cli/create-next-app","distance":0.2213},{"site":"nextjs","path":"/docs/app/getting-started","distance":0.2312}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/cli","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/cli/create-next-app","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/cli/create-next-app","title":"create-next-app CLI","summary":"Create Next.js apps using one command with the create-next-app CLI.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/cli"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/cli"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/cli/create-next-app","distance":0.0031},{"site":"nextjs","path":"/docs/app/getting-started/installation","distance":0.1893},{"site":"nextjs","path":"/docs/pages/getting-started/installation","distance":0.1978},{"site":"nextjs","path":"/docs/app/api-reference/cli","distance":0.2025},{"site":"nextjs","path":"/docs/pages/api-reference/cli","distance":0.2057}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/cli/create-next-app","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/packages/create-v0-sdk-app","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/frameworks/nextjs","via":"neighbor"},{"site":"chat-sdk","path":"/docs/create-chat-sdk","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/installation","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/installation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/cli/next","title":"next CLI","summary":"Learn how to run and build your application with the Next.js CLI.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/turbopack"},{"site":"nextjs","path":"/docs/app/guides/building"},{"site":"nextjs","path":"/docs/app/guides/package-bundling"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides/debugging"},{"site":"nextjs","path":"/docs/pages/api-reference/cli"},{"site":"nextjs","path":"/docs/pages/guides/debugging"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/cli"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/cli/next","distance":0.0053},{"site":"nextjs","path":"/docs/app/guides/local-development","distance":0.2656},{"site":"nextjs","path":"/docs/app/guides/package-bundling","distance":0.2671},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2679},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2685}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/cli/next","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/local-development","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/package-bundling","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/components","title":"Components","summary":"API Reference for Next.js built-in components in the Pages Router.","outbound":[{"site":"nextjs","path":"/docs/pages/api-reference/components/font"},{"site":"nextjs","path":"/docs/pages/api-reference/components/form"},{"site":"nextjs","path":"/docs/pages/api-reference/components/head"},{"site":"nextjs","path":"/docs/pages/api-reference/components/image"},{"site":"nextjs","path":"/docs/pages/api-reference/components/image-legacy"},{"site":"nextjs","path":"/docs/pages/api-reference/components/link"},{"site":"nextjs","path":"/docs/pages/api-reference/components/script"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference"}],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/components","distance":0.0589},{"site":"nextjs","path":"/docs/pages/api-reference","distance":0.1166},{"site":"nextjs","path":"/docs/app/api-reference","distance":0.1778},{"site":"nextjs","path":"/docs/pages/api-reference/functions","distance":0.2064},{"site":"nextjs","path":"/docs/pages/getting-started","distance":0.2111}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/components/font","title":"Font","summary":"API Reference for the Font Module","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/font"},{"site":"nextjs","path":"/docs/app/getting-started/css"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-app"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/components"},{"site":"nextjs","path":"/docs/pages/getting-started/fonts"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-13"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/components"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/components/font","distance":0.0808},{"site":"nextjs","path":"/docs/pages/getting-started/fonts","distance":0.1837},{"site":"nextjs","path":"/docs/app/getting-started/fonts","distance":0.1977},{"site":"nextjs","path":"/docs/app/getting-started/css","distance":0.3198},{"site":"nextjs","path":"/docs/pages/getting-started/css","distance":0.3329}],"related":[{"site":"nextjs","path":"/docs/pages/getting-started/fonts","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/fonts","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-custom-font","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/css","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/css-in-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/typescript","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/components/form","title":"Form","summary":"Learn how to use the `<Form>` component to handle form submissions and search params updates with client-side navigation.","outbound":[{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/components"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/components"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/components/form","distance":0.0796},{"site":"nextjs","path":"/docs/app/guides/forms","distance":0.2258},{"site":"nextjs","path":"/docs/pages/guides/forms","distance":0.2466},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.3229},{"site":"nextjs","path":"/docs/app/api-reference/components","distance":0.3326}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/components/form","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-sveltekit-form-actions","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/forms","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/forms","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/components","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/components/head","title":"Head","summary":"Add custom elements to the `head` of your page with the built-in Head component.","outbound":[{"site":"nextjs","path":"/docs/pages/guides/scripts"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/components"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/crossOrigin"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-document"},{"site":"nextjs","path":"/docs/pages/guides/internationalization"},{"site":"nextjs","path":"/docs/pages/guides/production-checklist"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/components"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/components","distance":0.2469},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.2867},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","distance":0.2877},{"site":"nextjs","path":"/docs/app/api-reference/components","distance":0.2921},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-document","distance":0.3019}],"related":[{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/components","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-document","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/components/image","title":"Image","summary":"Optimize Images in your Next.js Application using the built-in `next/image` Component.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/image"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/headers"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/images"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/incrementalCacheHandlerPath"},{"site":"nextjs","path":"/docs/app/getting-started/css"},{"site":"nextjs","path":"/docs/app/getting-started/images"},{"site":"nextjs","path":"/docs/app/guides/css-in-js"},{"site":"nextjs","path":"/docs/app/guides/upgrading/codemods"},{"site":"nextjs","path":"/docs/pages/api-reference/components/image-legacy"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/components"},{"site":"nextjs","path":"/docs/pages/api-reference/components/image-legacy"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/basePath"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/images"},{"site":"nextjs","path":"/docs/pages/getting-started/images"},{"site":"nextjs","path":"/docs/pages/guides/static-exports"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-12"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/image-optimization/quickstart"},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-next.js-sitecore-jss"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/components"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/components/image","distance":0.0199},{"site":"nextjs","path":"/docs/pages/api-reference/components/image-legacy","distance":0.0506},{"site":"nextjs","path":"/docs/app/getting-started/images","distance":0.2203},{"site":"nextjs","path":"/docs/pages/getting-started/images","distance":0.2218},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/images","distance":0.2502}],"related":[{"site":"vercel-docs","path":"/docs/image-optimization","via":"inbound"},{"site":"vercel-docs","path":"/docs/image-optimization/quickstart","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-next.js-sitecore-jss","via":"inbound"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/build-output-api/configuration","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/images","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/images","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/turbopack","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/components/image-legacy","title":"Image (Legacy)","summary":"Backwards compatible Image Optimization with the Legacy Image component.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/image"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/headers"},{"site":"nextjs","path":"/docs/pages/api-reference/components/image"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/headers"},{"site":"nextjs","path":"/docs/pages/guides/static-exports"},{"site":"vercel-docs","path":"/docs/image-optimization"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/components"},{"site":"nextjs","path":"/docs/pages/api-reference/components/image"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-13"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/components"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/components/image","distance":0.0506},{"site":"nextjs","path":"/docs/app/api-reference/components/image","distance":0.0552},{"site":"nextjs","path":"/docs/app/getting-started/images","distance":0.2292},{"site":"nextjs","path":"/docs/pages/getting-started/images","distance":0.2311},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/images","distance":0.2487}],"related":[{"site":"vercel-docs","path":"/docs/build-output-api/configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/image-optimization/quickstart","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/images","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/images","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/images","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/images","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/components/link","title":"Link","summary":"API reference for the `<Link>` component.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/app/guides/upgrading/codemods"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-initial-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-server-side-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/dynamic-routes"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/components"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-initial-props"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-server-side-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating"},{"site":"nextjs","path":"/docs/pages/guides/draft-mode"},{"site":"nextjs","path":"/docs/pages/guides/preview-mode"},{"site":"nextjs","path":"/docs/pages/guides/production-checklist"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/codemods"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-13"},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-next.js-sitecore-jss"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/components"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating","distance":0.1794},{"site":"nextjs","path":"/docs/app/guides/prefetching","distance":0.1858},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-router","distance":0.186},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.188},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.1998}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-next.js-sitecore-jss","via":"inbound"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-router","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/components/script","title":"Script","summary":"Optimize third-party scripts in your Next.js application using the built-in `next/script` Component.","outbound":[{"site":"nextjs","path":"/docs/app/guides/scripts"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/components"},{"site":"nextjs","path":"/docs/pages/guides/scripts"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-13"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/components"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/components/script","distance":0.0073},{"site":"nextjs","path":"/docs/app/guides/scripts","distance":0.1011},{"site":"nextjs","path":"/docs/pages/guides/scripts","distance":0.1091},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.2583},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page","distance":0.2598}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/components/script","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/scripts","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/lazy-loading","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config","title":"Configuration","summary":"Learn how to configure your Next.js application.","outbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/eslint"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference"}],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config","distance":0.0405},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring","distance":0.0703},{"site":"nextjs","path":"/docs/pages/building-your-application","distance":0.1592},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.1686},{"site":"nextjs","path":"/docs/pages/getting-started","distance":0.1823}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/eslint","title":"ESLint","summary":"Next.js reports ESLint errors and warnings during builds by default. Learn how to opt-out of this behavior here.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/cli/create-next-app"},{"site":"nextjs","path":"/docs/app/guides/upgrading/codemods"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching"},{"site":"nextjs","path":"/docs/pages/guides/babel"}],"inbound":[{"site":"nextjs","path":"/docs/architecture/accessibility"},{"site":"nextjs","path":"/docs/pages/api-reference/config"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/config"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/eslint","distance":0.0076},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2227},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.241},{"site":"nextjs","path":"/docs/app/getting-started/installation","distance":0.248},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","distance":0.2504}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/eslint","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/eslint","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/installation","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","title":"next.config.js Options","summary":"Learn about the options available in next.config.js for the Pages Router.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/headers"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/redirects"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/rewrites"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/adapterPath"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/allowedDevOrigins"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/assetPrefix"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/basePath"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/bundlePagesRouterDependencies"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/compress"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/crossOrigin"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/deploymentId"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/devIndicators"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/distDir"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/env"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/exportPathMap"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/generateBuildId"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/generateEtags"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/headers"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/httpAgentOptions"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/images"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/logging"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/onDemandEntries"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/optimizePackageImports"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/output"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/pageExtensions"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/poweredByHeader"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/productionBrowserSourceMaps"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/proxyClientMaxBodySize"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/reactStrictMode"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/redirects"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/rewrites"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/serverExternalPackages"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/trailingSlash"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/transpilePackages"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopack"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopackChunking"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/typescript"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/urlImports"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/useLightningcss"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/useTypeScriptCli"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/webVitalsAttribution"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/webpack"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/config"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.0282},{"site":"nextjs","path":"/docs/pages/api-reference/config","distance":0.1686},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","distance":0.1691},{"site":"nextjs","path":"/docs/pages/guides","distance":0.1748},{"site":"nextjs","path":"/docs/app/guides","distance":0.1771}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/adapterPath","title":"adapterPath","summary":"Configure a custom adapter for Next.js to hook into the build process.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/api-reference"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/configuration"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/creating-an-adapter"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/implementing-ppr-in-an-adapter"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/invoking-entrypoints"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/output-types"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/routing-information"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/routing-with-next-routing"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/runtime-integration"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/testing-adapters"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/use-cases"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath","distance":0.0056},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","distance":0.0847},{"site":"nextjs","path":"/docs/app/api-reference/adapters","distance":0.0915},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/configuration","distance":0.1179},{"site":"nextjs","path":"/docs/app/api-reference/adapters/configuration","distance":0.1279}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/adapters","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/configuration","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/creating-an-adapter","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/allowedDevOrigins","title":"allowedDevOrigins","summary":"Use `allowedDevOrigins` to configure additional origins that can request the dev server.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/allowedDevOrigins","distance":0.0074},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2614},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2811},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/crossOrigin","distance":0.2819},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/crossOrigin","distance":0.3025}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/allowedDevOrigins","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/crossOrigin","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/crossOrigin","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/assetPrefix","title":"assetPrefix","summary":"Learn how to use the assetPrefix config option to configure your CDN.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/basePath"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/public-folder"},{"site":"nextjs","path":"/docs/pages/getting-started/deploying"},{"site":"nextjs","path":"/docs/pages/guides/incremental-static-regeneration"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/pages/guides/scripts"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/assetPrefix","distance":0.0095},{"site":"nextjs","path":"/docs/app/guides/cdn-caching","distance":0.2302},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2951},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2965},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","distance":0.3284}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/assetPrefix","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/cdn-caching","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/self-hosting","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/basePath","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/basePath","title":"basePath","summary":"Use `basePath` to deploy a Next.js application under a sub-path of a domain.","outbound":[{"site":"nextjs","path":"/docs/pages/api-reference/components/image"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-request"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/basePath","distance":0.0069},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/src-folder","distance":0.2946},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.3007},{"site":"nextjs","path":"/docs/pages/building-your-application","distance":0.3062},{"site":"nextjs","path":"/docs/pages/getting-started","distance":0.3091}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/basePath","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/src-folder","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/src-folder","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/bundlePagesRouterDependencies","title":"bundlePagesRouterDependencies","summary":"Enable automatic dependency bundling for Pages Router","outbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/serverExternalPackages"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/serverExternalPackages"},{"site":"nextjs","path":"/docs/pages/guides/package-bundling"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/serverExternalPackages","distance":0.1836},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverExternalPackages","distance":0.2233},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/transpilePackages","distance":0.2435},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2523},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/pageExtensions","distance":0.2755}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverExternalPackages","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/transpilePackages","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/pageExtensions","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/transpilePackages","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/optimizePackageImports","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/compress","title":"compress","summary":"Next.js provides gzip compression to compress rendered content and static files, it only works with the server target. Learn more about it here.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/compress","distance":0.0141},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/automatic-static-optimization","distance":0.29},{"site":"nextjs","path":"/docs/pages/api-reference/config","distance":0.2926},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2982},{"site":"nextjs","path":"/docs/pages/guides/production-checklist","distance":0.3014}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/compress","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/automatic-static-optimization","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/production-checklist","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/architecture","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/crossOrigin","title":"crossOrigin","summary":"Use the `crossOrigin` option to add a crossOrigin tag on the `script` tags generated by `next/script` and `next/head`.","outbound":[{"site":"nextjs","path":"/docs/pages/api-reference/components/head"},{"site":"nextjs","path":"/docs/pages/guides/scripts"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/crossOrigin","distance":0.011},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/allowedDevOrigins","distance":0.2819},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2855},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/allowedDevOrigins","distance":0.2894},{"site":"nextjs","path":"/docs/pages/api-reference/config","distance":0.311}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/crossOrigin","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/allowedDevOrigins","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/allowedDevOrigins","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/httpAgentOptions","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/deploymentId","title":"deploymentId","summary":"Configure a deployment identifier used for version skew protection and cache busting.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/generateBuildId"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/deploymentId","distance":0.0078},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/generateBuildId","distance":0.301},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/generateBuildId","distance":0.3159},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","distance":0.3306},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.3312}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/deploymentId","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/get-by-id","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/generateBuildId","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/deploying","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/deploying","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/devIndicators","title":"devIndicators","summary":"Optimized pages include an indicator to let you know if it's being statically optimized. You can opt-out of it here.","outbound":[{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-initial-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-server-side-props"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/devIndicators","distance":0.0349},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2562},{"site":"nextjs","path":"/docs/app/guides/static-exports","distance":0.2608},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2669},{"site":"nextjs","path":"/docs/pages/guides/static-exports","distance":0.2692}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/devIndicators","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/static-exports","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/static-exports","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/distDir","title":"distDir","summary":"Set a custom build directory to use instead of the default .next directory.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/exportPathMap"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/exportPathMap"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/distDir","distance":0.0109},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/appDir","distance":0.3021},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring","distance":0.3275},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/src-folder","distance":0.3275},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/generateBuildId","distance":0.3326}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/distDir","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/appDir","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/src-folder","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/generateBuildId","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/env","title":"env","summary":"Learn to add and access environment variables in your Next.js application at build time.","outbound":[{"site":"nextjs","path":"/docs/pages/guides/environment-variables"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/env","distance":0.0188},{"site":"nextjs","path":"/docs/pages/guides/environment-variables","distance":0.1366},{"site":"nextjs","path":"/docs/app/guides/environment-variables","distance":0.148},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/webpack","distance":0.2526},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2631}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/env","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/environment-variables","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/webpack","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/webpack","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/exportPathMap","title":"exportPathMap","summary":"Customize the pages that will be exported as HTML files when using `next export`.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/cli/next"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/distDir"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/automatic-static-optimization"},{"site":"nextjs","path":"/docs/pages/guides/static-exports"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/exportPathMap","distance":0.0038},{"site":"nextjs","path":"/docs/pages/guides/static-exports","distance":0.2234},{"site":"nextjs","path":"/docs/app/guides/static-exports","distance":0.2413},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.282},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths","distance":0.3047}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/exportPathMap","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/static-exports","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-paths","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/generateBuildId","title":"generateBuildId","summary":"Configure the build id, which is used to identify the current build in which your application is being served.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-request"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/generateBuildId","distance":0.0192},{"site":"nextjs","path":"/docs/pages/building-your-application","distance":0.2963},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/deploymentId","distance":0.301},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring","distance":0.3058},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/generateEtags","distance":0.3101}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/generateBuildId","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/deploymentId","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/generateEtags","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/generateEtags","title":"generateEtags","summary":"Next.js will generate etags for every page by default. Learn more about how to disable etag generation here.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/generateEtags","distance":0.0199},{"site":"nextjs","path":"/docs/pages/api-reference/config","distance":0.2895},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/poweredByHeader","distance":0.2985},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/generateBuildId","distance":0.3101},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring","distance":0.3127}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/generateEtags","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/poweredByHeader","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/generateBuildId","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/headers","title":"headers","summary":"Add custom HTTP headers to your Next.js app.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/basePath"},{"site":"nextjs","path":"/docs/app/getting-started/images"},{"site":"nextjs","path":"/docs/app/guides/content-security-policy"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/static-site-generation"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/api-routes"},{"site":"nextjs","path":"/docs/pages/guides/internationalization"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/components/image-legacy"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/rewrites"},{"site":"nextjs","path":"/docs/pages/guides/static-exports"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/headers","distance":0.0113},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","distance":0.209},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2147},{"site":"nextjs","path":"/docs/app/guides/content-security-policy","distance":0.2175},{"site":"nextjs","path":"/docs/app/api-reference/functions/headers","distance":0.2262}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/headers","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/headers","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/cdn-caching","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/httpAgentOptions","title":"httpAgentOptions","summary":"Next.js will automatically use HTTP Keep-Alive by default. Learn more about how to disable HTTP Keep-Alive here.","outbound":[{"site":"nextjs","path":"/docs/architecture/supported-browsers"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/httpAgentOptions","distance":0.0084},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2905},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.3108},{"site":"nextjs","path":"/docs/pages/api-reference/config","distance":0.3134},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/crossOrigin","distance":0.3171}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/httpAgentOptions","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/crossOrigin","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/poweredByHeader","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/images","title":"images","summary":"Custom configuration for the next/image loader","outbound":[{"site":"nextjs","path":"/docs/pages/api-reference/components/image"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/images","distance":0.0028},{"site":"nextjs","path":"/docs/pages/getting-started/images","distance":0.1944},{"site":"nextjs","path":"/docs/app/getting-started/images","distance":0.1949},{"site":"nextjs","path":"/docs/pages/api-reference/components/image-legacy","distance":0.2487},{"site":"nextjs","path":"/docs/pages/api-reference/components/image","distance":0.2502}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/images","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/images","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/images","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/components/image-legacy","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/logging","title":"logging","summary":"Configure logging behavior in the terminal when running Next.js in development mode.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/logging","distance":0.0253},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2277},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2509},{"site":"nextjs","path":"/docs/pages/api-reference/config","distance":0.2672},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring","distance":0.2836}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/logging","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/devIndicators","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/onDemandEntries","title":"onDemandEntries","summary":"Configure how Next.js will dispose and keep in memory pages created in development.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/onDemandEntries","distance":0.0092},{"site":"nextjs","path":"/docs/pages/api-reference/config","distance":0.2858},{"site":"nextjs","path":"/docs/app/guides/memory-usage","distance":0.3007},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.3031},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring","distance":0.3052}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/onDemandEntries","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/memory-usage","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheMaxMemorySize","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/httpAgentOptions","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/optimizePackageImports","title":"optimizePackageImports","summary":"API Reference for optimizePackageImports Next.js Config Option","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/optimizePackageImports","distance":0.0038},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2024},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/serverExternalPackages","distance":0.2041},{"site":"nextjs","path":"/docs/pages/guides/package-bundling","distance":0.2123},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2136}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/optimizePackageImports","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/serverExternalPackages","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/package-bundling","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverExternalPackages","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/output","title":"output","summary":"Next.js automatically traces which files are needed by each page to allow for easy deployment of your application. Learn how it works here.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-12"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-13"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/output","distance":0.0039},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2163},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2182},{"site":"nextjs","path":"/docs/app/guides/local-development","distance":0.2596},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","distance":0.2653}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/output","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/local-development","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/static-exports","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/pageExtensions","title":"pageExtensions","summary":"Extend the default page extensions used by Next.js when resolving pages in the Pages Router.","outbound":[{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/pages/guides/instrumentation"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/api-routes"},{"site":"nextjs","path":"/docs/pages/guides/open-telemetry"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/pageExtensions","distance":0.0498},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2599},{"site":"nextjs","path":"/docs/pages/api-reference/config","distance":0.2834},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/bundlePagesRouterDependencies","distance":0.2864},{"site":"nextjs","path":"/docs/pages/getting-started","distance":0.2905}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/pageExtensions","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/bundlePagesRouterDependencies","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/poweredByHeader","title":"poweredByHeader","summary":"Next.js will add the `x-powered-by` header by default. Learn to opt-out of it here.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/poweredByHeader","distance":0.0119},{"site":"nextjs","path":"/docs/pages/api-reference/config","distance":0.29},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/generateEtags","distance":0.2985},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.3056},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/generateEtags","distance":0.308}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/poweredByHeader","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/generateEtags","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/generateEtags","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/headers","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/productionBrowserSourceMaps","title":"productionBrowserSourceMaps","summary":"Enables browser source map generation during the production build.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/productionBrowserSourceMaps","distance":0.0074},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.3303},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/exportPathMap","distance":0.3353},{"site":"nextjs","path":"/docs/architecture/supported-browsers","distance":0.3375},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/exportPathMap","distance":0.3382}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/productionBrowserSourceMaps","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/exportPathMap","via":"neighbor"},{"site":"nextjs","path":"/docs/architecture/supported-browsers","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/exportPathMap","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/proxyClientMaxBodySize","title":"experimental.proxyClientMaxBodySize","summary":"Configure the maximum request body size when using proxy.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/proxyClientMaxBodySize","distance":0.0138},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheMaxMemorySize","distance":0.3071},{"site":"nextjs","path":"/docs/app/getting-started/proxy","distance":0.3149},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/reactMaxHeadersLength","distance":0.3444},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy","distance":0.3597}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/proxyClientMaxBodySize","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next/examples/proxy","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheMaxMemorySize","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/proxy","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/reactMaxHeadersLength","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/reactStrictMode","title":"reactStrictMode","summary":"The complete Next.js runtime is now Strict Mode-compliant, learn how to opt-in","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/architecture/fast-refresh"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/reactStrictMode","distance":0.0114},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-11","distance":0.2751},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2765},{"site":"nextjs","path":"/docs/pages/api-reference/config","distance":0.2844},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering","distance":0.2882}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/reactStrictMode","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-11","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/redirects","title":"redirects","summary":"Add redirects to your Next.js app.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/basePath"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-server-side-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/api-routes"},{"site":"nextjs","path":"/docs/pages/guides/internationalization"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/rewrites"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props"},{"site":"nextjs","path":"/docs/pages/guides/static-exports"},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-next.js-sitecore-jss"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/redirects","distance":0.0025},{"site":"nextjs","path":"/docs/app/guides/redirecting","distance":0.1348},{"site":"nextjs","path":"/docs/pages/guides/redirecting","distance":0.1489},{"site":"nextjs","path":"/docs/app/api-reference/functions/redirect","distance":0.1513},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/rewrites","distance":0.1705}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-next.js-sitecore-jss","via":"inbound"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects/configuration-redirects","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/redirecting","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/redirecting","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/redirect","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/permanentRedirect","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/rewrites","title":"rewrites","summary":"Add rewrites to your Next.js app.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/basePath"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/headers"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/redirects"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/public-folder"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/automatic-static-optimization"},{"site":"nextjs","path":"/docs/pages/guides/internationalization"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/automatic-static-optimization"},{"site":"nextjs","path":"/docs/pages/guides/static-exports"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/rewrites","distance":0.0045},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/redirects","distance":0.1691},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/redirects","distance":0.1705},{"site":"vercel-docs","path":"/docs/routing/rewrites","distance":0.2021},{"site":"nextjs","path":"/docs/pages/guides/redirecting","distance":0.2565}],"related":[{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","via":"inbound"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/rewrites","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/rewrites","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/redirects","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/redirecting","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/redirecting","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/components/link","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/serverExternalPackages","title":"serverExternalPackages","summary":"Opt-out specific dependencies from the dependency bundling enabled by `bundlePagesRouterDependencies`.","outbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/bundlePagesRouterDependencies"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/bundlePagesRouterDependencies"},{"site":"nextjs","path":"/docs/pages/guides/package-bundling"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverExternalPackages","distance":0.0501},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/bundlePagesRouterDependencies","distance":0.1836},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/optimizePackageImports","distance":0.2041},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/optimizePackageImports","distance":0.2158},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2294}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverExternalPackages","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/optimizePackageImports","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/optimizePackageImports","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/transpilePackages","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/trailingSlash","title":"trailingSlash","summary":"Configure Next.js pages to resolve with or without a trailing slash.","outbound":[{"site":"nextjs","path":"/docs/app/guides/static-exports"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-vercel-cron-jobs"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/trailingSlash","distance":0.0065},{"site":"nextjs","path":"/docs/pages/api-reference/config","distance":0.2812},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.3},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/pageExtensions","distance":0.3036},{"site":"nextjs","path":"/docs/pages/guides/static-exports","distance":0.3051}],"related":[{"site":"vercel-kb","path":"/kb/guide/troubleshooting-vercel-cron-jobs","via":"inbound"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/trailingSlash","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/pageExtensions","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/static-exports","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/transpilePackages","title":"transpilePackages","summary":"Automatically transpile and bundle dependencies from local packages (like monorepos) or from external dependencies (`node_modules`).","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/optimizePackageImports"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverExternalPackages"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/transpilePackages","distance":0.0108},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverExternalPackages","distance":0.2258},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/serverExternalPackages","distance":0.2354},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/bundlePagesRouterDependencies","distance":0.2435},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2616}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/transpilePackages","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/serverExternalPackages","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/bundlePagesRouterDependencies","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/optimizePackageImports","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopack","title":"turbopack","summary":"Configure Next.js with Turbopack-specific options","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/edge"},{"site":"nextjs","path":"/docs/app/api-reference/turbopack"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopack","distance":0.0009},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackIgnoreIssue","distance":0.1774},{"site":"nextjs","path":"/docs/app/api-reference/turbopack","distance":0.2},{"site":"nextjs","path":"/docs/pages/api-reference/turbopack","distance":0.2068},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackRustReactCompiler","distance":0.2162}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopack","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/turbo-codemod","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackIgnoreIssue","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/turbopack","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackRustReactCompiler","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackChunking","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopackChunking","title":"turbopackChunking","summary":"Configure how Turbopack splits your client-side JavaScript into chunks in production.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackChunking","distance":0.0175},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cssChunking","distance":0.2304},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopack","distance":0.2308},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopack","distance":0.2359},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackMemoryEviction","distance":0.2617}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackChunking","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cssChunking","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopack","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopack","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackMemoryEviction","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/typescript","title":"typescript","summary":"Next.js reports TypeScript errors by default. Learn to opt-out of this behavior here.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/typescript"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/typescript","distance":0.0395},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/useTypeScriptCli","distance":0.185},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","distance":0.1944},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/useTypeScriptCli","distance":0.1954},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2247}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/typescript","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/useTypeScriptCli","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/useTypeScriptCli","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/urlImports","title":"urlImports","summary":"Configure Next.js to allow importing modules from external URLs.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/edge"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/urlImports","distance":0.0029},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.266},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2689},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/optimizePackageImports","distance":0.2715},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/optimizePackageImports","distance":0.2772}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/urlImports","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/optimizePackageImports","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/optimizePackageImports","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/useLightningcss","title":"useLightningcss","summary":"Enable experimental support for Lightning CSS.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/useLightningcss","distance":0.0019},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopack","distance":0.2237},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopack","distance":0.2259},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2364},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2488}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/useLightningcss","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopack","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopack","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackRustReactCompiler","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/useTypeScriptCli","title":"useTypeScriptCli","summary":"Run the project-local TypeScript CLI for type checking during production builds.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/cli/next"},{"site":"nextjs","path":"/docs/app/api-reference/config/typescript"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/useTypeScriptCli","distance":0.0029},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/typescript","distance":0.185},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/typescript","distance":0.1925},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","distance":0.1988},{"site":"nextjs","path":"/docs/app/api-reference/config/typescript","distance":0.2634}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/useTypeScriptCli","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/typescript","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/typescript","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/typescript","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/webVitalsAttribution","title":"webVitalsAttribution","summary":"Learn how to use the webVitalsAttribution option to pinpoint the source of Web Vitals issues.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/webVitalsAttribution","distance":0.0102},{"site":"nextjs","path":"/docs/app/guides/analytics","distance":0.2368},{"site":"nextjs","path":"/docs/pages/guides/analytics","distance":0.2399},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-report-web-vitals","distance":0.2563},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-report-web-vitals","distance":0.2661}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/webVitalsAttribution","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/analytics","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/analytics","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-report-web-vitals","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-report-web-vitals","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/webpack","title":"webpack","summary":"Learn how to customize the webpack config used by Next.js","outbound":[{"site":"nextjs","path":"/docs/app/getting-started/css"},{"site":"nextjs","path":"/docs/pages/guides/babel"},{"site":"nextjs","path":"/docs/pages/guides/sass"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/webpack","distance":0.0043},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.1961},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.1966},{"site":"nextjs","path":"/docs/pages/guides/babel","distance":0.2298},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/env","distance":0.2526}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/webpack","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/env","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/env","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/memory-usage","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","title":"TypeScript","summary":"Next.js provides a TypeScript-first development experience for building your React application.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/cli/next"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/typescript"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/useTypeScriptCli"},{"site":"nextjs","path":"/docs/app/guides/environment-variables"},{"site":"nextjs","path":"/docs/architecture/nextjs-compiler"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-server-side-props"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-app"}],"inbound":[{"site":"nextjs","path":"/docs/architecture/supported-browsers"},{"site":"nextjs","path":"/docs/pages/api-reference/config"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/config"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/typescript","distance":0.1251},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.152},{"site":"nextjs","path":"/docs/pages/getting-started/installation","distance":0.1632},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.1691},{"site":"nextjs","path":"/docs/app/getting-started/installation","distance":0.1698}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/typescript","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/installation","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/installation","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/edge","title":"Edge Runtime","summary":"API Reference for the Edge Runtime.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/guides/environment-variables"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference"}],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/edge","distance":0.0056},{"site":"vercel-docs","path":"/docs/functions/runtimes/edge","distance":0.1593},{"site":"nextjs","path":"/docs/app/api-reference/adapters/invoking-entrypoints","distance":0.2905},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/invoking-entrypoints","distance":0.2915},{"site":"nextjs","path":"/docs/app/api-reference/functions","distance":0.2955}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/edge","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/edge","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-globals","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/invoking-entrypoints","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/invoking-entrypoints","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/runtime","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions","title":"File-system conventions","summary":"API Reference for Next.js file-system conventions.","outbound":[{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/instrumentation"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/public-folder"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/src-folder"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference"}],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions","distance":0.0526},{"site":"nextjs","path":"/docs/pages/getting-started/project-structure","distance":0.1873},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata","distance":0.1923},{"site":"nextjs","path":"/docs/pages/api-reference","distance":0.2097},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/src-folder","distance":0.2215}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/project-structure","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/src-folder","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/instrumentation","title":"instrumentation.js","summary":"API reference for the instrumentation.js file.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/src-folder"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation","distance":0.0079},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation-client","distance":0.1415},{"site":"nextjs","path":"/docs/app/guides/instrumentation","distance":0.1504},{"site":"nextjs","path":"/docs/pages/guides/instrumentation","distance":0.1507},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/instrumentationClientInject","distance":0.2662}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation-client","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/instrumentation","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/instrumentation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/instrumentationClientInject","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/proxy","title":"Proxy","summary":"Learn how to use Proxy to run code before a request is completed.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/pageExtensions"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-server"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/runtime"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-response"},{"site":"nextjs","path":"/docs/app/getting-started/deploying"},{"site":"nextjs","path":"/docs/app/getting-started/proxy"},{"site":"nextjs","path":"/docs/app/guides/data-security"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/api-routes"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/pageExtensions"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props"},{"site":"nextjs","path":"/docs/pages/guides/internationalization"},{"site":"nextjs","path":"/docs/pages/guides/static-exports"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy","distance":0.0115},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend","distance":0.1949},{"site":"nextjs","path":"/docs/app/getting-started/proxy","distance":0.2113},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-response","distance":0.22},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-response","distance":0.2214}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next/examples/proxy","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/modify-request-headers","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-response","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/content-security-policy","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/redirecting","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/public-folder","title":"public","summary":"Next.js allows you to serve static files, like images, in the public directory. You can learn how it works here.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/assetPrefix"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/rewrites"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions"},{"site":"nextjs","path":"/docs/pages/getting-started/fonts"},{"site":"nextjs","path":"/docs/pages/guides/internationalization"},{"site":"nextjs","path":"/docs/pages/guides/production-checklist"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/public-folder","distance":0.023},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/src-folder","distance":0.2321},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions","distance":0.2329},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/src-folder","distance":0.2365},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions","distance":0.2485}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/public-folder","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/src-folder","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/src-folder","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/project-structure","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/src-folder","title":"src Directory","summary":"Save pages under the `src` folder as an alternative to the root `pages` directory.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/src-folder","distance":0.0245},{"site":"nextjs","path":"/docs/pages/getting-started/project-structure","distance":0.1858},{"site":"nextjs","path":"/docs/pages/getting-started","distance":0.2214},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions","distance":0.2274},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/public-folder","distance":0.2365}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/src-folder","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/project-structure","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/public-folder","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/appDir","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/functions","title":"Functions","summary":"API Reference for Functions and Hooks in Pages Router.","outbound":[{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-initial-props"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-server-side-props"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-request"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-response"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-params"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-report-web-vitals"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-search-params"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/userAgent"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference"}],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/functions","distance":0.1403},{"site":"nextjs","path":"/docs/pages/api-reference","distance":0.1434},{"site":"nextjs","path":"/docs/app/api-reference","distance":0.2022},{"site":"nextjs","path":"/docs/pages/api-reference/components","distance":0.2064},{"site":"nextjs","path":"/docs/pages/building-your-application/routing","distance":0.2073}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/functions","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/components","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-initial-props","title":"getInitialProps","summary":"Fetch dynamic data on the server for your React component with getInitialProps.","outbound":[{"site":"nextjs","path":"/docs/app/getting-started/fetching-data"},{"site":"nextjs","path":"/docs/pages/api-reference/components/link"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-server-side-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/components/link"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/devIndicators"},{"site":"nextjs","path":"/docs/pages/api-reference/functions"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-app"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-document"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-server-side-props","distance":0.1684},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-server-side-props","distance":0.1907},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props","distance":0.2094},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props","distance":0.2155},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-app","distance":0.2525}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-server-side-props","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-app","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-server-side-props","title":"getServerSideProps","summary":"API reference for `getServerSideProps`. Learn how to fetch data on each request with Next.js.","outbound":[{"site":"nextjs","path":"/docs/app/getting-started/fetching-data"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-error"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/dynamic-routes"},{"site":"nextjs","path":"/docs/pages/guides/draft-mode"},{"site":"nextjs","path":"/docs/pages/guides/preview-mode"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript"},{"site":"nextjs","path":"/docs/pages/api-reference/functions"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-server-side-props"},{"site":"nextjs","path":"/docs/pages/guides/draft-mode"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-server-side-props","distance":0.1153},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props","distance":0.1214},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-initial-props","distance":0.1684},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props","distance":0.1978},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page","distance":0.2033}],"related":[{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-server-side-props","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-initial-props","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths","title":"getStaticPaths","summary":"API reference for `getStaticPaths`. Learn how to fetch data and generate static pages with `getStaticPaths`.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/dynamic-routes"},{"site":"nextjs","path":"/docs/pages/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/pages/guides/internationalization"},{"site":"nextjs","path":"/docs/pages/guides/static-exports"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/rewrites"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-pathname"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/rewrites"},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript"},{"site":"nextjs","path":"/docs/pages/api-reference/functions"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-paths"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props"},{"site":"nextjs","path":"/docs/pages/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/pages/guides/internationalization"},{"site":"nextjs","path":"/docs/pages/guides/static-exports"},{"site":"vercel-docs","path":"/docs/caching/cache-status"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-reduce-my-build-time-with-next-js-on-vercel"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-paths","distance":0.0752},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props","distance":0.0953},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props","distance":0.1556},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params","distance":0.1752},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","distance":0.1786}],"related":[{"site":"vercel-docs","path":"/docs/caching/cache-status","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-reduce-my-build-time-with-next-js-on-vercel","via":"inbound"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-paths","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props","title":"getStaticProps","summary":"API reference for `getStaticProps`. Learn how to use `getStaticProps` to generate static pages with Next.js.","outbound":[{"site":"nextjs","path":"/docs/app/getting-started/fetching-data"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/redirects"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-error"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/dynamic-routes"},{"site":"nextjs","path":"/docs/pages/guides/draft-mode"},{"site":"nextjs","path":"/docs/pages/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/pages/guides/preview-mode"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript"},{"site":"nextjs","path":"/docs/pages/api-reference/functions"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths","distance":0.0953},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props","distance":0.1121},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-server-side-props","distance":0.1214},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-paths","distance":0.163},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-server-side-props","distance":0.1686}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-server-side-props","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-paths","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-server-side-props","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/static-exports","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-request","title":"NextRequest","summary":"API Reference for NextRequest.","outbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/basePath"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/generateBuildId"},{"site":"nextjs","path":"/docs/pages/guides/internationalization"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/functions"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/functions/next-request","distance":0.0115},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-response","distance":0.1609},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-response","distance":0.1648},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies","distance":0.1933},{"site":"nextjs","path":"/docs/app/api-reference/functions","distance":0.2689}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/functions/next-request","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-response","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-response","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-response","title":"NextResponse","summary":"API Reference for NextResponse.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/functions"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/functions/next-response","distance":0.0044},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-request","distance":0.1609},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-request","distance":0.1695},{"site":"nextjs","path":"/docs/app/guides/redirecting","distance":0.1962},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend","distance":0.2075}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/functions/next-response","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-request","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-request","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/redirecting","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-params","title":"useParams","summary":"API Reference for the useParams hook in the Pages Router.","outbound":[{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-server-side-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/automatic-static-optimization"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/dynamic-routes"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/functions"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/functions/use-params","distance":0.071},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-search-params","distance":0.1454},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page","distance":0.1684},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-search-params","distance":0.173},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params","distance":0.1897}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/functions/use-params","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-search-params","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-search-params","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-report-web-vitals","title":"useReportWebVitals","summary":"useReportWebVitals","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/functions"},{"site":"nextjs","path":"/docs/pages/guides/analytics"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/functions/use-report-web-vitals","distance":0.0214},{"site":"nextjs","path":"/docs/pages/guides/analytics","distance":0.0691},{"site":"nextjs","path":"/docs/app/guides/analytics","distance":0.0891},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/webVitalsAttribution","distance":0.2563},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/webVitalsAttribution","distance":0.2665}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/functions/use-report-web-vitals","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/analytics","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/analytics","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/webVitalsAttribution","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/webVitalsAttribution","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-router","title":"useRouter","summary":"Learn more about the API of the Next.js Router, and access the router instance in your page with the useRouter hook.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/basePath"},{"site":"nextjs","path":"/docs/pages/api-reference/components/link"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/rewrites"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-initial-props"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-server-side-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/automatic-static-optimization"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-app"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/dynamic-routes"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating"},{"site":"nextjs","path":"/docs/pages/guides/authentication"},{"site":"nextjs","path":"/docs/pages/guides/custom-server"},{"site":"nextjs","path":"/docs/pages/guides/preview-mode"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/pages/api-reference/functions"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-initial-props"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-params"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-search-params"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-server-side-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/automatic-static-optimization"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/dynamic-routes"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating"},{"site":"nextjs","path":"/docs/pages/guides/custom-server"},{"site":"nextjs","path":"/docs/pages/guides/internationalization"},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/pages/guides/preview-mode"},{"site":"nextjs","path":"/docs/pages/guides/redirecting"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/components/link","distance":0.2171},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-router","distance":0.2261},{"site":"nextjs","path":"/docs/app/guides/prefetching","distance":0.2593},{"site":"nextjs","path":"/docs/pages/guides/upgrading/codemods","distance":0.2674},{"site":"nextjs","path":"/docs/pages/api-reference/components/link","distance":0.2714}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/components/link","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-router","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/codemods","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-search-params","title":"useSearchParams","summary":"API Reference for the useSearchParams hook in the Pages Router.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions/use-search-params"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-server-side-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/automatic-static-optimization"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/functions"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/functions/use-search-params","distance":0.0546},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-params","distance":0.1454},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-params","distance":0.2041},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page","distance":0.2201},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-router","distance":0.2504}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-params","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-params","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-router","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-pathname","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/functions/userAgent","title":"userAgent","summary":"The userAgent helper extends the Web Request API with additional properties and methods to interact with the user agent object from the request.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/functions"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/functions/userAgent","distance":0.0065},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/robots","distance":0.321},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-request","distance":0.3313},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-response","distance":0.337},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-request","distance":0.3373}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/functions/userAgent","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/robots","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-request","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-response","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-request","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/turbopack","title":"Turbopack","summary":"Turbopack is an incremental bundler optimized for JavaScript and TypeScript, written in Rust, and built into Next.js.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/basePath"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopack"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackFileSystemCache"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackIgnoreIssue"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLocalPostcssConfig"},{"site":"nextjs","path":"/docs/app/getting-started/css"},{"site":"nextjs","path":"/docs/app/guides/lazy-loading"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference"}],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/turbopack","distance":0.0206},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopack","distance":0.2068},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopack","distance":0.2087},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackIgnoreIssue","distance":0.2735},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16","distance":0.3053}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/turbopack","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/configuration","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/typescript","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopack","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackChunking","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopackChunking","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/building-your-application","title":"Building Your Application","summary":"Learn how to use Next.js features to build your application.","outbound":[{"site":"nextjs","path":"/docs/pages/building-your-application/configuring"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing"}],"inbound":[],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/pages/building-your-application/configuring","distance":0.1425},{"site":"nextjs","path":"/docs/pages/getting-started","distance":0.1444},{"site":"nextjs","path":"/docs/app/getting-started","distance":0.1446},{"site":"nextjs","path":"/docs/pages/api-reference/config","distance":0.1592},{"site":"nextjs","path":"/docs/pages/guides","distance":0.1609}],"related":[{"site":"nextjs","path":"/docs/pages/getting-started","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring","title":"Configuring","summary":"Learn how to configure your Next.js application.","outbound":[{"site":"nextjs","path":"/docs/pages/building-your-application/configuring/error-handling"}],"inbound":[{"site":"nextjs","path":"/docs/pages/building-your-application"}],"requires":[{"site":"nextjs","path":"/docs/pages/building-your-application"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config","distance":0.0703},{"site":"nextjs","path":"/docs/app/api-reference/config","distance":0.0899},{"site":"nextjs","path":"/docs/pages/building-your-application","distance":0.1425},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2062},{"site":"nextjs","path":"/docs/pages/getting-started","distance":0.2083}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring/error-handling","title":"Error Handling","summary":"Handle errors in your Next.js app.","outbound":[{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-error"}],"inbound":[{"site":"nextjs","path":"/docs/pages/building-your-application/configuring"}],"requires":[{"site":"nextjs","path":"/docs/pages/building-your-application/configuring"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/error-handling","distance":0.1595},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-error","distance":0.1735},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/error","distance":0.1947},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring","distance":0.2522},{"site":"nextjs","path":"/docs/pages/building-your-application","distance":0.2675}],"related":[{"site":"nextjs","path":"/docs/app/getting-started/error-handling","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/error","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/catchError","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching","title":"Data Fetching","summary":"Next.js allows you to fetch data in multiple ways, with prerendering, server-side rendering or static-site generation, and incremental static regeneration. Learn how to manage your application data in Next.js.","outbound":[{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-server-side-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-paths"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/eslint"},{"site":"nextjs","path":"/docs/pages/api-reference/config/eslint"},{"site":"nextjs","path":"/docs/pages/building-your-application"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-app"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-document"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-error"},{"site":"nextjs","path":"/docs/pages/guides/draft-mode"},{"site":"nextjs","path":"/docs/pages/guides/environment-variables"},{"site":"nextjs","path":"/docs/pages/guides/preview-mode"}],"requires":[{"site":"nextjs","path":"/docs/pages/building-your-application"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides","distance":0.1695},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching","distance":0.1839},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering","distance":0.1945},{"site":"nextjs","path":"/docs/pages/guides","distance":0.1968},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-server-side-props","distance":0.1996}],"related":[{"site":"nextjs","path":"/docs/app/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side","title":"Client-side Fetching","summary":"Learn about client-side data fetching, and how to use SWR, a data fetching React Hook library that handles caching, revalidation, focus tracking, refetching on interval and more.","outbound":[{"site":"swr","path":"/docs/getting-started"}],"inbound":[{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/static-site-generation"},{"site":"nextjs","path":"/docs/pages/guides/static-exports"}],"requires":[{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching","distance":0.1512},{"site":"swr","path":"/docs/getting-started","distance":0.1595},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","distance":0.1597},{"site":"swr","path":"/docs/with-nextjs","distance":0.1616},{"site":"swr","path":"/docs/prefetching","distance":0.1843}],"related":[{"site":"swr","path":"/docs/with-nextjs","via":"neighbor"},{"site":"swr","path":"/docs/prefetching","via":"neighbor"},{"site":"swr","path":"/docs/data-fetching","via":"neighbor"},{"site":"swr","path":"/docs/advanced/understanding","via":"neighbor"},{"site":"swr","path":"/docs/api","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/client-side-rendering","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering","via":"inbound"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/static-site-generation","via":"inbound"}]},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-server-side-props","title":"getServerSideProps","summary":"Fetch data on each request with `getServerSideProps`.","outbound":[{"site":"nextjs","path":"/docs/pages/api-reference/components/link"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-server-side-props"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/api-routes"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-error"},{"site":"nextjs","path":"/docs/pages/guides/incremental-static-regeneration"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/redirects"},{"site":"nextjs","path":"/docs/pages/api-reference/components/link"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/devIndicators"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/redirects"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-initial-props"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-params"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-search-params"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-paths"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/client-side-rendering"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/server-side-rendering"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-app"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-document"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-error"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating"},{"site":"nextjs","path":"/docs/pages/guides/content-security-policy"},{"site":"nextjs","path":"/docs/pages/guides/production-checklist"},{"site":"nextjs","path":"/docs/pages/guides/static-exports"}],"requires":[{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-server-side-props","distance":0.1153},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props","distance":0.1224},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props","distance":0.1686},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/server-side-rendering","distance":0.1707},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-initial-props","distance":0.1907}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/server-side-rendering","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-initial-props","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-paths","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/automatic-static-optimization","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-paths","title":"getStaticPaths","summary":"Fetch data and generate static pages with `getStaticPaths`. Learn more about this API for data fetching in Next.js.","outbound":[{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-server-side-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/dynamic-routes"}],"inbound":[{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/static-site-generation"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/dynamic-routes"},{"site":"nextjs","path":"/docs/pages/guides/internationalization"},{"site":"nextjs","path":"/docs/pages/guides/static-exports"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-build-error-build-step-did-not-complete-within-45-minutes"}],"requires":[{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths","distance":0.0752},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props","distance":0.135},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props","distance":0.163},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes","distance":0.2128},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-server-side-props","distance":0.2163}],"related":[{"site":"vercel-kb","path":"/kb/guide/troubleshooting-build-error-build-step-did-not-complete-within-45-minutes","via":"inbound"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/static-site-generation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props","title":"getStaticProps","summary":"Fetch data and generate static pages with `getStaticProps`. Learn more about this API for data fetching in Next.js.","outbound":[{"site":"nextjs","path":"/docs/pages/api-reference/components/link"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-app"},{"site":"nextjs","path":"/docs/pages/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/pages/guides/preview-mode"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/exportPathMap"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/redirects"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/rewrites"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/pages/api-reference/components/link"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/exportPathMap"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/headers"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/redirects"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/rewrites"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-initial-props"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-server-side-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/automatic-static-optimization"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/client-side-rendering"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/static-site-generation"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-app"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-document"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-error"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating"},{"site":"nextjs","path":"/docs/pages/guides/environment-variables"},{"site":"nextjs","path":"/docs/pages/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/pages/guides/internationalization"},{"site":"nextjs","path":"/docs/pages/guides/production-checklist"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting"},{"site":"nextjs","path":"/docs/pages/guides/static-exports"},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-writes"}],"requires":[{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props","distance":0.1121},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-server-side-props","distance":0.1224},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-paths","distance":0.135},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths","distance":0.1556},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/static-site-generation","distance":0.1826}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-writes","via":"inbound"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-server-side-props","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-paths","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/static-site-generation","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-server-side-props","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/automatic-static-optimization","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering","title":"Rendering","summary":"Learn the fundamentals of rendering in React and Next.js.","outbound":[{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/automatic-static-optimization"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/client-side-rendering"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/server-side-rendering"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/static-site-generation"}],"inbound":[{"site":"nextjs","path":"/docs/pages/building-your-application"}],"requires":[{"site":"nextjs","path":"/docs/pages/building-your-application"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/client-side-rendering","distance":0.1431},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/server-side-rendering","distance":0.1629},{"site":"nextjs","path":"/docs/pages/building-your-application","distance":0.1776},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/automatic-static-optimization","distance":0.1909},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching","distance":0.1945}],"related":[{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/public-static-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/rendering-philosophy","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/automatic-static-optimization","title":"Automatic Static Optimization","summary":"Next.js automatically optimizes your app to be static HTML whenever possible. Learn how it works here.","outbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/rewrites"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/server-side-rendering"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-app"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-document"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/dynamic-routes"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/exportPathMap"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/rewrites"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-pathname"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/exportPathMap"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/rewrites"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-params"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-search-params"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-app"},{"site":"nextjs","path":"/docs/pages/guides/internationalization"},{"site":"nextjs","path":"/docs/pages/guides/production-checklist"}],"requires":[{"site":"nextjs","path":"/docs/pages/building-your-application/rendering"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/building-your-application/rendering","distance":0.1909},{"site":"nextjs","path":"/docs/pages/guides/production-checklist","distance":0.2034},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props","distance":0.2037},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props","distance":0.2188},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","distance":0.22}],"related":[{"site":"nextjs","path":"/docs/pages/guides/production-checklist","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/static-exports","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-server-side-props","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/client-side-rendering","title":"Client-side Rendering (CSR)","summary":"Learn how to implement client-side rendering in the Pages Router.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-server-side-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/server-side-rendering"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/static-site-generation"},{"site":"nextjs","path":"/docs/pages/guides/incremental-static-regeneration"}],"inbound":[{"site":"nextjs","path":"/docs/pages/building-your-application/rendering"}],"requires":[{"site":"nextjs","path":"/docs/pages/building-your-application/rendering"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/building-your-application/rendering","distance":0.1431},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/server-side-rendering","distance":0.1583},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side","distance":0.2105},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","distance":0.2183},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching","distance":0.2185}],"related":[{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/public-static-pages","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/server-side-rendering","title":"Server-side Rendering (SSR)","summary":"Use Server-side Rendering to render pages on each request.","outbound":[{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-server-side-props"}],"inbound":[{"site":"nextjs","path":"/docs/pages/building-your-application/rendering"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/automatic-static-optimization"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/client-side-rendering"}],"requires":[{"site":"nextjs","path":"/docs/pages/building-your-application/rendering"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/client-side-rendering","distance":0.1583},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering","distance":0.1629},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-server-side-props","distance":0.1707},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/automatic-static-optimization","distance":0.2422},{"site":"swr","path":"/examples/ssr","distance":0.2496}],"related":[{"site":"swr","path":"/examples/ssr","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/client-side-rendering","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/automatic-static-optimization","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-server-side-props","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/static-site-generation","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/static-site-generation","title":"Static Site Generation (SSG)","summary":"Use Static Site Generation (SSG) to prerender pages at build time.","outbound":[{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-paths"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/dynamic-routes"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/headers"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/client-side-rendering"},{"site":"nextjs","path":"/docs/pages/guides/internationalization"}],"requires":[{"site":"nextjs","path":"/docs/pages/building-your-application/rendering"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props","distance":0.1826},{"site":"nextjs","path":"/docs/app/guides/public-static-pages","distance":0.1999},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering","distance":0.2045},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching","distance":0.216},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/automatic-static-optimization","distance":0.2258}],"related":[{"site":"nextjs","path":"/docs/app/guides/public-static-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/automatic-static-optimization","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/building-your-application/routing","title":"Routing","summary":"Learn the fundamentals of routing for front-end applications with the Pages Router.","outbound":[{"site":"nextjs","path":"/docs/pages/building-your-application/routing/api-routes"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-app"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-document"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-error"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/dynamic-routes"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts"}],"inbound":[{"site":"nextjs","path":"/docs/app/getting-started/project-structure"},{"site":"nextjs","path":"/docs/pages/building-your-application"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-error"},{"site":"nextjs","path":"/docs/pages/getting-started/project-structure"}],"requires":[{"site":"nextjs","path":"/docs/pages/building-your-application"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/getting-started","distance":0.0994},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","distance":0.1633},{"site":"nextjs","path":"/docs/pages/building-your-application","distance":0.1716},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating","distance":0.1743},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/dynamic-routes","distance":0.1745}],"related":[{"site":"nextjs","path":"/docs/pages/getting-started","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/routing-information","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/routing-with-next-routing","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/api-routes","title":"API Routes","summary":"Next.js supports API Routes, which allow you to build your API without leaving your Next.js app. Learn how it works here.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/pageExtensions"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/dynamic-routes"},{"site":"nextjs","path":"/docs/pages/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/pages/guides/static-exports"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/redirects"},{"site":"nextjs","path":"/docs/app/getting-started/route-handlers"},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/headers"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/redirects"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-server-side-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing"},{"site":"nextjs","path":"/docs/pages/guides/authentication"},{"site":"nextjs","path":"/docs/pages/guides/draft-mode"},{"site":"nextjs","path":"/docs/pages/guides/environment-variables"},{"site":"nextjs","path":"/docs/pages/guides/forms"},{"site":"nextjs","path":"/docs/pages/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/pages/guides/internationalization"},{"site":"nextjs","path":"/docs/pages/guides/preview-mode"},{"site":"nextjs","path":"/docs/pages/guides/production-checklist"},{"site":"nextjs","path":"/docs/pages/guides/redirecting"},{"site":"nextjs","path":"/docs/pages/guides/static-exports"},{"site":"vercel-docs","path":"/docs/botid/advanced-configuration"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference"}],"requires":[{"site":"nextjs","path":"/docs/pages/building-your-application/routing"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route","distance":0.1723},{"site":"nextjs","path":"/docs/app/getting-started/route-handlers","distance":0.1789},{"site":"nextjs","path":"/docs/pages/guides/forms","distance":0.1847},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.2011},{"site":"nextjs","path":"/docs/pages/guides/redirecting","distance":0.2019}],"related":[{"site":"vercel-docs","path":"/docs/botid/advanced-configuration","via":"inbound"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference","via":"inbound"},{"site":"nextjs","path":"/docs/app/getting-started/route-handlers","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/forms","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/redirecting","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-app","title":"Custom App","summary":"Control page initialization and add a layout that persists for all pages by overriding the default App component used by Next.js.","outbound":[{"site":"nextjs","path":"/docs/app/getting-started/css"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-initial-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-server-side-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/automatic-static-optimization"}],"inbound":[{"site":"nextjs","path":"/docs/architecture/supported-browsers"},{"site":"nextjs","path":"/docs/pages/api-reference/components/font"},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/automatic-static-optimization"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts"},{"site":"nextjs","path":"/docs/pages/getting-started/css"},{"site":"nextjs","path":"/docs/pages/getting-started/fonts"},{"site":"nextjs","path":"/docs/pages/getting-started/installation"},{"site":"nextjs","path":"/docs/pages/getting-started/project-structure"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-9"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"}],"requires":[{"site":"nextjs","path":"/docs/pages/building-your-application/routing"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","distance":0.1794},{"site":"nextjs","path":"/docs/pages/getting-started/installation","distance":0.238},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.2398},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-document","distance":0.2473},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-initial-props","distance":0.2525}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"inbound"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/installation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-document","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/installation","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-document","title":"Custom Document","summary":"Extend the default document markup added by Next.js.","outbound":[{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/pages/api-reference/components/head"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-initial-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-server-side-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts"}],"inbound":[{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/automatic-static-optimization"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing"},{"site":"nextjs","path":"/docs/pages/getting-started/installation"},{"site":"nextjs","path":"/docs/pages/getting-started/project-structure"},{"site":"nextjs","path":"/docs/pages/guides/scripts"}],"requires":[{"site":"nextjs","path":"/docs/pages/building-your-application/routing"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-app","distance":0.2473},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","distance":0.2629},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-9","distance":0.2814},{"site":"nextjs","path":"/docs/pages/getting-started/installation","distance":0.2825},{"site":"nextjs","path":"/docs/community/contribution-guide","distance":0.2999}],"related":[{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-app","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-9","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/installation","via":"neighbor"},{"site":"nextjs","path":"/docs/community/contribution-guide","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-error","title":"Custom Errors","summary":"Override and extend the built-in Error page to handle custom errors.","outbound":[{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-server-side-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing"},{"site":"nextjs","path":"/docs/pages/guides/custom-server"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-server-side-props"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring/error-handling"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-server-side-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing"},{"site":"nextjs","path":"/docs/pages/getting-started/project-structure"},{"site":"nextjs","path":"/docs/pages/guides/production-checklist"}],"requires":[{"site":"nextjs","path":"/docs/pages/building-your-application/routing"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/building-your-application/configuring/error-handling","distance":0.1735},{"site":"nextjs","path":"/docs/app/getting-started/error-handling","distance":0.2091},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/error","distance":0.2344},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring","distance":0.2651},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","distance":0.2681}],"related":[{"site":"vercel-docs","path":"/docs/custom-error-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring/error-handling","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/error-handling","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/error","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/dynamic-routes","title":"Dynamic Routes","summary":"Dynamic Routes are pages that allow you to add custom params to your URLs. Start creating Dynamic Routes and learn more here.","outbound":[{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-paths"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/components/link"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-server-side-props"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-params"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-paths"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/automatic-static-optimization"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/static-site-generation"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/api-routes"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts"},{"site":"nextjs","path":"/docs/pages/guides/internationalization"}],"requires":[{"site":"nextjs","path":"/docs/pages/building-your-application/routing"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.1725},{"site":"nextjs","path":"/docs/pages/building-your-application/routing","distance":0.1745},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating","distance":0.1863},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes","distance":0.2},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","distance":0.2226}],"related":[{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating","title":"Linking and Navigating","summary":"Learn how navigation works in Next.js, and how to use the Link Component and `useRouter` hook.","outbound":[{"site":"nextjs","path":"/docs/pages/api-reference/components/link"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-initial-props"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-server-side-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/dynamic-routes"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/dynamic-routes"},{"site":"nextjs","path":"/docs/pages/guides/production-checklist"}],"requires":[{"site":"nextjs","path":"/docs/pages/building-your-application/routing"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.1291},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.1384},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","distance":0.1563},{"site":"nextjs","path":"/docs/pages/building-your-application/routing","distance":0.1743},{"site":"nextjs","path":"/docs/pages/api-reference/components/link","distance":0.1794}],"related":[{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-router","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/prefetching","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","title":"Pages and Layouts","summary":"Create your first page and shared layout with the Pages Router.","outbound":[{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-app"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/dynamic-routes"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/pages/api-reference/components/font"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-document"},{"site":"nextjs","path":"/docs/pages/getting-started/project-structure"},{"site":"nextjs","path":"/docs/pages/guides/draft-mode"},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/pages/guides/preview-mode"},{"site":"nextjs","path":"/docs/pages/guides/production-checklist"}],"requires":[{"site":"nextjs","path":"/docs/pages/building-your-application/routing"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.1011},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating","distance":0.1563},{"site":"nextjs","path":"/docs/pages/building-your-application/routing","distance":0.1633},{"site":"nextjs","path":"/docs/pages/getting-started","distance":0.1665},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-app","distance":0.1794}],"related":[{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/getting-started","title":"Getting Started","summary":"Learn how to create full-stack web applications with Next.js with the Pages Router.","outbound":[{"site":"nextjs","path":"/docs/pages/getting-started/css"},{"site":"nextjs","path":"/docs/pages/getting-started/deploying"},{"site":"nextjs","path":"/docs/pages/getting-started/fonts"},{"site":"nextjs","path":"/docs/pages/getting-started/images"},{"site":"nextjs","path":"/docs/pages/getting-started/installation"},{"site":"nextjs","path":"/docs/pages/getting-started/project-structure"}],"inbound":[],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/pages/building-your-application/routing","distance":0.0994},{"site":"nextjs","path":"/docs/app/getting-started","distance":0.1269},{"site":"nextjs","path":"/docs/pages/building-your-application","distance":0.1444},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","distance":0.1665},{"site":"nextjs","path":"/docs/pages/api-reference","distance":0.1683}],"related":[{"site":"nextjs","path":"/docs/pages/building-your-application/routing","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/getting-started/css","title":"CSS","summary":"Learn about the different ways to add CSS to your application, including CSS Modules, Global CSS, Tailwind CSS, and more.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cssChunking"},{"site":"nextjs","path":"/docs/app/guides/css-in-js"},{"site":"nextjs","path":"/docs/app/guides/sass"},{"site":"nextjs","path":"/docs/app/guides/tailwind-v3-css"},{"site":"nextjs","path":"/docs/architecture/fast-refresh"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-app"},{"site":"nextjs","path":"/docs/pages/guides/css-in-js"},{"site":"nextjs","path":"/docs/pages/guides/sass"},{"site":"nextjs","path":"/docs/pages/guides/tailwind-v3-css"}],"inbound":[{"site":"nextjs","path":"/docs/pages/getting-started"}],"requires":[{"site":"nextjs","path":"/docs/pages/getting-started"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/css","distance":0.0238},{"site":"nextjs","path":"/docs/pages/guides/tailwind-v3-css","distance":0.1193},{"site":"nextjs","path":"/docs/app/guides/tailwind-v3-css","distance":0.14},{"site":"nextjs","path":"/docs/pages/guides/css-in-js","distance":0.1645},{"site":"nextjs","path":"/docs/pages/guides","distance":0.1667}],"related":[{"site":"nextjs","path":"/docs/app/getting-started/css","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/post-css","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/installation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/getting-started/deploying","title":"Deploying","summary":"Learn how to deploy your Next.js application.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/testing-adapters"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath"},{"site":"nextjs","path":"/docs/app/guides/building"},{"site":"nextjs","path":"/docs/app/guides/custom-server"},{"site":"nextjs","path":"/docs/app/guides/deploying-to-platforms"},{"site":"nextjs","path":"/docs/app/guides/local-development"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/app/guides/single-page-applications"},{"site":"nextjs","path":"/docs/app/guides/static-exports"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/assetPrefix"},{"site":"nextjs","path":"/docs/pages/getting-started"}],"requires":[{"site":"nextjs","path":"/docs/pages/getting-started"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/deploying","distance":0.0043},{"site":"nextjs","path":"/docs/app/guides/deploying-to-platforms","distance":0.1324},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","distance":0.1939},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.1992},{"site":"nextjs","path":"/docs/app/guides/static-exports","distance":0.2014}],"related":[{"site":"nextjs","path":"/docs/app/getting-started/deploying","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/installation","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/getting-started/fonts","title":"Fonts","summary":"Learn how to use fonts in Next.js","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/font"},{"site":"nextjs","path":"/docs/pages/api-reference/components/font"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/public-folder"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-app"}],"inbound":[{"site":"nextjs","path":"/docs/pages/getting-started"}],"requires":[{"site":"nextjs","path":"/docs/pages/getting-started"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/fonts","distance":0.049},{"site":"nextjs","path":"/docs/pages/api-reference/components/font","distance":0.1837},{"site":"nextjs","path":"/docs/app/api-reference/components/font","distance":0.2},{"site":"nextjs","path":"/docs/pages/getting-started/css","distance":0.2307},{"site":"nextjs","path":"/docs/app/getting-started/css","distance":0.241}],"related":[{"site":"nextjs","path":"/docs/app/getting-started/fonts","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/css","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/css","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/internationalization","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/getting-started/images","title":"Images","summary":"Optimize your images with the built-in `next/image` component.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/image"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/public-folder"},{"site":"nextjs","path":"/docs/pages/api-reference/components/image"}],"inbound":[{"site":"nextjs","path":"/docs/pages/getting-started"}],"requires":[{"site":"nextjs","path":"/docs/pages/getting-started"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/images","distance":0.0057},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/images","distance":0.1944},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/images","distance":0.2024},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image","distance":0.2163},{"site":"nextjs","path":"/docs/app/api-reference/components/image","distance":0.2188}],"related":[{"site":"nextjs","path":"/docs/app/getting-started/images","via":"neighbor"},{"site":"vercel-docs","path":"/docs/image-optimization/quickstart","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/images","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/images","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/components/image-legacy","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/getting-started/installation","title":"Installation","summary":"How to create a new Next.js application with `create-next-app`. Set up TypeScript, ESLint,and configure your `next.config.js` file.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/cli/create-next-app"},{"site":"nextjs","path":"/docs/app/api-reference/config/eslint"},{"site":"nextjs","path":"/docs/app/api-reference/config/typescript"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/public-folder"},{"site":"nextjs","path":"/docs/app/api-reference/turbopack"},{"site":"nextjs","path":"/docs/app/getting-started/upgrading"},{"site":"nextjs","path":"/docs/app/guides/ai-agents"},{"site":"nextjs","path":"/docs/architecture/supported-browsers"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-app"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-document"}],"inbound":[{"site":"nextjs","path":"/docs/pages/getting-started"}],"requires":[{"site":"nextjs","path":"/docs/pages/getting-started"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/installation","distance":0.0189},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","distance":0.1632},{"site":"nextjs","path":"/docs/app/getting-started","distance":0.1636},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.1646},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-9","distance":0.17}],"related":[{"site":"nextjs","path":"/docs/app/getting-started/installation","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-9","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/getting-started/project-structure","title":"Project Structure","summary":"Learn about the folder and file conventions in a Next.js project, and how to organize your project.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/eslint"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/config/typescript"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/public-folder"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/src-folder"},{"site":"nextjs","path":"/docs/app/getting-started/installation"},{"site":"nextjs","path":"/docs/app/guides/environment-variables"},{"site":"nextjs","path":"/docs/app/guides/instrumentation"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-app"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-document"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-error"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts"}],"inbound":[{"site":"nextjs","path":"/docs/pages/getting-started"}],"requires":[{"site":"nextjs","path":"/docs/pages/getting-started"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions","distance":0.1565},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/src-folder","distance":0.1596},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/src-folder","distance":0.1858},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions","distance":0.1873},{"site":"nextjs","path":"/docs/pages/guides","distance":0.2055}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/src-folder","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides","title":"Guides","summary":"Learn how to implement common UI patterns and use cases using Next.js","outbound":[{"site":"nextjs","path":"/docs/pages/guides/analytics"},{"site":"nextjs","path":"/docs/pages/guides/authentication"},{"site":"nextjs","path":"/docs/pages/guides/babel"},{"site":"nextjs","path":"/docs/pages/guides/ci-build-caching"},{"site":"nextjs","path":"/docs/pages/guides/content-security-policy"},{"site":"nextjs","path":"/docs/pages/guides/css-in-js"},{"site":"nextjs","path":"/docs/pages/guides/custom-server"},{"site":"nextjs","path":"/docs/pages/guides/debugging"},{"site":"nextjs","path":"/docs/pages/guides/draft-mode"},{"site":"nextjs","path":"/docs/pages/guides/environment-variables"},{"site":"nextjs","path":"/docs/pages/guides/forms"},{"site":"nextjs","path":"/docs/pages/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/pages/guides/instrumentation"},{"site":"nextjs","path":"/docs/pages/guides/internationalization"},{"site":"nextjs","path":"/docs/pages/guides/lazy-loading"},{"site":"nextjs","path":"/docs/pages/guides/mdx"},{"site":"nextjs","path":"/docs/pages/guides/migrating"},{"site":"nextjs","path":"/docs/pages/guides/multi-zones"},{"site":"nextjs","path":"/docs/pages/guides/open-telemetry"},{"site":"nextjs","path":"/docs/pages/guides/package-bundling"},{"site":"nextjs","path":"/docs/pages/guides/post-css"},{"site":"nextjs","path":"/docs/pages/guides/preview-mode"},{"site":"nextjs","path":"/docs/pages/guides/production-checklist"},{"site":"nextjs","path":"/docs/pages/guides/redirecting"},{"site":"nextjs","path":"/docs/pages/guides/sass"},{"site":"nextjs","path":"/docs/pages/guides/scripts"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting"},{"site":"nextjs","path":"/docs/pages/guides/static-exports"},{"site":"nextjs","path":"/docs/pages/guides/tailwind-v3-css"},{"site":"nextjs","path":"/docs/pages/guides/testing"},{"site":"nextjs","path":"/docs/pages/guides/third-party-libraries"},{"site":"nextjs","path":"/docs/pages/guides/upgrading"}],"inbound":[],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/app/guides","distance":0.0541},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.156},{"site":"nextjs","path":"/docs/app/guides/production-checklist","distance":0.1603},{"site":"nextjs","path":"/docs/pages/building-your-application","distance":0.1609},{"site":"nextjs","path":"/docs/pages/guides/production-checklist","distance":0.162}],"related":[{"site":"nextjs","path":"/docs/app/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/production-checklist","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/analytics","title":"Analytics","summary":"Measure and track page performance using Next.js","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions/use-report-web-vitals"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-report-web-vitals"}],"inbound":[{"site":"nextjs","path":"/docs/pages/guides"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/analytics","distance":0.0378},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-report-web-vitals","distance":0.0691},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-report-web-vitals","distance":0.1033},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/webVitalsAttribution","distance":0.2399},{"site":"nextjs","path":"/docs/app/guides/production-checklist","distance":0.2419}],"related":[{"site":"nextjs","path":"/docs/app/guides/analytics","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/quickstart","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/webVitalsAttribution","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/production-checklist","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/webVitalsAttribution","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/third-party-libraries","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/authentication","title":"Authentication","summary":"Learn how to implement authentication in Next.js, covering best practices, securing routes, authorization techniques, and session management.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/api-routes"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/pages/guides"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components","distance":0.1662},{"site":"nextjs","path":"/docs/app/guides/authentication","distance":0.2248},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","distance":0.2431},{"site":"nextjs","path":"/docs/app/guides","distance":0.2434},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.2449}],"related":[{"site":"nextjs","path":"/docs/app/guides/authentication","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/forms","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/babel","title":"Babel","summary":"Extend the babel preset added by Next.js with your own configs.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/eslint"},{"site":"nextjs","path":"/docs/architecture/supported-browsers"},{"site":"nextjs","path":"/docs/pages/api-reference/config/eslint"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/webpack"},{"site":"nextjs","path":"/docs/pages/guides"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-12"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/webpack","distance":0.2298},{"site":"nextjs","path":"/docs/pages/guides/post-css","distance":0.2399},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/webpack","distance":0.2468},{"site":"nextjs","path":"/docs/pages/api-reference/config","distance":0.2487},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2489}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/webpack","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/post-css","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/webpack","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/ci-build-caching","title":"CI Build Caching","summary":"Learn how to configure CI to cache Next.js builds","outbound":[{"site":"vercel-docs","path":"/docs/monorepos/turborepo"}],"inbound":[{"site":"nextjs","path":"/docs/pages/guides"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/ci-build-caching","distance":0.0039},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","distance":0.2578},{"site":"nextjs","path":"/docs/app/guides/self-hosting","distance":0.2614},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheLife","distance":0.2638},{"site":"nextjs","path":"/docs/app/guides/cdn-caching","distance":0.2706}],"related":[{"site":"nextjs","path":"/docs/app/guides/ci-build-caching","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/self-hosting","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheLife","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/cdn-caching","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/content-security-policy","title":"Content Security Policy","summary":"Learn how to set a Content Security Policy (CSP) for your Next.js application.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-server-side-props"}],"inbound":[{"site":"nextjs","path":"/docs/pages/guides"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/content-security-policy","distance":0.0212},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/headers","distance":0.2455},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/headers","distance":0.2707},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2721},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","distance":0.279}],"related":[{"site":"nextjs","path":"/docs/app/guides/content-security-policy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security/security-headers","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/headers","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/headers","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/cdn-caching","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/css-in-js","title":"CSS-in-JS","summary":"Use CSS-in-JS libraries with Next.js","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/pages/getting-started/css"},{"site":"nextjs","path":"/docs/pages/guides"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/css-in-js","distance":0.1327},{"site":"nextjs","path":"/docs/pages/getting-started/css","distance":0.1645},{"site":"nextjs","path":"/docs/app/getting-started/css","distance":0.1788},{"site":"nextjs","path":"/docs/pages/guides","distance":0.2058},{"site":"nextjs","path":"/docs/pages/guides/sass","distance":0.2184}],"related":[{"site":"nextjs","path":"/docs/app/guides/css-in-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/css","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/css","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/sass","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/post-css","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/custom-server","title":"Custom Server","summary":"Start a Next.js app programmatically using a custom server.","outbound":[{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-router"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-error"},{"site":"nextjs","path":"/docs/pages/guides"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/custom-server","distance":0.0303},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","distance":0.2304},{"site":"nextjs","path":"/docs/pages/getting-started/installation","distance":0.2313},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2487},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2523}],"related":[{"site":"nextjs","path":"/docs/app/guides/custom-server","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/installation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/debugging","title":"Debugging","summary":"Learn how to debug your Next.js application with VS Code or Chrome DevTools.","outbound":[{"site":"nextjs","path":"/docs/pages/api-reference/cli/next"}],"inbound":[{"site":"nextjs","path":"/docs/pages/guides"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/debugging","distance":0.0036},{"site":"nextjs","path":"/docs/app/getting-started/installation","distance":0.2514},{"site":"nextjs","path":"/docs/app/guides/local-development","distance":0.2551},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2554},{"site":"nextjs","path":"/docs/pages/getting-started/installation","distance":0.2562}],"related":[{"site":"nextjs","path":"/docs/app/guides/debugging","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/installation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/local-development","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/installation","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/draft-mode","title":"Draft Mode","summary":"Next.js has draft mode to toggle between static and dynamic pages. You can learn how it works with Pages Router.","outbound":[{"site":"nextjs","path":"/docs/pages/api-reference/components/link"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-server-side-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/api-routes"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts"},{"site":"nextjs","path":"/docs/pages/guides/incremental-static-regeneration"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-server-side-props"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props"},{"site":"nextjs","path":"/docs/pages/guides"},{"site":"nextjs","path":"/docs/pages/guides/preview-mode"},{"site":"nextjs","path":"/docs/pages/guides/static-exports"},{"site":"vercel-docs","path":"/docs/draft-mode"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/draft-mode","distance":0.0852},{"site":"nextjs","path":"/docs/app/api-reference/functions/draft-mode","distance":0.1343},{"site":"nextjs","path":"/docs/pages/guides/preview-mode","distance":0.1673},{"site":"vercel-docs","path":"/docs/draft-mode","distance":0.1751},{"site":"nextjs","path":"/docs/app/guides/public-static-pages","distance":0.3044}],"related":[{"site":"vercel-docs","path":"/docs/draft-mode","via":"inbound"},{"site":"nextjs","path":"/docs/app/guides/draft-mode","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/draft-mode","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/preview-mode","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/public-static-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/environment-variables","title":"Environment Variables","summary":"Learn to add and access environment variables in your Next.js application.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/src-folder"},{"site":"nextjs","path":"/docs/app/guides/instrumentation"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/api-routes"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/env"},{"site":"nextjs","path":"/docs/pages/guides"},{"site":"nextjs","path":"/docs/pages/guides/forms"},{"site":"vercel-docs","path":"/docs/vercel-blob/client-upload"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/environment-variables","distance":0.0042},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/env","distance":0.1366},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/env","distance":0.1408},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2342},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2425}],"related":[{"site":"vercel-docs","path":"/docs/vercel-blob/client-upload","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","via":"inbound"},{"site":"nextjs","path":"/docs/app/guides/environment-variables","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/env","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/env","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/forms","title":"Forms","summary":"Learn how to handle form submissions and data mutations with Next.js.","outbound":[{"site":"nextjs","path":"/docs/pages/building-your-application/routing/api-routes"},{"site":"nextjs","path":"/docs/pages/guides/environment-variables"}],"inbound":[{"site":"nextjs","path":"/docs/pages/guides"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/forms","distance":0.1765},{"site":"nextjs","path":"/docs/app/api-reference/components/form","distance":0.1809},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/api-routes","distance":0.1847},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data","distance":0.2049},{"site":"nextjs","path":"/docs/app/getting-started/error-handling","distance":0.2167}],"related":[{"site":"nextjs","path":"/docs/app/guides/forms","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/components/form","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/error-handling","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/incremental-static-regeneration","title":"ISR","summary":"Learn how to create or update static pages at runtime with Incremental Static Regeneration.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/logging"},{"site":"nextjs","path":"/docs/app/getting-started/deploying"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/app/guides/static-exports"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/api-routes"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/assetPrefix"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-server-side-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/client-side-rendering"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/api-routes"},{"site":"nextjs","path":"/docs/pages/guides"},{"site":"nextjs","path":"/docs/pages/guides/draft-mode"},{"site":"nextjs","path":"/docs/pages/guides/preview-mode"},{"site":"nextjs","path":"/docs/pages/guides/production-checklist"},{"site":"nextjs","path":"/docs/pages/guides/static-exports"},{"site":"vercel-kb","path":"/kb/guide/how-to-move-to-on-demand-revalidation"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration","distance":0.0185},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","distance":0.1661},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/quickstart","distance":0.1973},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props","distance":0.215},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","distance":0.2163}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-move-to-on-demand-revalidation","via":"inbound"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/public-static-pages","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/instrumentation","title":"Instrumentation","summary":"Learn how to use instrumentation to run code at server startup in your Next.js app","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/pageExtensions"},{"site":"nextjs","path":"/docs/app/api-reference/edge"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/src-folder"},{"site":"vercel-docs","path":"/docs/tracing/instrumentation"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/pageExtensions"},{"site":"nextjs","path":"/docs/pages/guides"},{"site":"nextjs","path":"/docs/pages/guides/open-telemetry"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/instrumentation","distance":0.0103},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation","distance":0.1306},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/instrumentation","distance":0.1507},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation-client","distance":0.1685},{"site":"nextjs","path":"/docs/app/guides/open-telemetry","distance":0.2256}],"related":[{"site":"nextjs","path":"/docs/app/guides/instrumentation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/instrumentation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation-client","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/open-telemetry","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/internationalization","title":"Internationalization","summary":"Next.js has built-in support for internationalized routing and language detection. Learn more here.","outbound":[{"site":"nextjs","path":"/docs/pages/api-reference/components/head"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/public-folder"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-paths"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/automatic-static-optimization"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/static-site-generation"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/api-routes"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/dynamic-routes"},{"site":"nextjs","path":"/docs/pages/guides/static-exports"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/headers"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/redirects"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/rewrites"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-request"},{"site":"nextjs","path":"/docs/pages/guides"},{"site":"nextjs","path":"/docs/pages/guides/static-exports"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/internationalization","distance":0.1278},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.1986},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2103},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2106},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.2155}],"related":[{"site":"nextjs","path":"/docs/app/guides/internationalization","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/lazy-loading","title":"Lazy Loading","summary":"Lazy load imported libraries and React Components to improve your application's overall loading performance.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/pages/guides"},{"site":"nextjs","path":"/docs/pages/guides/production-checklist"},{"site":"nextjs","path":"/docs/pages/guides/static-exports"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/lazy-loading","distance":0.0721},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.1798},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-9","distance":0.2111},{"site":"nextjs","path":"/docs/app/guides/public-static-pages","distance":0.2235},{"site":"nextjs","path":"/docs/app/guides/prefetching","distance":0.2263}],"related":[{"site":"nextjs","path":"/docs/app/guides/lazy-loading","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-9","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/public-static-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/prefetching","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/mdx","title":"MDX","summary":"Learn how to configure MDX to write JSX in your markdown files.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/mdx-components"},{"site":"nextjs","path":"/docs/app/api-reference/turbopack"}],"inbound":[{"site":"nextjs","path":"/docs/pages/guides"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/mdx","distance":0.0029},{"site":"nextjs","path":"/docs/community/contribution-guide","distance":0.2057},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/mdxRs","distance":0.2194},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/mdx-components","distance":0.2233},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2284}],"related":[{"site":"nextjs","path":"/docs/app/guides/mdx","via":"neighbor"},{"site":"nextjs","path":"/docs/community/contribution-guide","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/mdxRs","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-9","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/migrating","title":"Migrating","summary":"Learn how to migrate from popular frameworks to Next.js","outbound":[{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-vite"}],"inbound":[{"site":"nextjs","path":"/docs/pages/guides"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/migrating","distance":0.0084},{"site":"nextjs","path":"/docs/pages/guides/upgrading","distance":0.1756},{"site":"nextjs","path":"/docs/pages/getting-started","distance":0.1956},{"site":"nextjs","path":"/docs/pages/guides","distance":0.2028},{"site":"nextjs","path":"/docs/pages/building-your-application","distance":0.2054}],"related":[{"site":"nextjs","path":"/docs/app/guides/migrating","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration","title":"App Router","summary":"Learn how to upgrade your existing Next.js application from the Pages Router to the App Router.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/font"},{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/components/script"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/dynamicParams"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies"},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/headers"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-pathname"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-search-params"},{"site":"nextjs","path":"/docs/app/getting-started/css"},{"site":"nextjs","path":"/docs/app/getting-started/error-handling"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/css-in-js"},{"site":"nextjs","path":"/docs/app/guides/internationalization"},{"site":"nextjs","path":"/docs/app/guides/sass"},{"site":"nextjs","path":"/docs/app/guides/single-page-applications"},{"site":"nextjs","path":"/docs/app/guides/upgrading/codemods"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts"}],"inbound":[{"site":"nextjs","path":"/docs/pages/guides/migrating"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides/migrating"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration","distance":0.002},{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app","distance":0.2059},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app","distance":0.2148},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-router","distance":0.2337},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.2368}],"related":[{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-vite","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-vite","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app","title":"Create React App","summary":"Learn how to migrate your existing React application from Create React App to Next.js.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/font"},{"site":"nextjs","path":"/docs/app/api-reference/components/image"},{"site":"nextjs","path":"/docs/app/api-reference/config/eslint"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/basePath"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/rewrites"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopack"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/webpack"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata"},{"site":"nextjs","path":"/docs/app/getting-started/css"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/app/guides/environment-variables"},{"site":"nextjs","path":"/docs/app/guides/internationalization"},{"site":"nextjs","path":"/docs/app/guides/progressive-web-apps"},{"site":"nextjs","path":"/docs/app/guides/scripts"},{"site":"nextjs","path":"/docs/app/guides/single-page-applications"},{"site":"nextjs","path":"/docs/app/guides/testing"}],"inbound":[{"site":"nextjs","path":"/docs/pages/guides/migrating"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides/migrating"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app","distance":0.006},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-vite","distance":0.1915},{"site":"nextjs","path":"/docs/app/guides/migrating/from-vite","distance":0.1927},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration","distance":0.2147},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration","distance":0.2148}],"related":[{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-vite","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-vite","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-vite","title":"Vite","summary":"Learn how to migrate your existing React application from Vite to Next.js.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/font"},{"site":"nextjs","path":"/docs/app/api-reference/components/image"},{"site":"nextjs","path":"/docs/app/api-reference/config/eslint"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/basePath"},{"site":"nextjs","path":"/docs/app/api-reference/config/typescript"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params"},{"site":"nextjs","path":"/docs/app/api-reference/turbopack"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/app/guides/environment-variables"},{"site":"nextjs","path":"/docs/app/guides/internationalization"},{"site":"nextjs","path":"/docs/app/guides/scripts"}],"inbound":[{"site":"nextjs","path":"/docs/pages/guides/migrating"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides/migrating"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/migrating/from-vite","distance":0.0056},{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app","distance":0.1865},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app","distance":0.1915},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration","distance":0.2375},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration","distance":0.2383}],"related":[{"site":"nextjs","path":"/docs/app/guides/migrating/from-vite","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/multi-zones","title":"Multi-Zones","summary":"Learn how to build micro-frontends using Next.js Multi-Zones to deploy multiple Next.js apps under a single domain.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/assetPrefix"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/rewrites"}],"inbound":[{"site":"nextjs","path":"/docs/pages/guides"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/multi-zones","distance":0.0235},{"site":"nextjs","path":"/docs/pages/guides","distance":0.2186},{"site":"nextjs","path":"/docs/app/guides","distance":0.2285},{"site":"nextjs","path":"/docs/pages/building-your-application","distance":0.256},{"site":"nextjs","path":"/docs/pages/guides/internationalization","distance":0.2573}],"related":[{"site":"nextjs","path":"/docs/app/guides/multi-zones","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/internationalization","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/open-telemetry","title":"OpenTelemetry","summary":"Learn how to instrument your Next.js app with OpenTelemetry.","outbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/pageExtensions"},{"site":"nextjs","path":"/docs/pages/guides/instrumentation"},{"site":"vercel-docs","path":"/docs/tracing/instrumentation"}],"inbound":[{"site":"nextjs","path":"/docs/pages/guides"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/open-telemetry","distance":0.0025},{"site":"vercel-docs","path":"/docs/tracing/instrumentation","distance":0.1903},{"site":"nextjs","path":"/docs/pages/guides/instrumentation","distance":0.2385},{"site":"nextjs","path":"/docs/app/guides/instrumentation","distance":0.2469},{"site":"vercel-docs","path":"/docs/tracing","distance":0.2668}],"related":[{"site":"nextjs","path":"/docs/app/guides/open-telemetry","via":"neighbor"},{"site":"vercel-docs","path":"/docs/tracing","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/arize-ax","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/signoz","via":"neighbor"},{"site":"eve","path":"/docs/guides/instrumentation","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/laminar","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/instrumentation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/package-bundling","title":"Package Bundling","summary":"Learn how to optimize your application's server and client bundles.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/optimizePackageImports"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/transpilePackages"},{"site":"nextjs","path":"/docs/app/guides/lazy-loading"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/bundlePagesRouterDependencies"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/serverExternalPackages"},{"site":"nextjs","path":"/docs/pages/guides/production-checklist"}],"inbound":[{"site":"nextjs","path":"/docs/pages/guides"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/package-bundling","distance":0.0126},{"site":"nextjs","path":"/docs/app/guides/production-checklist","distance":0.1287},{"site":"nextjs","path":"/docs/pages/guides/production-checklist","distance":0.1465},{"site":"nextjs","path":"/docs/app/guides/local-development","distance":0.174},{"site":"nextjs","path":"/docs/app/guides/memory-usage","distance":0.1866}],"related":[{"site":"nextjs","path":"/docs/app/guides/package-bundling","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/production-checklist","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/local-development","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/memory-usage","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/post-css","title":"PostCSS","summary":"Extend the PostCSS config and plugins added by Next.js with your own.","outbound":[{"site":"nextjs","path":"/docs/app/getting-started/css"}],"inbound":[{"site":"nextjs","path":"/docs/pages/guides"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/getting-started/css","distance":0.1939},{"site":"nextjs","path":"/docs/app/getting-started/css","distance":0.2007},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.214},{"site":"nextjs","path":"/docs/pages/guides/css-in-js","distance":0.2228},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2259}],"related":[{"site":"nextjs","path":"/docs/pages/getting-started/css","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/css-in-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/babel","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/preview-mode","title":"Preview Mode","summary":"Next.js has the preview mode for statically generated pages. You can learn how it works here.","outbound":[{"site":"nextjs","path":"/docs/pages/api-reference/components/link"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/api-routes"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts"},{"site":"nextjs","path":"/docs/pages/guides/draft-mode"},{"site":"nextjs","path":"/docs/pages/guides/incremental-static-regeneration"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-server-side-props"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props"},{"site":"nextjs","path":"/docs/pages/guides"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/draft-mode","distance":0.1673},{"site":"nextjs","path":"/docs/app/guides/draft-mode","distance":0.1877},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props","distance":0.2366},{"site":"v0","path":"/docs/api/v2/guides/accessing-previews","distance":0.2444},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props","distance":0.265}],"related":[{"site":"v0","path":"/docs/api/v2/guides/accessing-previews","via":"neighbor"},{"site":"vercel-docs","path":"/docs/draft-mode","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/draft-mode","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/static-site-generation","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/production-checklist","title":"Production","summary":"Recommendations to ensure the best performance and user experience before taking your Next.js application to production.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/font"},{"site":"nextjs","path":"/docs/app/api-reference/components/image"},{"site":"nextjs","path":"/docs/app/api-reference/config/typescript"},{"site":"nextjs","path":"/docs/app/guides/content-security-policy"},{"site":"nextjs","path":"/docs/app/guides/environment-variables"},{"site":"nextjs","path":"/docs/app/guides/package-bundling"},{"site":"nextjs","path":"/docs/app/guides/scripts"},{"site":"nextjs","path":"/docs/architecture/accessibility"},{"site":"nextjs","path":"/docs/pages/api-reference/components/head"},{"site":"nextjs","path":"/docs/pages/api-reference/components/link"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/public-folder"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-server-side-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/automatic-static-optimization"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/api-routes"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-error"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts"},{"site":"nextjs","path":"/docs/pages/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/pages/guides/lazy-loading"}],"inbound":[{"site":"nextjs","path":"/docs/pages/guides"},{"site":"nextjs","path":"/docs/pages/guides/package-bundling"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/production-checklist","distance":0.0236},{"site":"nextjs","path":"/docs/pages/guides/package-bundling","distance":0.1465},{"site":"nextjs","path":"/docs/pages/guides","distance":0.162},{"site":"nextjs","path":"/docs/app/guides","distance":0.1646},{"site":"nextjs","path":"/docs/app/guides/package-bundling","distance":0.1835}],"related":[{"site":"nextjs","path":"/docs/app/guides/production-checklist","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/package-bundling","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/local-development","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/redirecting","title":"Redirecting","summary":"Learn the different ways to handle redirects in Next.js.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/redirects"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-router"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/api-routes"},{"site":"vercel-docs","path":"/docs/global-config/get-started"}],"inbound":[{"site":"nextjs","path":"/docs/pages/guides"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/redirecting","distance":0.0351},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/redirects","distance":0.146},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/redirects","distance":0.1489},{"site":"nextjs","path":"/docs/app/api-reference/functions/redirect","distance":0.1886},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/api-routes","distance":0.2019}],"related":[{"site":"nextjs","path":"/docs/app/guides/redirecting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-increase-the-limit-of-redirects-or-use-dynamic-redirects-on-vercel","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/redirects","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/redirect","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-response","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-response","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/sass","title":"Sass","summary":"Learn how to use Sass in your Next.js application.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/webpack"},{"site":"nextjs","path":"/docs/pages/getting-started/css"},{"site":"nextjs","path":"/docs/pages/guides"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/sass","distance":0.0113},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/sassOptions","distance":0.1748},{"site":"nextjs","path":"/docs/pages/getting-started/css","distance":0.1966},{"site":"nextjs","path":"/docs/app/getting-started/css","distance":0.2071},{"site":"nextjs","path":"/docs/pages/guides/css-in-js","distance":0.2184}],"related":[{"site":"nextjs","path":"/docs/app/guides/sass","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/sassOptions","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/css","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/css","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/css-in-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/scripts","title":"Scripts","summary":"Optimize 3rd party scripts with the built-in Script component.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/script"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/pages/api-reference/components/script"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/assetPrefix"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-document"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/components/head"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/crossOrigin"},{"site":"nextjs","path":"/docs/pages/guides"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/scripts","distance":0.027},{"site":"nextjs","path":"/docs/pages/api-reference/components/script","distance":0.1091},{"site":"nextjs","path":"/docs/app/api-reference/components/script","distance":0.1183},{"site":"nextjs","path":"/docs/pages/guides/third-party-libraries","distance":0.2145},{"site":"nextjs","path":"/docs/app/guides/third-party-libraries","distance":0.2207}],"related":[{"site":"nextjs","path":"/docs/app/guides/scripts","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/third-party-libraries","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/third-party-libraries","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/lazy-loading","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","title":"Self-Hosting","summary":"Learn how to self-host your Next.js application on a Node.js server, Docker image, or static HTML files (static exports).","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/image"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/assetPrefix"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheHandlers"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/deploymentId"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/incrementalCacheHandlerPath"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/redirects"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/rewrites"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/api-reference/functions/headers"},{"site":"nextjs","path":"/docs/app/api-reference/functions/redirect"},{"site":"nextjs","path":"/docs/app/getting-started/deploying"},{"site":"nextjs","path":"/docs/app/getting-started/images"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/cdn-caching"},{"site":"nextjs","path":"/docs/app/guides/data-security"},{"site":"nextjs","path":"/docs/app/guides/draft-mode"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/app/guides/instrumentation"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration"},{"site":"nextjs","path":"/docs/app/guides/static-exports"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props"},{"site":"nextjs","path":"/docs/pages/guides/custom-server"}],"inbound":[{"site":"nextjs","path":"/docs/pages/guides"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/self-hosting","distance":0.0503},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.1545},{"site":"nextjs","path":"/docs/app/guides","distance":0.1648},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.1851},{"site":"nextjs","path":"/docs/pages/getting-started/installation","distance":0.1865}],"related":[{"site":"nextjs","path":"/docs/app/guides/self-hosting","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/installation","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/static-exports","title":"Static Exports","summary":"Next.js enables starting as a static site or Single-Page Application (SPA), then later optionally upgrading to use features that require a server.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/image"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes"},{"site":"nextjs","path":"/docs/pages/api-reference/components/image"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/headers"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/redirects"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/rewrites"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-server-side-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-paths"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/api-routes"},{"site":"nextjs","path":"/docs/pages/guides/draft-mode"},{"site":"nextjs","path":"/docs/pages/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/pages/guides/internationalization"},{"site":"nextjs","path":"/docs/pages/guides/lazy-loading"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/components/image-legacy"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/exportPathMap"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/api-routes"},{"site":"nextjs","path":"/docs/pages/guides"},{"site":"nextjs","path":"/docs/pages/guides/internationalization"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/static-exports","distance":0.0166},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2011},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props","distance":0.2017},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths","distance":0.203},{"site":"nextjs","path":"/docs/pages/getting-started/deploying","distance":0.2102}],"related":[{"site":"nextjs","path":"/docs/app/guides/static-exports","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/deploying","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/tailwind-v3-css","title":"Tailwind CSS","summary":"Style your Next.js Application using Tailwind CSS.","outbound":[{"site":"nextjs","path":"/docs/app/getting-started/css"}],"inbound":[{"site":"nextjs","path":"/docs/pages/getting-started/css"},{"site":"nextjs","path":"/docs/pages/guides"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/tailwind-v3-css","distance":0.0254},{"site":"nextjs","path":"/docs/pages/getting-started/css","distance":0.1193},{"site":"nextjs","path":"/docs/app/getting-started/css","distance":0.1252},{"site":"turborepo","path":"/docs/guides/tools/tailwind","distance":0.2032},{"site":"nextjs","path":"/docs/pages/guides","distance":0.2467}],"related":[{"site":"nextjs","path":"/docs/app/guides/tailwind-v3-css","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/tailwind","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/css","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/post-css","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/installation","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/css-in-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/testing","title":"Testing","summary":"Learn how to set up Next.js with three commonly used testing tools — Cypress, Playwright, Vitest, and Jest.","outbound":[{"site":"nextjs","path":"/docs/pages/guides/testing/cypress"},{"site":"nextjs","path":"/docs/pages/guides/testing/jest"},{"site":"nextjs","path":"/docs/pages/guides/testing/playwright"},{"site":"nextjs","path":"/docs/pages/guides/testing/vitest"}],"inbound":[{"site":"nextjs","path":"/docs/pages/guides"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/testing","distance":0.0291},{"site":"nextjs","path":"/docs/pages/guides/testing/vitest","distance":0.1419},{"site":"nextjs","path":"/docs/app/guides/testing/jest","distance":0.1443},{"site":"nextjs","path":"/docs/pages/guides/testing/jest","distance":0.1498},{"site":"nextjs","path":"/docs/app/guides/testing/vitest","distance":0.162}],"related":[{"site":"nextjs","path":"/docs/app/guides/testing","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/testing/jest","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/testing/vitest","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/testing/cypress","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/testing/playwright","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/testing/cypress","title":"Cypress","summary":"Learn how to set up Next.js with Cypress for End-to-End (E2E) and Component Testing.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/pages/guides/testing"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides/testing"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/testing/cypress","distance":0.0117},{"site":"nextjs","path":"/docs/pages/guides/testing","distance":0.1855},{"site":"nextjs","path":"/docs/app/guides/testing","distance":0.2049},{"site":"nextjs","path":"/docs/pages/guides/testing/jest","distance":0.2355},{"site":"nextjs","path":"/docs/app/guides/testing/jest","distance":0.2403}],"related":[{"site":"nextjs","path":"/docs/app/guides/testing/cypress","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/testing","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/testing/jest","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/testing/jest","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/testing/playwright","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/testing/jest","title":"Jest","summary":"Learn how to set up Next.js with Jest for Unit Testing.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/font"},{"site":"nextjs","path":"/docs/app/getting-started/installation"},{"site":"nextjs","path":"/docs/app/guides/environment-variables"},{"site":"nextjs","path":"/docs/architecture/nextjs-compiler"}],"inbound":[{"site":"nextjs","path":"/docs/pages/guides/testing"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides/testing"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/testing/jest","distance":0.0191},{"site":"nextjs","path":"/docs/pages/guides/testing/vitest","distance":0.1368},{"site":"nextjs","path":"/docs/app/guides/testing/vitest","distance":0.1438},{"site":"nextjs","path":"/docs/pages/guides/testing","distance":0.1498},{"site":"nextjs","path":"/docs/app/guides/testing","distance":0.1628}],"related":[{"site":"nextjs","path":"/docs/app/guides/testing/jest","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/testing/vitest","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/testing/vitest","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/testing","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/installation","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/testing/playwright","title":"Playwright","summary":"Learn how to set up Next.js with Playwright for End-to-End (E2E) and Integration testing.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/pages/guides/testing"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides/testing"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/testing/playwright","distance":0.0106},{"site":"nextjs","path":"/docs/pages/guides/testing","distance":0.1885},{"site":"nextjs","path":"/docs/app/guides/testing","distance":0.2042},{"site":"nextjs","path":"/docs/pages/guides/testing/vitest","distance":0.2514},{"site":"nextjs","path":"/docs/app/guides/testing/cypress","distance":0.2521}],"related":[{"site":"nextjs","path":"/docs/app/guides/testing/playwright","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/playwright","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/testing","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/testing/vitest","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/testing/cypress","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/testing/cypress","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/testing/vitest","title":"Vitest","summary":"Learn how to set up Next.js with Vitest and React Testing Library - two popular unit testing libraries.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/pages/guides/testing"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides/testing"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/testing/vitest","distance":0.0138},{"site":"nextjs","path":"/docs/pages/guides/testing/jest","distance":0.1368},{"site":"nextjs","path":"/docs/app/guides/testing/jest","distance":0.1378},{"site":"nextjs","path":"/docs/pages/guides/testing","distance":0.1419},{"site":"nextjs","path":"/docs/app/guides/testing","distance":0.1586}],"related":[{"site":"nextjs","path":"/docs/app/guides/testing/vitest","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/testing/jest","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/testing/jest","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/testing","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/testing/playwright","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/third-party-libraries","title":"Third Party Libraries","summary":"Optimize the performance of third-party libraries in your application with the `@next/third-parties` package.","outbound":[{"site":"nextjs","path":"/docs/app/guides/content-security-policy"}],"inbound":[{"site":"nextjs","path":"/docs/pages/guides"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/third-party-libraries","distance":0.0096},{"site":"nextjs","path":"/docs/pages/guides/scripts","distance":0.2145},{"site":"nextjs","path":"/docs/app/guides/scripts","distance":0.2267},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.2314},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.2377}],"related":[{"site":"nextjs","path":"/docs/app/guides/third-party-libraries","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/scripts","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/scripts","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/upgrading","title":"Upgrading","summary":"Learn how to upgrade to the latest versions of Next.js.","outbound":[{"site":"nextjs","path":"/docs/pages/guides/upgrading/codemods"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-10"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-11"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-12"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-13"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-14"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-9"}],"inbound":[{"site":"nextjs","path":"/docs/pages/guides"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-13"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/upgrading","distance":0.0715},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-10","distance":0.1346},{"site":"nextjs","path":"/docs/app/getting-started/upgrading","distance":0.1685},{"site":"nextjs","path":"/docs/pages/guides/migrating","distance":0.1756},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-14","distance":0.1773}],"related":[{"site":"nextjs","path":"/docs/app/guides/upgrading","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/upgrading","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/migrating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-14","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/upgrading/codemods","title":"Codemods","summary":"Use codemods to upgrade your Next.js codebase when new features are released.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/partialPrefetching"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/runtime"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15"},{"site":"nextjs","path":"/docs/pages/api-reference/components/link"}],"inbound":[{"site":"nextjs","path":"/docs/architecture/fast-refresh"},{"site":"nextjs","path":"/docs/pages/guides/upgrading"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-11"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-13"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides/upgrading"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/upgrading/codemods","distance":0.0076},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16","distance":0.2018},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","distance":0.2141},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-9","distance":0.2285},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration","distance":0.243}],"related":[{"site":"nextjs","path":"/docs/app/guides/upgrading/codemods","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-9","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-10","title":"Version 10","summary":"Upgrade your Next.js Application from Version 9 to Version 10.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/pages/guides/upgrading"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides/upgrading"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/upgrading","distance":0.1346},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-14","distance":0.1941},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-11","distance":0.1998},{"site":"nextjs","path":"/docs/app/guides/upgrading","distance":0.2022},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-14","distance":0.2051}],"related":[{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-14","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-11","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-14","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/upgrading","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-11","title":"Version 11","summary":"Upgrade your Next.js Application from Version 10 to Version 11.","outbound":[{"site":"nextjs","path":"/docs/pages/guides/upgrading/codemods"}],"inbound":[{"site":"nextjs","path":"/docs/pages/guides/upgrading"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides/upgrading"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-12","distance":0.1338},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-13","distance":0.1583},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-9","distance":0.168},{"site":"nextjs","path":"/docs/pages/getting-started/installation","distance":0.186},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-14","distance":0.1938}],"related":[{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-12","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-13","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-9","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/installation","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-14","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-12","title":"Version 12","summary":"Upgrade your Next.js Application from Version 11 to Version 12.","outbound":[{"site":"nextjs","path":"/docs/pages/api-reference/components/image"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/output"},{"site":"nextjs","path":"/docs/pages/guides/babel"}],"inbound":[{"site":"nextjs","path":"/docs/pages/guides/upgrading"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides/upgrading"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-11","distance":0.1338},{"site":"nextjs","path":"/docs/architecture/nextjs-compiler","distance":0.1549},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-13","distance":0.1554},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.1832},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-9","distance":0.2014}],"related":[{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-11","via":"neighbor"},{"site":"nextjs","path":"/docs/architecture/nextjs-compiler","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-13","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-9","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-13","title":"Version 13","summary":"Upgrade your Next.js Application from Version 12 to 13.","outbound":[{"site":"nextjs","path":"/docs/architecture/nextjs-compiler"},{"site":"nextjs","path":"/docs/architecture/supported-browsers"},{"site":"nextjs","path":"/docs/pages/api-reference/components/font"},{"site":"nextjs","path":"/docs/pages/api-reference/components/image-legacy"},{"site":"nextjs","path":"/docs/pages/api-reference/components/link"},{"site":"nextjs","path":"/docs/pages/api-reference/components/script"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/output"},{"site":"nextjs","path":"/docs/pages/guides/upgrading"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/codemods"}],"inbound":[{"site":"nextjs","path":"/docs/pages/guides/upgrading"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides/upgrading"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-14","distance":0.1455},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-14","distance":0.1534},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-12","distance":0.1554},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-11","distance":0.1583},{"site":"nextjs","path":"/docs/pages/guides/upgrading","distance":0.1905}],"related":[{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-14","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-14","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-12","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-11","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-9","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-14","title":"Version 14","summary":"Upgrade your Next.js Application from Version 13 to 14.","outbound":[{"site":"nextjs","path":"/docs/app/guides/static-exports"},{"site":"nextjs","path":"/docs/app/guides/upgrading/codemods"}],"inbound":[{"site":"nextjs","path":"/docs/pages/guides/upgrading"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides/upgrading"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/upgrading/version-14","distance":0.0056},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-13","distance":0.1455},{"site":"nextjs","path":"/docs/pages/guides/upgrading","distance":0.1773},{"site":"nextjs","path":"/docs/app/guides/upgrading","distance":0.1892},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-11","distance":0.1938}],"related":[{"site":"nextjs","path":"/docs/app/guides/upgrading/version-14","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-13","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-11","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-10","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-9","title":"Version 9","summary":"Upgrade your Next.js Application from Version 8 to Version 9.","outbound":[{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-app"}],"inbound":[{"site":"nextjs","path":"/docs/pages/guides/upgrading"}],"requires":[{"site":"nextjs","path":"/docs/pages/guides/upgrading"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","distance":0.1484},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-11","distance":0.168},{"site":"nextjs","path":"/docs/pages/getting-started/installation","distance":0.17},{"site":"nextjs","path":"/docs/app/getting-started/installation","distance":0.182},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.183}],"related":[{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-11","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/installation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/installation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"streamdown","path":"/docs","title":"Introduction","summary":"Streamdown renders Markdown in real-time as tokens arrive from AI models, with built-in support for syntax highlighting, math, diagrams, and more.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"streamdown","path":"/docs/usage","distance":0.197},{"site":"streamdown","path":"/docs/migrate","distance":0.2089},{"site":"streamdown","path":"/docs/getting-started","distance":0.2128},{"site":"streamdown","path":"/docs/faq","distance":0.2212},{"site":"streamdown","path":"/docs/termination","distance":0.229}],"related":[]},{"site":"streamdown","path":"/docs/animation","title":"Animation","summary":"Token-by-token text reveal animations that create a natural typing effect during streaming.","outbound":[{"site":"streamdown","path":"/docs/carets"},{"site":"streamdown","path":"/docs/configuration"},{"site":"streamdown","path":"/docs/plugins"}],"inbound":[{"site":"streamdown","path":"/docs/configuration"}],"requires":[{"site":"streamdown","path":"/docs"}],"neighbors":[{"site":"streamdown","path":"/docs/configuration","distance":0.2249},{"site":"streamdown","path":"/docs/usage","distance":0.2441},{"site":"streamdown","path":"/docs/components","distance":0.2452},{"site":"streamdown","path":"/docs","distance":0.2471},{"site":"streamdown","path":"/docs/security","distance":0.2572}],"related":[{"site":"streamdown","path":"/docs/usage","via":"neighbor"},{"site":"streamdown","path":"/docs/components","via":"neighbor"},{"site":"streamdown","path":"/docs/security","via":"neighbor"},{"site":"streamdown","path":"/docs/styling","via":"neighbor"},{"site":"streamdown","path":"/docs/getting-started","via":"neighbor"}]},{"site":"streamdown","path":"/docs/carets","title":"Carets","summary":"Blinking cursor indicators that show where new content is being generated.","outbound":[],"inbound":[{"site":"streamdown","path":"/docs/animation"},{"site":"streamdown","path":"/docs/configuration"}],"requires":[{"site":"streamdown","path":"/docs"}],"neighbors":[{"site":"streamdown","path":"/docs/animation","distance":0.2619},{"site":"streamdown","path":"/docs","distance":0.3317},{"site":"streamdown","path":"/docs/configuration","distance":0.3342},{"site":"streamdown","path":"/docs/usage","distance":0.3356},{"site":"streamdown","path":"/docs/styling","distance":0.3443}],"related":[{"site":"streamdown","path":"/docs/animation","via":"neighbor"},{"site":"streamdown","path":"/docs/configuration","via":"neighbor"},{"site":"streamdown","path":"/docs/usage","via":"neighbor"},{"site":"streamdown","path":"/docs/styling","via":"neighbor"},{"site":"streamdown","path":"/docs/getting-started","via":"neighbor"}]},{"site":"streamdown","path":"/docs/code-blocks","title":"Code Blocks","summary":"Shiki-powered syntax highlighting with line numbers, copy buttons, and language detection.","outbound":[],"inbound":[{"site":"streamdown","path":"/docs/plugins/code"},{"site":"streamdown","path":"/docs/plugins/mermaid"},{"site":"streamdown","path":"/docs/styling"},{"site":"streamdown","path":"/docs/typography"}],"requires":[{"site":"streamdown","path":"/docs/getting-started"}],"neighbors":[{"site":"streamdown","path":"/docs/plugins/code","distance":0.0889},{"site":"streamdown","path":"/docs/usage","distance":0.2096},{"site":"streamdown","path":"/docs/configuration","distance":0.22},{"site":"streamdown","path":"/docs/components","distance":0.2474},{"site":"streamdown","path":"/docs/plugins/math","distance":0.2502}],"related":[{"site":"streamdown","path":"/docs/plugins/code","via":"neighbor"},{"site":"streamdown","path":"/docs/getting-started","via":"requires"},{"site":"streamdown","path":"/docs/usage","via":"neighbor"},{"site":"streamdown","path":"/docs/configuration","via":"neighbor"},{"site":"streamdown","path":"/docs/components","via":"neighbor"}]},{"site":"streamdown","path":"/docs/components","title":"Components","summary":"Override default HTML elements with custom React components for full rendering control.","outbound":[{"site":"streamdown","path":"/docs/security"},{"site":"streamdown","path":"/docs/styling"}],"inbound":[{"site":"streamdown","path":"/docs/styling"}],"requires":[{"site":"streamdown","path":"/docs/getting-started"}],"neighbors":[{"site":"streamdown","path":"/docs/security","distance":0.1214},{"site":"streamdown","path":"/docs/configuration","distance":0.1454},{"site":"streamdown","path":"/docs/styling","distance":0.1925},{"site":"streamdown","path":"/docs/migrate","distance":0.2004},{"site":"streamdown","path":"/docs/usage","distance":0.2016}],"related":[{"site":"streamdown","path":"/docs/configuration","via":"neighbor"},{"site":"streamdown","path":"/docs/getting-started","via":"requires"},{"site":"streamdown","path":"/docs/migrate","via":"neighbor"},{"site":"streamdown","path":"/docs/usage","via":"neighbor"},{"site":"streamdown","path":"/docs/faq","via":"neighbor"}]},{"site":"streamdown","path":"/docs/configuration","title":"Configuration","summary":"All available props and options for the Streamdown component.","outbound":[{"site":"streamdown","path":"/docs/animation"},{"site":"streamdown","path":"/docs/carets"},{"site":"streamdown","path":"/docs/internationalization"},{"site":"streamdown","path":"/docs/link-safety"},{"site":"streamdown","path":"/docs/plugins"},{"site":"streamdown","path":"/docs/plugins/cjk"},{"site":"streamdown","path":"/docs/plugins/math"}],"inbound":[{"site":"streamdown","path":"/docs/animation"}],"requires":[{"site":"streamdown","path":"/docs/getting-started"}],"neighbors":[{"site":"streamdown","path":"/docs/components","distance":0.1454},{"site":"streamdown","path":"/docs/termination","distance":0.1461},{"site":"streamdown","path":"/docs/security","distance":0.1551},{"site":"streamdown","path":"/docs/migrate","distance":0.167},{"site":"streamdown","path":"/docs/faq","distance":0.1766}],"related":[{"site":"streamdown","path":"/docs/components","via":"neighbor"},{"site":"streamdown","path":"/docs/termination","via":"neighbor"},{"site":"streamdown","path":"/docs/security","via":"neighbor"},{"site":"streamdown","path":"/docs/migrate","via":"neighbor"},{"site":"streamdown","path":"/docs/faq","via":"neighbor"}]},{"site":"streamdown","path":"/docs/custom-renderers","title":"Custom renderers","summary":"Map code fence languages to custom React components for rendering charts, diagrams, and more.","outbound":[],"inbound":[],"requires":[{"site":"streamdown","path":"/docs/configuration"}],"neighbors":[{"site":"streamdown","path":"/docs/plugins/mermaid","distance":0.2417},{"site":"streamdown","path":"/docs/configuration","distance":0.2439},{"site":"streamdown","path":"/docs/code-blocks","distance":0.2586},{"site":"streamdown","path":"/docs/components","distance":0.2608},{"site":"streamdown","path":"/docs/usage","distance":0.2619}],"related":[{"site":"streamdown","path":"/docs/configuration","via":"requires"},{"site":"streamdown","path":"/docs/plugins/mermaid","via":"neighbor"},{"site":"streamdown","path":"/docs/code-blocks","via":"neighbor"},{"site":"streamdown","path":"/docs/components","via":"neighbor"},{"site":"streamdown","path":"/docs/usage","via":"neighbor"}]},{"site":"streamdown","path":"/docs/faq","title":"FAQ","summary":"Answers to common questions about compatibility, performance, and streaming behavior.","outbound":[{"site":"streamdown","path":"/docs/plugins/cjk"},{"site":"streamdown","path":"/docs/plugins/code"},{"site":"streamdown","path":"/docs/plugins/math"},{"site":"streamdown","path":"/docs/plugins/mermaid"}],"inbound":[],"requires":[{"site":"streamdown","path":"/docs"}],"neighbors":[{"site":"streamdown","path":"/docs/getting-started","distance":0.1602},{"site":"streamdown","path":"/docs/migrate","distance":0.161},{"site":"streamdown","path":"/docs/usage","distance":0.1697},{"site":"streamdown","path":"/docs/configuration","distance":0.1766},{"site":"streamdown","path":"/docs/components","distance":0.2177}],"related":[{"site":"streamdown","path":"/docs/getting-started","via":"neighbor"},{"site":"streamdown","path":"/docs/migrate","via":"neighbor"},{"site":"streamdown","path":"/docs/usage","via":"neighbor"},{"site":"streamdown","path":"/docs/configuration","via":"neighbor"},{"site":"streamdown","path":"/docs/components","via":"neighbor"}]},{"site":"streamdown","path":"/docs/getting-started","title":"Getting Started","summary":"Install Streamdown and render your first streaming Markdown component in under five minutes.","outbound":[{"site":"streamdown","path":"/docs/plugins/cjk"},{"site":"streamdown","path":"/docs/plugins/code"},{"site":"streamdown","path":"/docs/plugins/math"},{"site":"streamdown","path":"/docs/plugins/mermaid"}],"inbound":[{"site":"streamdown","path":"/docs/migrate"}],"requires":[{"site":"streamdown","path":"/docs"}],"neighbors":[{"site":"streamdown","path":"/docs/migrate","distance":0.1492},{"site":"streamdown","path":"/docs/faq","distance":0.1602},{"site":"streamdown","path":"/docs/styling","distance":0.1874},{"site":"streamdown","path":"/docs/usage","distance":0.1939},{"site":"streamdown","path":"/docs/typography","distance":0.2114}],"related":[{"site":"turborepo","path":"/docs/guides/tools/tailwind","via":"neighbor"},{"site":"streamdown","path":"/docs/migrate","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/css","via":"neighbor"},{"site":"streamdown","path":"/docs/faq","via":"neighbor"},{"site":"streamdown","path":"/docs/styling","via":"neighbor"},{"site":"streamdown","path":"/docs/usage","via":"neighbor"},{"site":"streamdown","path":"/docs/typography","via":"neighbor"}]},{"site":"streamdown","path":"/docs/gfm","title":"GitHub Flavored Markdown","summary":"Tables, task lists, strikethrough, and autolinks following the GFM specification.","outbound":[],"inbound":[{"site":"streamdown","path":"/docs/plugins/math"},{"site":"streamdown","path":"/docs/plugins/mermaid"},{"site":"streamdown","path":"/docs/typography"}],"requires":[{"site":"streamdown","path":"/docs/getting-started"}],"neighbors":[{"site":"streamdown","path":"/docs/typography","distance":0.1939},{"site":"streamdown","path":"/docs/configuration","distance":0.1997},{"site":"streamdown","path":"/docs/plugins/cjk","distance":0.2172},{"site":"streamdown","path":"/docs/termination","distance":0.2184},{"site":"streamdown","path":"/docs/components","distance":0.2377}],"related":[{"site":"streamdown","path":"/docs/typography","via":"neighbor"},{"site":"streamdown","path":"/docs/configuration","via":"neighbor"},{"site":"streamdown","path":"/docs/getting-started","via":"requires"},{"site":"streamdown","path":"/docs/plugins/cjk","via":"neighbor"},{"site":"streamdown","path":"/docs/termination","via":"neighbor"}]},{"site":"streamdown","path":"/docs/interactivity","title":"Interactivity","summary":"One-click copy and download actions for code blocks, tables, and images.","outbound":[],"inbound":[],"requires":[{"site":"streamdown","path":"/docs"}],"neighbors":[{"site":"streamdown","path":"/docs/configuration","distance":0.2814},{"site":"streamdown","path":"/docs/code-blocks","distance":0.2955},{"site":"streamdown","path":"/docs/plugins/mermaid","distance":0.3},{"site":"streamdown","path":"/docs/components","distance":0.316},{"site":"streamdown","path":"/docs","distance":0.3252}],"related":[{"site":"streamdown","path":"/docs/configuration","via":"neighbor"},{"site":"streamdown","path":"/docs/code-blocks","via":"neighbor"},{"site":"streamdown","path":"/docs/plugins/mermaid","via":"neighbor"},{"site":"streamdown","path":"/docs/components","via":"neighbor"},{"site":"streamdown","path":"/docs/gfm","via":"neighbor"}]},{"site":"streamdown","path":"/docs/internationalization","title":"Internationalization","summary":"Localize all UI labels in Streamdown controls and modals.","outbound":[],"inbound":[{"site":"streamdown","path":"/docs/configuration"}],"requires":[{"site":"streamdown","path":"/docs/getting-started"}],"neighbors":[{"site":"streamdown","path":"/docs/configuration","distance":0.2388},{"site":"streamdown","path":"/docs/components","distance":0.271},{"site":"streamdown","path":"/docs/migrate","distance":0.2818},{"site":"streamdown","path":"/docs/usage","distance":0.2895},{"site":"streamdown","path":"/docs/styling","distance":0.2944}],"related":[{"site":"streamdown","path":"/docs/getting-started","via":"requires"},{"site":"streamdown","path":"/docs/configuration","via":"neighbor"},{"site":"streamdown","path":"/docs/components","via":"neighbor"},{"site":"streamdown","path":"/docs/migrate","via":"neighbor"},{"site":"streamdown","path":"/docs/usage","via":"neighbor"}]},{"site":"streamdown","path":"/docs/link-safety","title":"Link Safety","summary":"Intercept external link clicks with a confirmation dialog before navigating away.","outbound":[{"site":"streamdown","path":"/docs/security"}],"inbound":[{"site":"streamdown","path":"/docs/configuration"}],"requires":[{"site":"streamdown","path":"/docs"}],"neighbors":[{"site":"streamdown","path":"/docs/security","distance":0.2616},{"site":"chat-sdk","path":"/docs/modals","distance":0.2941},{"site":"streamdown","path":"/docs/configuration","distance":0.3105},{"site":"streamdown","path":"/docs/components","distance":0.3156},{"site":"chat-sdk","path":"/docs/api/modals","distance":0.3397}],"related":[{"site":"chat-sdk","path":"/docs/modals","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/modals","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-link-status","via":"neighbor"},{"site":"chat-sdk","path":"/docs/cards","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/components/link","via":"neighbor"},{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"streamdown","path":"/docs/configuration","via":"neighbor"},{"site":"streamdown","path":"/docs/components","via":"neighbor"},{"site":"streamdown","path":"/docs/usage","via":"neighbor"}]},{"site":"streamdown","path":"/docs/memoization","title":"Memoization","summary":"Prevent unnecessary re-renders by caching parsed Markdown blocks between streaming updates.","outbound":[],"inbound":[],"requires":[{"site":"streamdown","path":"/docs"}],"neighbors":[{"site":"streamdown","path":"/docs","distance":0.2456},{"site":"streamdown","path":"/docs/animation","distance":0.2795},{"site":"streamdown","path":"/docs/usage","distance":0.2883},{"site":"ai-sdk","path":"/cookbook/next/markdown-chatbot-with-memoization","distance":0.2903},{"site":"streamdown","path":"/docs/termination","distance":0.2909}],"related":[{"site":"ai-sdk","path":"/cookbook/next/markdown-chatbot-with-memoization","via":"neighbor"},{"site":"streamdown","path":"/docs/animation","via":"neighbor"},{"site":"streamdown","path":"/docs/usage","via":"neighbor"},{"site":"streamdown","path":"/docs/termination","via":"neighbor"},{"site":"streamdown","path":"/docs/configuration","via":"neighbor"},{"site":"streamdown","path":"/docs/migrate","via":"neighbor"}]},{"site":"streamdown","path":"/docs/migrate","title":"Migrate from react-markdown","summary":"Migrate from react-markdown to Streamdown.","outbound":[{"site":"streamdown","path":"/docs/getting-started"},{"site":"streamdown","path":"/docs/plugins/cjk"},{"site":"streamdown","path":"/docs/plugins/code"},{"site":"streamdown","path":"/docs/plugins/math"},{"site":"streamdown","path":"/docs/plugins/mermaid"}],"inbound":[],"requires":[{"site":"streamdown","path":"/docs/getting-started"}],"neighbors":[{"site":"streamdown","path":"/docs/getting-started","distance":0.1492},{"site":"streamdown","path":"/docs/faq","distance":0.161},{"site":"streamdown","path":"/docs/configuration","distance":0.167},{"site":"streamdown","path":"/docs/usage","distance":0.1881},{"site":"streamdown","path":"/docs/components","distance":0.2004}],"related":[{"site":"streamdown","path":"/docs/faq","via":"neighbor"},{"site":"streamdown","path":"/docs/configuration","via":"neighbor"},{"site":"streamdown","path":"/docs/usage","via":"neighbor"},{"site":"streamdown","path":"/docs/components","via":"neighbor"},{"site":"streamdown","path":"/docs/styling","via":"neighbor"}]},{"site":"streamdown","path":"/docs/plugins","title":"Built-in Plugins","summary":"Extend Streamdown with remark and rehype plugins for custom Markdown processing.","outbound":[],"inbound":[{"site":"streamdown","path":"/docs/animation"},{"site":"streamdown","path":"/docs/configuration"}],"requires":[{"site":"streamdown","path":"/docs/getting-started"}],"neighbors":[{"site":"streamdown","path":"/docs/configuration","distance":0.2101},{"site":"streamdown","path":"/docs/security","distance":0.2131},{"site":"streamdown","path":"/docs/plugins/cjk","distance":0.2257},{"site":"streamdown","path":"/docs/gfm","distance":0.2384},{"site":"streamdown","path":"/docs/migrate","distance":0.2483}],"related":[{"site":"streamdown","path":"/docs/getting-started","via":"requires"},{"site":"streamdown","path":"/docs/configuration","via":"neighbor"},{"site":"streamdown","path":"/docs/security","via":"neighbor"},{"site":"streamdown","path":"/docs/gfm","via":"neighbor"},{"site":"streamdown","path":"/docs/migrate","via":"neighbor"}]},{"site":"streamdown","path":"/docs/plugins/cjk","title":"@streamdown/cjk","summary":"Proper emphasis formatting and autolink handling for CJK text.","outbound":[],"inbound":[{"site":"streamdown","path":"/docs/configuration"},{"site":"streamdown","path":"/docs/faq"},{"site":"streamdown","path":"/docs/getting-started"},{"site":"streamdown","path":"/docs/migrate"}],"requires":[{"site":"streamdown","path":"/docs/plugins"}],"neighbors":[{"site":"streamdown","path":"/docs/gfm","distance":0.2172},{"site":"streamdown","path":"/docs/plugins","distance":0.2257},{"site":"streamdown","path":"/docs/configuration","distance":0.2456},{"site":"streamdown","path":"/docs/plugins/math","distance":0.2542},{"site":"streamdown","path":"/docs/typography","distance":0.2752}],"related":[{"site":"streamdown","path":"/docs/gfm","via":"neighbor"},{"site":"streamdown","path":"/docs/configuration","via":"neighbor"},{"site":"streamdown","path":"/docs/plugins/math","via":"neighbor"},{"site":"streamdown","path":"/docs/typography","via":"neighbor"},{"site":"streamdown","path":"/docs/faq","via":"neighbor"}]},{"site":"streamdown","path":"/docs/plugins/code","title":"@streamdown/code","summary":"Add syntax highlighting with 200+ languages, dual themes, and lazy-loaded grammars.","outbound":[{"site":"streamdown","path":"/docs/code-blocks"}],"inbound":[{"site":"streamdown","path":"/docs/faq"},{"site":"streamdown","path":"/docs/getting-started"},{"site":"streamdown","path":"/docs/migrate"}],"requires":[{"site":"streamdown","path":"/docs/plugins"}],"neighbors":[{"site":"streamdown","path":"/docs/code-blocks","distance":0.0889},{"site":"streamdown","path":"/docs/usage","distance":0.2774},{"site":"streamdown","path":"/docs/plugins/cjk","distance":0.2781},{"site":"streamdown","path":"/docs/faq","distance":0.2818},{"site":"streamdown","path":"/docs/configuration","distance":0.2876}],"related":[{"site":"streamdown","path":"/docs/usage","via":"neighbor"},{"site":"streamdown","path":"/docs/plugins/cjk","via":"neighbor"},{"site":"streamdown","path":"/docs/faq","via":"neighbor"},{"site":"streamdown","path":"/docs/configuration","via":"neighbor"},{"site":"streamdown","path":"/docs/typography","via":"neighbor"}]},{"site":"streamdown","path":"/docs/plugins/math","title":"@streamdown/math","summary":"KaTeX-powered LaTeX rendering for inline and block math expressions.","outbound":[{"site":"streamdown","path":"/docs/gfm"},{"site":"streamdown","path":"/docs/termination"},{"site":"streamdown","path":"/docs/typography"}],"inbound":[{"site":"streamdown","path":"/docs/configuration"},{"site":"streamdown","path":"/docs/faq"},{"site":"streamdown","path":"/docs/getting-started"},{"site":"streamdown","path":"/docs/migrate"}],"requires":[{"site":"streamdown","path":"/docs/plugins"}],"neighbors":[{"site":"streamdown","path":"/docs/usage","distance":0.2329},{"site":"streamdown","path":"/docs/configuration","distance":0.2365},{"site":"streamdown","path":"/docs/code-blocks","distance":0.2502},{"site":"streamdown","path":"/docs/plugins/cjk","distance":0.2542},{"site":"streamdown","path":"/docs/typography","distance":0.258}],"related":[{"site":"streamdown","path":"/docs/usage","via":"neighbor"},{"site":"streamdown","path":"/docs/configuration","via":"neighbor"},{"site":"streamdown","path":"/docs/code-blocks","via":"neighbor"},{"site":"streamdown","path":"/docs/plugins/cjk","via":"neighbor"},{"site":"streamdown","path":"/docs/plugins/mermaid","via":"neighbor"}]},{"site":"streamdown","path":"/docs/plugins/mermaid","title":"@streamdown/mermaid","summary":"Client-side Mermaid rendering with interactive controls, theming, and error handling.","outbound":[{"site":"streamdown","path":"/docs/code-blocks"},{"site":"streamdown","path":"/docs/gfm"},{"site":"streamdown","path":"/docs/termination"},{"site":"streamdown","path":"/docs/typography"}],"inbound":[{"site":"streamdown","path":"/docs/faq"},{"site":"streamdown","path":"/docs/getting-started"},{"site":"streamdown","path":"/docs/migrate"}],"requires":[{"site":"streamdown","path":"/docs/plugins"}],"neighbors":[{"site":"streamdown","path":"/docs/configuration","distance":0.2055},{"site":"streamdown","path":"/docs/usage","distance":0.238},{"site":"streamdown","path":"/docs/custom-renderers","distance":0.2417},{"site":"streamdown","path":"/docs/faq","distance":0.2475},{"site":"streamdown","path":"/docs/code-blocks","distance":0.2563}],"related":[{"site":"streamdown","path":"/docs/configuration","via":"neighbor"},{"site":"streamdown","path":"/docs/usage","via":"neighbor"},{"site":"streamdown","path":"/docs/custom-renderers","via":"neighbor"},{"site":"streamdown","path":"/docs/faq","via":"neighbor"},{"site":"streamdown","path":"/docs/plugins/math","via":"neighbor"}]},{"site":"streamdown","path":"/docs/security","title":"Security","summary":"Streamdown sanitizes HTML, prevents XSS attacks, and strips dangerous content by default.","outbound":[{"site":"streamdown","path":"/docs/styling"}],"inbound":[{"site":"streamdown","path":"/docs/components"},{"site":"streamdown","path":"/docs/link-safety"}],"requires":[{"site":"streamdown","path":"/docs"}],"neighbors":[{"site":"streamdown","path":"/docs/components","distance":0.1214},{"site":"streamdown","path":"/docs/configuration","distance":0.1551},{"site":"streamdown","path":"/docs/plugins","distance":0.2131},{"site":"streamdown","path":"/docs/usage","distance":0.2207},{"site":"streamdown","path":"/docs/migrate","distance":0.2293}],"related":[{"site":"streamdown","path":"/docs/components","via":"neighbor"},{"site":"streamdown","path":"/docs/configuration","via":"neighbor"},{"site":"streamdown","path":"/docs/plugins","via":"neighbor"},{"site":"streamdown","path":"/docs/usage","via":"neighbor"},{"site":"streamdown","path":"/docs/migrate","via":"neighbor"}]},{"site":"streamdown","path":"/docs/styling","title":"Styling","summary":"Apply custom CSS, Tailwind classes, and theme overrides to Streamdown output.","outbound":[{"site":"streamdown","path":"/docs/code-blocks"},{"site":"streamdown","path":"/docs/components"}],"inbound":[{"site":"streamdown","path":"/docs/components"},{"site":"streamdown","path":"/docs/security"}],"requires":[{"site":"streamdown","path":"/docs/getting-started"}],"neighbors":[{"site":"streamdown","path":"/docs/typography","distance":0.1686},{"site":"streamdown","path":"/docs/getting-started","distance":0.1874},{"site":"streamdown","path":"/docs/components","distance":0.1925},{"site":"streamdown","path":"/docs/migrate","distance":0.2164},{"site":"streamdown","path":"/docs/configuration","distance":0.2235}],"related":[{"site":"nextjs","path":"/docs/app/getting-started/css","via":"neighbor"},{"site":"streamdown","path":"/docs/typography","via":"neighbor"},{"site":"streamdown","path":"/docs/getting-started","via":"neighbor"},{"site":"streamdown","path":"/docs/migrate","via":"neighbor"},{"site":"streamdown","path":"/docs/configuration","via":"neighbor"},{"site":"streamdown","path":"/docs/faq","via":"neighbor"}]},{"site":"streamdown","path":"/docs/termination","title":"Unterminated Block Parsing","summary":"Graceful handling of unterminated code fences, lists, and other incomplete Markdown during streaming.","outbound":[],"inbound":[{"site":"streamdown","path":"/docs/plugins/math"},{"site":"streamdown","path":"/docs/plugins/mermaid"}],"requires":[{"site":"streamdown","path":"/docs"}],"neighbors":[{"site":"streamdown","path":"/docs/configuration","distance":0.1461},{"site":"streamdown","path":"/docs/gfm","distance":0.2184},{"site":"streamdown","path":"/docs","distance":0.229},{"site":"streamdown","path":"/docs/components","distance":0.2308},{"site":"streamdown","path":"/docs/security","distance":0.2321}],"related":[{"site":"streamdown","path":"/docs/configuration","via":"neighbor"},{"site":"streamdown","path":"/docs/gfm","via":"neighbor"},{"site":"streamdown","path":"/docs/components","via":"neighbor"},{"site":"streamdown","path":"/docs/security","via":"neighbor"},{"site":"streamdown","path":"/docs/faq","via":"neighbor"}]},{"site":"streamdown","path":"/docs/typography","title":"Typography","summary":"Pre-built Tailwind CSS typography styles that match common design systems.","outbound":[{"site":"streamdown","path":"/docs/code-blocks"},{"site":"streamdown","path":"/docs/gfm"}],"inbound":[{"site":"streamdown","path":"/docs/plugins/math"},{"site":"streamdown","path":"/docs/plugins/mermaid"}],"requires":[{"site":"streamdown","path":"/docs/styling"}],"neighbors":[{"site":"streamdown","path":"/docs/styling","distance":0.1686},{"site":"streamdown","path":"/docs/gfm","distance":0.1939},{"site":"streamdown","path":"/docs/getting-started","distance":0.2114},{"site":"streamdown","path":"/docs/components","distance":0.2479},{"site":"streamdown","path":"/docs/configuration","distance":0.2486}],"related":[{"site":"streamdown","path":"/docs/styling","via":"neighbor"},{"site":"streamdown","path":"/docs/getting-started","via":"neighbor"},{"site":"streamdown","path":"/docs/components","via":"neighbor"},{"site":"streamdown","path":"/docs/configuration","via":"neighbor"},{"site":"streamdown","path":"/docs/faq","via":"neighbor"}]},{"site":"streamdown","path":"/docs/usage","title":"Usage","summary":"Integrate Streamdown with the Vercel AI SDK and other streaming providers.","outbound":[],"inbound":[],"requires":[{"site":"streamdown","path":"/docs/getting-started"}],"neighbors":[{"site":"streamdown","path":"/docs/faq","distance":0.1697},{"site":"streamdown","path":"/docs/configuration","distance":0.1771},{"site":"streamdown","path":"/docs/migrate","distance":0.1881},{"site":"streamdown","path":"/docs/getting-started","distance":0.1939},{"site":"streamdown","path":"/docs","distance":0.197}],"related":[{"site":"streamdown","path":"/docs/faq","via":"neighbor"},{"site":"streamdown","path":"/docs/configuration","via":"neighbor"},{"site":"streamdown","path":"/docs/migrate","via":"neighbor"},{"site":"streamdown","path":"/docs/getting-started","via":"neighbor"},{"site":"streamdown","path":"/docs/components","via":"neighbor"}]},{"site":"swr","path":"/blog/swr-v1","title":"Announcing SWR 1.0","summary":"Announcing SWR 1.0 with new features and improvements.","outbound":[{"site":"swr","path":"/docs/advanced/cache"},{"site":"swr","path":"/docs/advanced/performance"},{"site":"swr","path":"/docs/global-configuration"},{"site":"swr","path":"/docs/middleware"},{"site":"swr","path":"/docs/revalidation"},{"site":"swr","path":"/docs/with-nextjs"}],"inbound":[],"requires":[],"neighbors":[{"site":"swr","path":"/blog/swr-v2","distance":0.0728},{"site":"swr","path":"/docs/getting-started","distance":0.2329},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","distance":0.2419},{"site":"swr","path":"/docs/advanced/performance","distance":0.2503},{"site":"swr","path":"/docs/pagination","distance":0.2562}],"related":[{"site":"swr","path":"/blog/swr-v2","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","via":"neighbor"},{"site":"nextjs","path":"/docs/architecture/nextjs-compiler","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side","via":"neighbor"},{"site":"swr","path":"/docs/getting-started","via":"neighbor"},{"site":"swr","path":"/docs/pagination","via":"neighbor"},{"site":"swr","path":"/docs/typescript","via":"neighbor"},{"site":"swr","path":"/docs/advanced/understanding","via":"neighbor"}]},{"site":"swr","path":"/blog/swr-v2","title":"Announcing SWR 2.0","summary":"Announcing SWR 2.0 with new mutation APIs, DevTools, and optimistic UI.","outbound":[{"site":"swr","path":"/docs/advanced/devtools"},{"site":"swr","path":"/docs/advanced/understanding"},{"site":"swr","path":"/docs/global-configuration"},{"site":"swr","path":"/docs/mutation"},{"site":"swr","path":"/docs/prefetching"},{"site":"swr","path":"/docs/with-nextjs"}],"inbound":[],"requires":[],"neighbors":[{"site":"swr","path":"/blog/swr-v1","distance":0.0728},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","distance":0.1712},{"site":"swr","path":"/docs/getting-started","distance":0.1983},{"site":"swr","path":"/docs/with-nextjs","distance":0.2035},{"site":"swr","path":"/docs/advanced/performance","distance":0.2151}],"related":[{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","via":"neighbor"},{"site":"swr","path":"/blog/swr-v1","via":"neighbor"},{"site":"nextjs","path":"/docs/architecture/nextjs-compiler","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-12","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","via":"neighbor"},{"site":"swr","path":"/docs/getting-started","via":"neighbor"},{"site":"swr","path":"/docs/advanced/performance","via":"neighbor"},{"site":"swr","path":"/docs/pagination","via":"neighbor"},{"site":"swr","path":"/docs/api","via":"neighbor"}]},{"site":"swr","path":"/docs/advanced/cache","title":"Cache","summary":"Customize the cache provider and implement advanced caching strategies.","outbound":[{"site":"swr","path":"/docs/arguments"},{"site":"swr","path":"/docs/global-configuration"},{"site":"swr","path":"/docs/mutation"}],"inbound":[{"site":"swr","path":"/blog/swr-v1"},{"site":"swr","path":"/docs/advanced/react-native"},{"site":"swr","path":"/docs/global-configuration"},{"site":"swr","path":"/docs/mutation"}],"requires":[{"site":"swr","path":"/docs/global-configuration"}],"neighbors":[{"site":"swr","path":"/docs/mutation","distance":0.2257},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","distance":0.2406},{"site":"swr","path":"/docs/with-nextjs","distance":0.2507},{"site":"swr","path":"/docs/global-configuration","distance":0.2533},{"site":"swr","path":"/blog/swr-v2","distance":0.2914}],"related":[{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_cache","via":"neighbor"},{"site":"swr","path":"/docs/with-nextjs","via":"neighbor"},{"site":"swr","path":"/blog/swr-v2","via":"neighbor"},{"site":"swr","path":"/docs/advanced/performance","via":"neighbor"},{"site":"swr","path":"/docs/api","via":"neighbor"},{"site":"swr","path":"/blog/swr-v1","via":"neighbor"}]},{"site":"swr","path":"/docs/advanced/devtools","title":"DevTools","summary":"Debug SWR with developer tools.","outbound":[],"inbound":[{"site":"swr","path":"/blog/swr-v2"}],"requires":[{"site":"swr","path":"/docs/getting-started"}],"neighbors":[{"site":"swr","path":"/examples/basic","distance":0.2887},{"site":"swr","path":"/docs/advanced/performance","distance":0.3331},{"site":"swr","path":"/blog/swr-v2","distance":0.3387},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","distance":0.3535},{"site":"swr","path":"/docs/typescript","distance":0.3582}],"related":[{"site":"swr","path":"/docs/getting-started","via":"requires"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/debugging","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/debugging","via":"neighbor"},{"site":"swr","path":"/examples/basic","via":"neighbor"},{"site":"swr","path":"/docs/advanced/performance","via":"neighbor"},{"site":"swr","path":"/blog/swr-v2","via":"neighbor"},{"site":"swr","path":"/docs/typescript","via":"neighbor"}]},{"site":"swr","path":"/docs/advanced/performance","title":"Performance","summary":"Optimize performance with deduplication, deep comparison, and dependency tracking.","outbound":[{"site":"swr","path":"/docs/api"}],"inbound":[{"site":"swr","path":"/blog/swr-v1"},{"site":"swr","path":"/docs/advanced/understanding"}],"requires":[{"site":"swr","path":"/docs/getting-started"}],"neighbors":[{"site":"swr","path":"/docs/getting-started","distance":0.1501},{"site":"swr","path":"/docs/advanced/understanding","distance":0.1657},{"site":"swr","path":"/docs/with-nextjs","distance":0.1947},{"site":"swr","path":"/blog/swr-v2","distance":0.2151},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","distance":0.2159}],"related":[{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side","via":"neighbor"},{"site":"swr","path":"/docs/getting-started","via":"neighbor"},{"site":"swr","path":"/docs/advanced/understanding","via":"neighbor"},{"site":"swr","path":"/docs/with-nextjs","via":"neighbor"},{"site":"swr","path":"/blog/swr-v2","via":"neighbor"},{"site":"swr","path":"/docs/prefetching","via":"neighbor"}]},{"site":"swr","path":"/docs/advanced/react-native","title":"React Native","summary":"Use SWR with React Native applications.","outbound":[{"site":"swr","path":"/docs/advanced/cache"}],"inbound":[],"requires":[{"site":"swr","path":"/docs/getting-started"}],"neighbors":[{"site":"swr","path":"/docs/getting-started","distance":0.2479},{"site":"swr","path":"/docs/with-nextjs","distance":0.2978},{"site":"swr","path":"/docs/advanced/performance","distance":0.3},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","distance":0.3029},{"site":"swr","path":"/docs/advanced/understanding","distance":0.3037}],"related":[{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side","via":"neighbor"},{"site":"swr","path":"/docs/getting-started","via":"requires"},{"site":"swr","path":"/docs/with-nextjs","via":"neighbor"},{"site":"swr","path":"/docs/advanced/performance","via":"neighbor"},{"site":"swr","path":"/docs/advanced/understanding","via":"neighbor"},{"site":"swr","path":"/docs/revalidation","via":"neighbor"}]},{"site":"swr","path":"/docs/advanced/understanding","title":"Understanding SWR","summary":"Understand how SWR works internally.","outbound":[{"site":"swr","path":"/docs/advanced/performance"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr"},{"site":"swr","path":"/blog/swr-v2"},{"site":"swr","path":"/docs/api"}],"requires":[{"site":"swr","path":"/docs/getting-started"}],"neighbors":[{"site":"swr","path":"/docs/getting-started","distance":0.1648},{"site":"swr","path":"/docs/advanced/performance","distance":0.1657},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","distance":0.2024},{"site":"swr","path":"/docs/with-nextjs","distance":0.2099},{"site":"swr","path":"/docs/pagination","distance":0.2183}],"related":[{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","via":"inbound"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side","via":"neighbor"},{"site":"swr","path":"/docs/getting-started","via":"neighbor"},{"site":"swr","path":"/docs/with-nextjs","via":"neighbor"},{"site":"swr","path":"/docs/pagination","via":"neighbor"},{"site":"swr","path":"/blog/swr-v2","via":"neighbor"},{"site":"swr","path":"/docs/api","via":"neighbor"}]},{"site":"swr","path":"/docs/api","title":"API","summary":"Complete API reference for SWR hooks and utilities.","outbound":[{"site":"swr","path":"/docs/advanced/understanding"},{"site":"swr","path":"/docs/arguments"},{"site":"swr","path":"/docs/conditional-fetching"},{"site":"swr","path":"/docs/data-fetching"},{"site":"swr","path":"/docs/global-configuration"},{"site":"swr","path":"/docs/middleware"},{"site":"swr","path":"/docs/mutation"},{"site":"swr","path":"/docs/revalidation"},{"site":"swr","path":"/docs/suspense"},{"site":"swr","path":"/docs/with-nextjs"}],"inbound":[{"site":"swr","path":"/docs/advanced/performance"},{"site":"swr","path":"/docs/error-handling"},{"site":"swr","path":"/docs/global-configuration"},{"site":"swr","path":"/docs/revalidation"}],"requires":[{"site":"swr","path":"/docs/getting-started"}],"neighbors":[{"site":"swr","path":"/docs/typescript","distance":0.1968},{"site":"swr","path":"/docs/getting-started","distance":0.206},{"site":"swr","path":"/docs/middleware","distance":0.2064},{"site":"swr","path":"/docs/data-fetching","distance":0.2079},{"site":"swr","path":"/docs/pagination","distance":0.2116}],"related":[{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side","via":"neighbor"},{"site":"swr","path":"/docs/typescript","via":"neighbor"},{"site":"swr","path":"/docs/getting-started","via":"requires"},{"site":"swr","path":"/docs/pagination","via":"neighbor"},{"site":"swr","path":"/docs/advanced/performance","via":"neighbor"},{"site":"swr","path":"/docs/error-handling","via":"neighbor"}]},{"site":"swr","path":"/docs/arguments","title":"Arguments","summary":"Pass arguments to SWR fetcher functions.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr"},{"site":"swr","path":"/docs/advanced/cache"},{"site":"swr","path":"/docs/api"},{"site":"swr","path":"/docs/data-fetching"}],"requires":[{"site":"swr","path":"/docs/getting-started"}],"neighbors":[{"site":"swr","path":"/docs/data-fetching","distance":0.2325},{"site":"swr","path":"/docs/typescript","distance":0.2909},{"site":"swr","path":"/docs/api","distance":0.2913},{"site":"swr","path":"/docs/middleware","distance":0.321},{"site":"swr","path":"/docs/conditional-fetching","distance":0.3319}],"related":[{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","via":"inbound"},{"site":"swr","path":"/docs/getting-started","via":"requires"},{"site":"swr","path":"/docs/data-fetching","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side","via":"neighbor"},{"site":"swr","path":"/docs/typescript","via":"neighbor"},{"site":"swr","path":"/docs/api","via":"neighbor"},{"site":"swr","path":"/docs/middleware","via":"neighbor"}]},{"site":"swr","path":"/docs/conditional-fetching","title":"Conditional Fetching","summary":"Conditionally fetch data based on dependencies or user state.","outbound":[],"inbound":[{"site":"swr","path":"/docs/api"}],"requires":[{"site":"swr","path":"/docs/data-fetching"}],"neighbors":[{"site":"swr","path":"/docs/data-fetching","distance":0.225},{"site":"swr","path":"/docs/suspense","distance":0.2697},{"site":"swr","path":"/docs/prefetching","distance":0.291},{"site":"swr","path":"/docs/typescript","distance":0.2936},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side","distance":0.2988}],"related":[{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side","via":"neighbor"},{"site":"swr","path":"/docs/data-fetching","via":"requires"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","via":"neighbor"},{"site":"swr","path":"/docs/suspense","via":"neighbor"},{"site":"swr","path":"/docs/prefetching","via":"neighbor"},{"site":"swr","path":"/docs/typescript","via":"neighbor"},{"site":"swr","path":"/docs/getting-started","via":"neighbor"}]},{"site":"swr","path":"/docs/data-fetching","title":"Data Fetching","summary":"Fetch data with SWR using custom fetcher functions.","outbound":[{"site":"swr","path":"/docs/arguments"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr"},{"site":"swr","path":"/docs/api"},{"site":"swr","path":"/docs/error-handling"},{"site":"swr","path":"/docs/pagination"}],"requires":[{"site":"swr","path":"/docs/getting-started"}],"neighbors":[{"site":"swr","path":"/docs/typescript","distance":0.1837},{"site":"swr","path":"/docs/api","distance":0.2079},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side","distance":0.2089},{"site":"swr","path":"/docs/getting-started","distance":0.2105},{"site":"swr","path":"/docs/error-handling","distance":0.2185}],"related":[{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","via":"inbound"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side","via":"neighbor"},{"site":"swr","path":"/docs/typescript","via":"neighbor"},{"site":"swr","path":"/docs/getting-started","via":"requires"},{"site":"swr","path":"/docs/api","via":"neighbor"},{"site":"swr","path":"/docs/error-handling","via":"neighbor"},{"site":"swr","path":"/docs/conditional-fetching","via":"neighbor"}]},{"site":"swr","path":"/docs/error-handling","title":"Error Handling","summary":"Handle errors when fetching data with SWR.","outbound":[{"site":"swr","path":"/docs/api"},{"site":"swr","path":"/docs/data-fetching"},{"site":"swr","path":"/docs/global-configuration"},{"site":"swr","path":"/examples/error-handling"}],"inbound":[{"site":"swr","path":"/docs/typescript"}],"requires":[{"site":"swr","path":"/docs/getting-started"}],"neighbors":[{"site":"swr","path":"/examples/error-handling","distance":0.1852},{"site":"swr","path":"/docs/data-fetching","distance":0.2185},{"site":"swr","path":"/docs/api","distance":0.226},{"site":"swr","path":"/docs/typescript","distance":0.2477},{"site":"swr","path":"/docs/getting-started","distance":0.2892}],"related":[{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/error","via":"neighbor"},{"site":"swr","path":"/docs/getting-started","via":"requires"},{"site":"swr","path":"/docs/typescript","via":"neighbor"},{"site":"swr","path":"/docs/advanced/understanding","via":"neighbor"},{"site":"swr","path":"/examples/basic","via":"neighbor"},{"site":"swr","path":"/docs/suspense","via":"neighbor"}]},{"site":"swr","path":"/docs/getting-started","title":"Getting Started","summary":"Install and set up SWR for data fetching in React applications.","outbound":[{"site":"swr","path":"/docs/revalidation"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side"}],"requires":[],"neighbors":[{"site":"swr","path":"/docs/advanced/performance","distance":0.1501},{"site":"swr","path":"/docs/with-nextjs","distance":0.1581},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side","distance":0.1595},{"site":"swr","path":"/docs/advanced/understanding","distance":0.1648},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","distance":0.1829}],"related":[{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","via":"inbound"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side","via":"inbound"},{"site":"swr","path":"/docs/advanced/performance","via":"neighbor"},{"site":"swr","path":"/docs/with-nextjs","via":"neighbor"},{"site":"swr","path":"/docs/advanced/understanding","via":"neighbor"},{"site":"swr","path":"/docs/pagination","via":"neighbor"},{"site":"swr","path":"/blog/swr-v2","via":"neighbor"}]},{"site":"swr","path":"/docs/global-configuration","title":"Global Configuration","summary":"Configure default options for all SWR hooks.","outbound":[{"site":"swr","path":"/docs/advanced/cache"},{"site":"swr","path":"/docs/api"},{"site":"swr","path":"/docs/mutation"}],"inbound":[{"site":"swr","path":"/blog/swr-v1"},{"site":"swr","path":"/blog/swr-v2"},{"site":"swr","path":"/docs/advanced/cache"},{"site":"swr","path":"/docs/api"},{"site":"swr","path":"/docs/error-handling"},{"site":"swr","path":"/docs/mutation"},{"site":"swr","path":"/docs/with-nextjs"}],"requires":[{"site":"swr","path":"/docs/getting-started"}],"neighbors":[{"site":"swr","path":"/docs/api","distance":0.2285},{"site":"swr","path":"/docs/middleware","distance":0.2528},{"site":"swr","path":"/docs/advanced/cache","distance":0.2533},{"site":"swr","path":"/docs/with-nextjs","distance":0.2587},{"site":"swr","path":"/docs/typescript","distance":0.2743}],"related":[{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","via":"neighbor"},{"site":"swr","path":"/docs/getting-started","via":"requires"},{"site":"swr","path":"/docs/middleware","via":"neighbor"},{"site":"swr","path":"/docs/with-nextjs","via":"neighbor"},{"site":"swr","path":"/docs/typescript","via":"neighbor"},{"site":"swr","path":"/docs/advanced/performance","via":"neighbor"}]},{"site":"swr","path":"/docs/middleware","title":"Middleware","summary":"Extend SWR with custom middleware.","outbound":[{"site":"swr","path":"/docs/typescript"}],"inbound":[{"site":"swr","path":"/blog/swr-v1"},{"site":"swr","path":"/docs/api"}],"requires":[{"site":"swr","path":"/docs/getting-started"}],"neighbors":[{"site":"swr","path":"/docs/typescript","distance":0.2002},{"site":"swr","path":"/docs/api","distance":0.2064},{"site":"swr","path":"/docs/with-nextjs","distance":0.2408},{"site":"swr","path":"/docs/advanced/performance","distance":0.2449},{"site":"swr","path":"/docs/getting-started","distance":0.2471}],"related":[{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side","via":"neighbor"},{"site":"swr","path":"/docs/getting-started","via":"requires"},{"site":"swr","path":"/docs/api","via":"neighbor"},{"site":"swr","path":"/docs/with-nextjs","via":"neighbor"},{"site":"swr","path":"/docs/advanced/performance","via":"neighbor"},{"site":"swr","path":"/docs/global-configuration","via":"neighbor"}]},{"site":"swr","path":"/docs/mutation","title":"Mutation & Revalidation","summary":"Mutate cached data and trigger revalidation.","outbound":[{"site":"swr","path":"/docs/advanced/cache"},{"site":"swr","path":"/docs/global-configuration"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr"},{"site":"swr","path":"/blog/swr-v2"},{"site":"swr","path":"/docs/advanced/cache"},{"site":"swr","path":"/docs/api"},{"site":"swr","path":"/docs/global-configuration"}],"requires":[{"site":"swr","path":"/docs/data-fetching"}],"neighbors":[{"site":"swr","path":"/docs/api","distance":0.2256},{"site":"swr","path":"/docs/advanced/cache","distance":0.2257},{"site":"swr","path":"/blog/swr-v2","distance":0.2279},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","distance":0.2311},{"site":"swr","path":"/docs/pagination","distance":0.2407}],"related":[{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","via":"inbound"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data","via":"neighbor"},{"site":"swr","path":"/docs/data-fetching","via":"requires"},{"site":"swr","path":"/docs/api","via":"neighbor"},{"site":"swr","path":"/blog/swr-v2","via":"neighbor"},{"site":"swr","path":"/docs/pagination","via":"neighbor"},{"site":"swr","path":"/docs/revalidation","via":"neighbor"}]},{"site":"swr","path":"/docs/pagination","title":"Pagination","summary":"Implement pagination and infinite loading patterns with SWR.","outbound":[{"site":"swr","path":"/docs/data-fetching"},{"site":"swr","path":"/examples/infinite-loading"}],"inbound":[],"requires":[{"site":"swr","path":"/docs/data-fetching"}],"neighbors":[{"site":"swr","path":"/docs/getting-started","distance":0.193},{"site":"swr","path":"/docs/api","distance":0.2116},{"site":"swr","path":"/docs/with-nextjs","distance":0.218},{"site":"swr","path":"/docs/advanced/understanding","distance":0.2183},{"site":"swr","path":"/blog/swr-v2","distance":0.2187}],"related":[{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side","via":"neighbor"},{"site":"swr","path":"/docs/getting-started","via":"neighbor"},{"site":"swr","path":"/docs/api","via":"neighbor"},{"site":"swr","path":"/docs/with-nextjs","via":"neighbor"},{"site":"swr","path":"/docs/advanced/understanding","via":"neighbor"},{"site":"swr","path":"/blog/swr-v2","via":"neighbor"}]},{"site":"swr","path":"/docs/prefetching","title":"Prefetching Data","summary":"Prefetch data to improve perceived performance.","outbound":[{"site":"swr","path":"/docs/with-nextjs"}],"inbound":[{"site":"swr","path":"/blog/swr-v2"},{"site":"swr","path":"/docs/suspense"}],"requires":[{"site":"swr","path":"/docs/data-fetching"}],"neighbors":[{"site":"swr","path":"/docs/with-nextjs","distance":0.1265},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side","distance":0.1843},{"site":"swr","path":"/docs/suspense","distance":0.189},{"site":"swr","path":"/docs/getting-started","distance":0.2037},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","distance":0.2121}],"related":[{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/prefetching","via":"neighbor"},{"site":"swr","path":"/docs/suspense","via":"neighbor"},{"site":"swr","path":"/docs/data-fetching","via":"requires"},{"site":"swr","path":"/docs/getting-started","via":"neighbor"},{"site":"swr","path":"/docs/advanced/performance","via":"neighbor"},{"site":"swr","path":"/docs/advanced/understanding","via":"neighbor"}]},{"site":"swr","path":"/docs/revalidation","title":"Automatic Revalidation","summary":"Automatically revalidate stale data with focus, interval, and reconnect strategies.","outbound":[{"site":"swr","path":"/docs/api"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr"},{"site":"swr","path":"/blog/swr-v1"},{"site":"swr","path":"/docs/api"},{"site":"swr","path":"/docs/getting-started"}],"requires":[{"site":"swr","path":"/docs/getting-started"}],"neighbors":[{"site":"swr","path":"/docs/mutation","distance":0.2482},{"site":"swr","path":"/docs/api","distance":0.2615},{"site":"swr","path":"/docs/advanced/understanding","distance":0.2617},{"site":"swr","path":"/docs/advanced/performance","distance":0.2808},{"site":"swr","path":"/docs/getting-started","distance":0.2845}],"related":[{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","via":"inbound"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidatePath","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/revalidating","via":"neighbor"},{"site":"swr","path":"/docs/getting-started","via":"requires"},{"site":"swr","path":"/docs/mutation","via":"neighbor"},{"site":"swr","path":"/docs/advanced/understanding","via":"neighbor"},{"site":"swr","path":"/docs/advanced/performance","via":"neighbor"},{"site":"swr","path":"/docs/pagination","via":"neighbor"}]},{"site":"swr","path":"/docs/subscription","title":"Subscription","summary":"Subscribe to real-time data sources with SWR.","outbound":[{"site":"swr","path":"/docs/typescript"}],"inbound":[],"requires":[{"site":"swr","path":"/docs/getting-started"}],"neighbors":[{"site":"swr","path":"/examples/subscription","distance":0.1501},{"site":"swr","path":"/docs/typescript","distance":0.2588},{"site":"swr","path":"/docs/api","distance":0.2869},{"site":"swr","path":"/docs/getting-started","distance":0.2985},{"site":"swr","path":"/docs/data-fetching","distance":0.322}],"related":[{"site":"swr","path":"/examples/subscription","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","via":"neighbor"},{"site":"swr","path":"/docs/getting-started","via":"requires"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side","via":"neighbor"},{"site":"swr","path":"/docs/api","via":"neighbor"},{"site":"swr","path":"/docs/data-fetching","via":"neighbor"},{"site":"swr","path":"/docs/advanced/performance","via":"neighbor"}]},{"site":"swr","path":"/docs/suspense","title":"Suspense","summary":"Use SWR with React Suspense for declarative data fetching.","outbound":[{"site":"swr","path":"/docs/prefetching"},{"site":"swr","path":"/docs/with-nextjs"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr"},{"site":"swr","path":"/docs/api"}],"requires":[{"site":"swr","path":"/docs/getting-started"}],"neighbors":[{"site":"swr","path":"/docs/prefetching","distance":0.189},{"site":"swr","path":"/docs/with-nextjs","distance":0.2154},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","distance":0.2321},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side","distance":0.2424},{"site":"swr","path":"/docs/getting-started","distance":0.2518}],"related":[{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","via":"inbound"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next/examples/suspense-fallbacks","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching","via":"neighbor"},{"site":"swr","path":"/docs/getting-started","via":"requires"},{"site":"swr","path":"/docs/data-fetching","via":"neighbor"},{"site":"swr","path":"/docs/api","via":"neighbor"},{"site":"swr","path":"/docs/conditional-fetching","via":"neighbor"},{"site":"swr","path":"/docs/advanced/understanding","via":"neighbor"}]},{"site":"swr","path":"/docs/typescript","title":"TypeScript","summary":"Use SWR with TypeScript for type-safe data fetching.","outbound":[{"site":"swr","path":"/docs/error-handling"}],"inbound":[{"site":"swr","path":"/docs/middleware"},{"site":"swr","path":"/docs/subscription"}],"requires":[{"site":"swr","path":"/docs/getting-started"}],"neighbors":[{"site":"swr","path":"/docs/data-fetching","distance":0.1837},{"site":"swr","path":"/docs/api","distance":0.1968},{"site":"swr","path":"/docs/middleware","distance":0.2002},{"site":"swr","path":"/docs/getting-started","distance":0.2139},{"site":"swr","path":"/docs/with-nextjs","distance":0.2149}],"related":[{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side","via":"neighbor"},{"site":"swr","path":"/docs/data-fetching","via":"neighbor"},{"site":"swr","path":"/docs/api","via":"neighbor"},{"site":"swr","path":"/docs/getting-started","via":"requires"},{"site":"swr","path":"/docs/middleware","via":"neighbor"},{"site":"swr","path":"/docs/with-nextjs","via":"neighbor"}]},{"site":"swr","path":"/docs/with-nextjs","title":"Usage with Next.js","summary":"Integrate SWR with Next.js for server-side rendering and static generation.","outbound":[{"site":"swr","path":"/docs/global-configuration"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr"},{"site":"swr","path":"/blog/swr-v1"},{"site":"swr","path":"/blog/swr-v2"},{"site":"swr","path":"/docs/api"},{"site":"swr","path":"/docs/prefetching"},{"site":"swr","path":"/docs/suspense"}],"requires":[{"site":"swr","path":"/docs/getting-started"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","distance":0.11},{"site":"swr","path":"/docs/prefetching","distance":0.1265},{"site":"swr","path":"/docs/getting-started","distance":0.1581},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side","distance":0.1616},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching","distance":0.1897}],"related":[{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching","via":"neighbor"},{"site":"swr","path":"/docs/prefetching","via":"neighbor"},{"site":"swr","path":"/docs/getting-started","via":"neighbor"},{"site":"swr","path":"/docs/advanced/performance","via":"neighbor"},{"site":"swr","path":"/blog/swr-v2","via":"neighbor"},{"site":"swr","path":"/docs/advanced/understanding","via":"neighbor"}]},{"site":"swr","path":"/examples/auth","title":"Authentication","summary":"Authentication state management with SWR.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"swr","path":"/examples/basic","distance":0.2411},{"site":"swr","path":"/examples/error-handling","distance":0.2591},{"site":"swr","path":"/examples/subscription","distance":0.2869},{"site":"swr","path":"/examples/optimistic-ui","distance":0.3486},{"site":"swr","path":"/examples/ssr","distance":0.3495}],"related":[{"site":"swr","path":"/examples/basic","via":"neighbor"},{"site":"swr","path":"/examples/error-handling","via":"neighbor"},{"site":"swr","path":"/examples/subscription","via":"neighbor"},{"site":"swr","path":"/examples/optimistic-ui","via":"neighbor"},{"site":"swr","path":"/examples/ssr","via":"neighbor"}]},{"site":"swr","path":"/examples/basic","title":"Basic Usage","summary":"Basic data fetching with SWR.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"swr","path":"/examples/subscription","distance":0.2028},{"site":"swr","path":"/docs/data-fetching","distance":0.2359},{"site":"swr","path":"/docs/getting-started","distance":0.2378},{"site":"swr","path":"/examples/auth","distance":0.2411},{"site":"swr","path":"/docs/typescript","distance":0.244}],"related":[{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","via":"neighbor"},{"site":"swr","path":"/examples/subscription","via":"neighbor"},{"site":"swr","path":"/docs/data-fetching","via":"neighbor"},{"site":"swr","path":"/docs/getting-started","via":"neighbor"},{"site":"swr","path":"/examples/auth","via":"neighbor"},{"site":"swr","path":"/docs/typescript","via":"neighbor"}]},{"site":"swr","path":"/examples/error-handling","title":"Error Handling","summary":"Error handling with SWR.","outbound":[],"inbound":[{"site":"swr","path":"/docs/error-handling"}],"requires":[],"neighbors":[{"site":"swr","path":"/docs/error-handling","distance":0.1852},{"site":"swr","path":"/examples/basic","distance":0.2572},{"site":"swr","path":"/examples/auth","distance":0.2591},{"site":"swr","path":"/examples/subscription","distance":0.3274},{"site":"swr","path":"/examples/infinite-loading","distance":0.3469}],"related":[{"site":"swr","path":"/docs/error-handling","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring/error-handling","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/error-handling","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/error","via":"neighbor"},{"site":"swr","path":"/examples/basic","via":"neighbor"},{"site":"swr","path":"/examples/auth","via":"neighbor"},{"site":"swr","path":"/examples/subscription","via":"neighbor"},{"site":"swr","path":"/examples/infinite-loading","via":"neighbor"}]},{"site":"swr","path":"/examples/infinite-loading","title":"Infinite Loading","summary":"Infinite scrolling with useSWRInfinite.","outbound":[],"inbound":[{"site":"swr","path":"/docs/pagination"}],"requires":[],"neighbors":[{"site":"swr","path":"/docs/pagination","distance":0.2596},{"site":"swr","path":"/examples/basic","distance":0.2819},{"site":"swr","path":"/docs/advanced/understanding","distance":0.3032},{"site":"swr","path":"/examples/ssr","distance":0.3186},{"site":"swr","path":"/examples/subscription","distance":0.3274}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading","via":"neighbor"},{"site":"swr","path":"/docs/pagination","via":"neighbor"},{"site":"swr","path":"/examples/basic","via":"neighbor"},{"site":"swr","path":"/docs/advanced/understanding","via":"neighbor"},{"site":"swr","path":"/examples/ssr","via":"neighbor"},{"site":"swr","path":"/examples/subscription","via":"neighbor"}]},{"site":"swr","path":"/examples/optimistic-ui","title":"Optimistic UI","summary":"Optimistic UI updates with SWR mutation.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"swr","path":"/examples/basic","distance":0.305},{"site":"swr","path":"/examples/infinite-loading","distance":0.3366},{"site":"swr","path":"/blog/swr-v2","distance":0.3428},{"site":"swr","path":"/examples/auth","distance":0.3486},{"site":"swr","path":"/examples/subscription","distance":0.3492}],"related":[{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","via":"neighbor"},{"site":"swr","path":"/examples/basic","via":"neighbor"},{"site":"swr","path":"/examples/infinite-loading","via":"neighbor"},{"site":"swr","path":"/blog/swr-v2","via":"neighbor"},{"site":"swr","path":"/examples/auth","via":"neighbor"},{"site":"swr","path":"/examples/subscription","via":"neighbor"}]},{"site":"swr","path":"/examples/ssr","title":"Next.js SSR","summary":"Server-side rendering with SWR and Next.js.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/server-side-rendering","distance":0.2496},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/client-side-rendering","distance":0.2743},{"site":"swr","path":"/docs/with-nextjs","distance":0.275},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","distance":0.2937},{"site":"swr","path":"/examples/basic","distance":0.2982}],"related":[{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/server-side-rendering","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/client-side-rendering","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering","via":"neighbor"},{"site":"swr","path":"/docs/with-nextjs","via":"neighbor"},{"site":"swr","path":"/examples/basic","via":"neighbor"},{"site":"swr","path":"/examples/infinite-loading","via":"neighbor"},{"site":"swr","path":"/docs/suspense","via":"neighbor"},{"site":"swr","path":"/docs/prefetching","via":"neighbor"}]},{"site":"swr","path":"/examples/subscription","title":"Subscription","summary":"Real-time data subscription with SWR.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"swr","path":"/docs/subscription","distance":0.1501},{"site":"swr","path":"/examples/basic","distance":0.2028},{"site":"swr","path":"/examples/auth","distance":0.2869},{"site":"swr","path":"/docs/typescript","distance":0.3273},{"site":"swr","path":"/examples/error-handling","distance":0.3274}],"related":[{"site":"swr","path":"/docs/subscription","via":"neighbor"},{"site":"swr","path":"/examples/basic","via":"neighbor"},{"site":"swr","path":"/examples/auth","via":"neighbor"},{"site":"swr","path":"/docs/typescript","via":"neighbor"},{"site":"swr","path":"/examples/error-handling","via":"neighbor"}]},{"site":"turborepo","path":"/docs","title":"Introduction","summary":"Learn what Turborepo is, how it solves monorepo scaling problems, and how to navigate the documentation.","outbound":[{"site":"turborepo","path":"/docs/core-concepts/remote-caching"},{"site":"turborepo","path":"/docs/guides/single-package-workspaces"},{"site":"vercel-docs","path":"/docs/glossary"}],"inbound":[],"requires":[],"neighbors":[{"site":"turborepo","path":"/docs/guides/single-package-workspaces","distance":0.1595},{"site":"turborepo","path":"/docs/crafting-your-repository","distance":0.1608},{"site":"turborepo","path":"/docs/community","distance":0.1646},{"site":"turborepo","path":"/docs/crafting-your-repository/understanding-your-repository","distance":0.1684},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","distance":0.1727}],"related":[]},{"site":"turborepo","path":"/docs/acknowledgments","title":"Acknowledgements","summary":"Credits and thanks to the developers, build systems, and monorepo tools that inspired Turborepo.","outbound":[],"inbound":[],"requires":[{"site":"turborepo","path":"/docs"}],"neighbors":[{"site":"turborepo","path":"/docs/community","distance":0.0658},{"site":"turborepo","path":"/docs","distance":0.213},{"site":"turborepo","path":"/docs/guides/tools","distance":0.2402},{"site":"turborepo","path":"/docs/reference","distance":0.2764},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","distance":0.2788}],"related":[{"site":"turborepo","path":"/docs/community","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools","via":"neighbor"},{"site":"turborepo","path":"/docs/reference","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","via":"neighbor"},{"site":"turborepo","path":"/docs/guides","via":"neighbor"}]},{"site":"turborepo","path":"/docs/community","title":"Community","summary":"Find ways to contribute, ask questions, and connect with other Turborepo developers.","outbound":[],"inbound":[],"requires":[{"site":"turborepo","path":"/docs"}],"neighbors":[{"site":"turborepo","path":"/docs/acknowledgments","distance":0.0658},{"site":"turborepo","path":"/docs","distance":0.1646},{"site":"turborepo","path":"/docs/guides/tools","distance":0.2292},{"site":"turborepo","path":"/docs/guides","distance":0.2444},{"site":"turborepo","path":"/docs/getting-started/examples","distance":0.2449}],"related":[{"site":"turborepo","path":"/docs/acknowledgments","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools","via":"neighbor"},{"site":"turborepo","path":"/docs/guides","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started/examples","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/understanding-your-repository","via":"neighbor"}]},{"site":"turborepo","path":"/docs/core-concepts","title":"Core concepts","summary":"Explore the foundational concepts that power Turborepo's monorepo tooling.","outbound":[],"inbound":[{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci"}],"requires":[{"site":"turborepo","path":"/docs"}],"neighbors":[{"site":"turborepo","path":"/docs","distance":0.1951},{"site":"turborepo","path":"/docs/crafting-your-repository","distance":0.1962},{"site":"turborepo","path":"/docs/crafting-your-repository/understanding-your-repository","distance":0.2094},{"site":"turborepo","path":"/docs/getting-started","distance":0.2243},{"site":"turborepo","path":"/docs/reference","distance":0.2297}],"related":[{"site":"turborepo","path":"/docs/crafting-your-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/understanding-your-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started","via":"neighbor"},{"site":"turborepo","path":"/docs/reference","via":"neighbor"},{"site":"turborepo","path":"/docs/guides","via":"neighbor"}]},{"site":"turborepo","path":"/docs/core-concepts/internal-packages","title":"Internal Packages","summary":"Understand how internal packages work and their compilation strategies for sharing code across your monorepo.","outbound":[{"site":"turborepo","path":"/docs/crafting-your-repository/creating-an-internal-package"},{"site":"turborepo","path":"/docs/guides/publishing-libraries"},{"site":"turborepo","path":"/docs/guides/tools/typescript"},{"site":"turborepo","path":"/docs/reference/configuration"}],"inbound":[{"site":"turborepo","path":"/docs/core-concepts/package-and-task-graph"},{"site":"turborepo","path":"/docs/core-concepts/package-types"},{"site":"turborepo","path":"/docs/crafting-your-repository/creating-an-internal-package"},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository"},{"site":"turborepo","path":"/docs/crafting-your-repository/upgrading"},{"site":"turborepo","path":"/docs/guides/frameworks/nextjs"},{"site":"turborepo","path":"/docs/guides/frameworks/nuxt"},{"site":"turborepo","path":"/docs/guides/frameworks/rsbuild"},{"site":"turborepo","path":"/docs/guides/frameworks/sveltekit"},{"site":"turborepo","path":"/docs/guides/frameworks/vite"},{"site":"turborepo","path":"/docs/guides/tools/oxc"},{"site":"turborepo","path":"/docs/guides/tools/prisma"},{"site":"turborepo","path":"/docs/guides/tools/tailwind"},{"site":"turborepo","path":"/docs/guides/tools/typescript"},{"site":"turborepo","path":"/docs/reference/configuration"},{"site":"turborepo","path":"/docs/reference/run"}],"requires":[{"site":"turborepo","path":"/docs/core-concepts/package-types"}],"neighbors":[{"site":"turborepo","path":"/docs/crafting-your-repository/creating-an-internal-package","distance":0.1305},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","distance":0.188},{"site":"turborepo","path":"/docs/guides/publishing-libraries","distance":0.1881},{"site":"turborepo","path":"/docs/crafting-your-repository/managing-dependencies","distance":0.1891},{"site":"turborepo","path":"/docs/guides/tools/typescript","distance":0.2007}],"related":[{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/managing-dependencies","via":"neighbor"},{"site":"turborepo","path":"/docs/core-concepts/package-types","via":"requires"},{"site":"turborepo","path":"/docs/crafting-your-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/multi-language","via":"neighbor"}]},{"site":"turborepo","path":"/docs/core-concepts/package-and-task-graph","title":"Package and Task Graphs","summary":"Learn how Turborepo uses directed acyclic graphs to model package dependencies and task relationships.","outbound":[{"site":"turborepo","path":"/docs/core-concepts/internal-packages"},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository"}],"inbound":[{"site":"turborepo","path":"/docs/core-concepts/package-types"},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks"},{"site":"turborepo","path":"/docs/crafting-your-repository/creating-an-internal-package"},{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications"},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks"},{"site":"turborepo","path":"/docs/guides/tools/typescript"},{"site":"turborepo","path":"/docs/reference/run"}],"requires":[{"site":"turborepo","path":"/docs/core-concepts/internal-packages"}],"neighbors":[{"site":"turborepo","path":"/docs/crafting-your-repository/understanding-your-repository","distance":0.1582},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.1853},{"site":"turborepo","path":"/docs/reference/package-configurations","distance":0.205},{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications","distance":0.2267},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","distance":0.2268}],"related":[{"site":"turborepo","path":"/docs/crafting-your-repository/understanding-your-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/package-configurations","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","via":"neighbor"}]},{"site":"turborepo","path":"/docs/core-concepts/package-types","title":"Package types","summary":"Understand the difference between Application Packages and Library Packages in a workspace.","outbound":[{"site":"turborepo","path":"/docs/core-concepts/internal-packages"},{"site":"turborepo","path":"/docs/core-concepts/package-and-task-graph"}],"inbound":[{"site":"turborepo","path":"/docs/crafting-your-repository/creating-an-internal-package"},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables"},{"site":"turborepo","path":"/docs/guides/frameworks/framework-bindings"}],"requires":[{"site":"turborepo","path":"/docs/core-concepts"}],"neighbors":[{"site":"turborepo","path":"/docs/core-concepts/internal-packages","distance":0.237},{"site":"turborepo","path":"/docs/crafting-your-repository/creating-an-internal-package","distance":0.2465},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","distance":0.2739},{"site":"turborepo","path":"/docs/guides/tools/typescript","distance":0.299},{"site":"turborepo","path":"/docs/crafting-your-repository/managing-dependencies","distance":0.3092}],"related":[{"site":"turborepo","path":"/docs/crafting-your-repository/creating-an-internal-package","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/typescript","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/managing-dependencies","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/understanding-your-repository","via":"neighbor"}]},{"site":"turborepo","path":"/docs/core-concepts/remote-caching","title":"Remote Caching","summary":"Share a single Turborepo cache across your team and CI to avoid duplicated work.","outbound":[{"site":"turborepo","path":"/docs/crafting-your-repository/caching"},{"site":"turborepo","path":"/docs/getting-started/installation"},{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching"},{"site":"vercel-docs","path":"/docs/monorepos/turborepo"}],"inbound":[{"site":"turborepo","path":"/docs"},{"site":"turborepo","path":"/docs/crafting-your-repository/caching"},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci"},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks"},{"site":"turborepo","path":"/docs/guides/ai"},{"site":"turborepo","path":"/docs/guides/ci-vendors"},{"site":"turborepo","path":"/docs/guides/single-package-workspaces"},{"site":"turborepo","path":"/docs/guides/skipping-tasks"},{"site":"turborepo","path":"/docs/guides/tools/docker"},{"site":"turborepo","path":"/docs/reference/link"},{"site":"turborepo","path":"/docs/reference/scan"},{"site":"turborepo","path":"/docs/reference/system-environment-variables"}],"requires":[{"site":"turborepo","path":"/docs/crafting-your-repository/caching"}],"neighbors":[{"site":"vercel-docs","path":"/docs/monorepos/remote-caching","distance":0.1273},{"site":"turborepo","path":"/docs/crafting-your-repository/caching","distance":0.1298},{"site":"vercel-docs","path":"/docs/monorepos/turborepo","distance":0.1532},{"site":"turborepo","path":"/docs/guides/ci-vendors/circleci","distance":0.1683},{"site":"turborepo","path":"/docs/guides/ci-vendors/gitlab-ci","distance":0.1739}],"related":[{"site":"vercel-docs","path":"/docs/monorepos/remote-caching/external-ci-cd","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/ci-vendors/circleci","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/ci-vendors/gitlab-ci","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/ci-vendors","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/ci-vendors/travis-ci","via":"neighbor"}]},{"site":"turborepo","path":"/docs/crafting-your-repository","title":"Crafting your repository","summary":"Step-by-step guides for designing, building, and optimizing a monorepo with Turborepo.","outbound":[{"site":"turborepo","path":"/docs/guides"},{"site":"turborepo","path":"/docs/guides/single-package-workspaces"}],"inbound":[],"requires":[{"site":"turborepo","path":"/docs"}],"neighbors":[{"site":"turborepo","path":"/docs","distance":0.1608},{"site":"turborepo","path":"/docs/crafting-your-repository/understanding-your-repository","distance":0.1611},{"site":"turborepo","path":"/docs/getting-started","distance":0.1631},{"site":"turborepo","path":"/docs/guides","distance":0.1768},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","distance":0.1925}],"related":[{"site":"turborepo","path":"/docs/getting-started","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/core-concepts","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started/installation","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools","via":"neighbor"}]},{"site":"turborepo","path":"/docs/crafting-your-repository/caching","title":"Caching","summary":"Configure task caching to avoid repeating work, using fingerprinting for inputs and restoring outputs from cache.","outbound":[{"site":"turborepo","path":"/docs/core-concepts/remote-caching"},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci"},{"site":"turborepo","path":"/docs/getting-started/installation"},{"site":"turborepo","path":"/docs/reference/configuration"},{"site":"turborepo","path":"/docs/reference/package-configurations"},{"site":"turborepo","path":"/docs/reference/query"},{"site":"turborepo","path":"/docs/reference/run"}],"inbound":[{"site":"turborepo","path":"/docs/core-concepts/remote-caching"},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks"},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks"},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository"},{"site":"turborepo","path":"/docs/guides/publishing-libraries"},{"site":"turborepo","path":"/docs/guides/skipping-tasks"},{"site":"turborepo","path":"/docs/guides/tools/jest"},{"site":"turborepo","path":"/docs/guides/tools/vitest"},{"site":"turborepo","path":"/docs/reference/configuration"},{"site":"turborepo","path":"/docs/reference/query"}],"requires":[{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks"}],"neighbors":[{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","distance":0.1055},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.1091},{"site":"turborepo","path":"/docs/core-concepts/remote-caching","distance":0.1298},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","distance":0.1397},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.1593}],"related":[{"site":"vercel-docs","path":"/docs/monorepos/turborepo","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","via":"neighbor"}]},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","title":"Configuring tasks","summary":"Define task dependencies, outputs, and inputs in turbo.json to orchestrate your repository's workflows.","outbound":[{"site":"turborepo","path":"/docs/core-concepts/package-and-task-graph"},{"site":"turborepo","path":"/docs/crafting-your-repository/caching"},{"site":"turborepo","path":"/docs/getting-started/installation"},{"site":"turborepo","path":"/docs/reference/configuration"},{"site":"turborepo","path":"/docs/reference/globs"},{"site":"turborepo","path":"/docs/reference/package-configurations"},{"site":"turborepo","path":"/docs/reference/run"}],"inbound":[{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci"},{"site":"turborepo","path":"/docs/crafting-your-repository/creating-an-internal-package"},{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications"},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks"},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository"},{"site":"turborepo","path":"/docs/guides/tools/biome"},{"site":"turborepo","path":"/docs/guides/tools/oxc"},{"site":"turborepo","path":"/docs/guides/tools/typescript"},{"site":"turborepo","path":"/docs/guides/tools/vitest"},{"site":"turborepo","path":"/docs/reference/package-configurations"}],"requires":[{"site":"turborepo","path":"/docs/crafting-your-repository/creating-an-internal-package"}],"neighbors":[{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","distance":0.082},{"site":"turborepo","path":"/docs/crafting-your-repository/caching","distance":0.1091},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.1119},{"site":"turborepo","path":"/docs/reference/package-configurations","distance":0.1179},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","distance":0.13}],"related":[{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications","via":"neighbor"}]},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","title":"Constructing CI","summary":"Set up CI pipelines with Remote Caching, task filtering, Docker support, and affected package detection for maximum speed.","outbound":[{"site":"turborepo","path":"/docs/core-concepts"},{"site":"turborepo","path":"/docs/core-concepts/remote-caching"},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks"},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks"},{"site":"turborepo","path":"/docs/getting-started/installation"},{"site":"turborepo","path":"/docs/guides"},{"site":"turborepo","path":"/docs/guides/ci-vendors"},{"site":"turborepo","path":"/docs/guides/skipping-tasks"},{"site":"turborepo","path":"/docs/guides/tools/docker"},{"site":"turborepo","path":"/docs/reference/configuration"},{"site":"turborepo","path":"/docs/reference/generate"},{"site":"turborepo","path":"/docs/reference/prune"},{"site":"turborepo","path":"/docs/reference/query"},{"site":"turborepo","path":"/docs/reference/run"},{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching"}],"inbound":[{"site":"turborepo","path":"/docs/crafting-your-repository/caching"},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository"},{"site":"turborepo","path":"/docs/getting-started/installation"},{"site":"turborepo","path":"/docs/reference/turbo-ignore"}],"requires":[{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables"}],"neighbors":[{"site":"turborepo","path":"/docs/crafting-your-repository/caching","distance":0.1055},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","distance":0.1165},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.1331},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.1399},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","distance":0.1423}],"related":[{"site":"vercel-docs","path":"/docs/monorepos/turborepo","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/caching","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications","via":"neighbor"}]},{"site":"turborepo","path":"/docs/crafting-your-repository/creating-an-internal-package","title":"Creating an Internal Package","summary":"Build a new internal package from scratch to share code across your monorepo.","outbound":[{"site":"turborepo","path":"/docs/core-concepts/internal-packages"},{"site":"turborepo","path":"/docs/core-concepts/package-and-task-graph"},{"site":"turborepo","path":"/docs/core-concepts/package-types"},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks"},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository"},{"site":"turborepo","path":"/docs/getting-started/installation"},{"site":"turborepo","path":"/docs/reference/prune"}],"inbound":[{"site":"turborepo","path":"/docs/core-concepts/internal-packages"},{"site":"turborepo","path":"/docs/crafting-your-repository/managing-dependencies"},{"site":"turborepo","path":"/docs/guides/publishing-libraries"}],"requires":[{"site":"turborepo","path":"/docs/crafting-your-repository/managing-dependencies"},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository"}],"neighbors":[{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","distance":0.12},{"site":"turborepo","path":"/docs/core-concepts/internal-packages","distance":0.1305},{"site":"turborepo","path":"/docs/guides/publishing-libraries","distance":0.1611},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.1726},{"site":"turborepo","path":"/docs/crafting-your-repository/managing-dependencies","distance":0.1816}],"related":[{"site":"turborepo","path":"/docs/guides/publishing-libraries","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/managing-dependencies","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/typescript","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/package-configurations","via":"neighbor"}]},{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications","title":"Developing applications","summary":"Run long-lived development tasks with the terminal UI, watch mode, and package filtering.","outbound":[{"site":"turborepo","path":"/docs/core-concepts/package-and-task-graph"},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks"},{"site":"turborepo","path":"/docs/reference/configuration"},{"site":"turborepo","path":"/docs/reference/create-turbo"},{"site":"turborepo","path":"/docs/reference/watch"}],"inbound":[{"site":"turborepo","path":"/docs/guides/publishing-libraries"},{"site":"turborepo","path":"/docs/guides/tools/jest"},{"site":"turborepo","path":"/docs/guides/tools/vitest"}],"requires":[{"site":"turborepo","path":"/docs/crafting-your-repository/caching"}],"neighbors":[{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.1352},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","distance":0.1362},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.1405},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","distance":0.1432},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","distance":0.162}],"related":[{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","via":"neighbor"}]},{"site":"turborepo","path":"/docs/crafting-your-repository/managing-dependencies","title":"Managing dependencies","summary":"Install, organize, and maintain external and internal dependencies across packages in your workspace.","outbound":[{"site":"turborepo","path":"/docs/crafting-your-repository/creating-an-internal-package"},{"site":"turborepo","path":"/docs/reference/prune"}],"inbound":[{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository"},{"site":"turborepo","path":"/docs/guides/migrating-from-nx"},{"site":"turborepo","path":"/docs/guides/tools/typescript"},{"site":"turborepo","path":"/docs/guides/tools/vitest"}],"requires":[{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository"}],"neighbors":[{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","distance":0.1333},{"site":"turborepo","path":"/docs/crafting-your-repository/creating-an-internal-package","distance":0.1816},{"site":"turborepo","path":"/docs/core-concepts/internal-packages","distance":0.1891},{"site":"turborepo","path":"/docs/guides/tools/typescript","distance":0.2076},{"site":"turborepo","path":"/docs/guides/multi-language","distance":0.2162}],"related":[{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/core-concepts/internal-packages","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/typescript","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/multi-language","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","via":"neighbor"}]},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","title":"Running tasks","summary":"Execute tasks using the turbo CLI with scripts, global turbo, filters, and multi-task parallelization.","outbound":[{"site":"turborepo","path":"/docs/core-concepts/package-and-task-graph"},{"site":"turborepo","path":"/docs/core-concepts/remote-caching"},{"site":"turborepo","path":"/docs/crafting-your-repository/caching"},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks"},{"site":"turborepo","path":"/docs/getting-started/installation"},{"site":"turborepo","path":"/docs/reference/configuration"},{"site":"turborepo","path":"/docs/reference/run"}],"inbound":[{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci"},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository"},{"site":"turborepo","path":"/docs/crafting-your-repository/understanding-your-repository"},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository"},{"site":"turborepo","path":"/docs/getting-started/installation"},{"site":"turborepo","path":"/docs/guides/publishing-libraries"},{"site":"turborepo","path":"/docs/reference/package-configurations"},{"site":"turborepo","path":"/docs/reference/run"}],"requires":[{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks"}],"neighbors":[{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.082},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.1152},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","distance":0.1165},{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications","distance":0.1362},{"site":"turborepo","path":"/docs/crafting-your-repository/caching","distance":0.1397}],"related":[{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","via":"neighbor"}]},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","title":"Structuring a repository","summary":"Set up a multi-package workspace with the directory structure, package.json files, and lockfile that Turborepo expects.","outbound":[{"site":"turborepo","path":"/docs/core-concepts/internal-packages"},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks"},{"site":"turborepo","path":"/docs/crafting-your-repository/managing-dependencies"},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks"},{"site":"turborepo","path":"/docs/getting-started/installation"},{"site":"turborepo","path":"/docs/guides/single-package-workspaces"},{"site":"turborepo","path":"/docs/guides/tools/typescript"},{"site":"vercel-docs","path":"/docs/glossary"}],"inbound":[{"site":"turborepo","path":"/docs/core-concepts/package-and-task-graph"},{"site":"turborepo","path":"/docs/crafting-your-repository/creating-an-internal-package"},{"site":"turborepo","path":"/docs/crafting-your-repository/upgrading"},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository"},{"site":"turborepo","path":"/docs/guides/migrating-from-nx"},{"site":"turborepo","path":"/docs/guides/tools/typescript"},{"site":"turborepo","path":"/docs/guides/tools/vitest"},{"site":"turborepo","path":"/docs/messages/recursive-turbo-invocations"},{"site":"turborepo","path":"/docs/messages/unnecessary-package-task-syntax"},{"site":"turborepo","path":"/docs/reference/configuration"}],"requires":[{"site":"turborepo","path":"/docs/crafting-your-repository"}],"neighbors":[{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.1178},{"site":"turborepo","path":"/docs/crafting-your-repository/creating-an-internal-package","distance":0.12},{"site":"turborepo","path":"/docs/crafting-your-repository/managing-dependencies","distance":0.1333},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.1416},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","distance":0.1562}],"related":[{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/creating-an-internal-package","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/publishing-libraries","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/package-configurations","via":"neighbor"}]},{"site":"turborepo","path":"/docs/crafting-your-repository/understanding-your-repository","title":"Understanding your repository","summary":"Use turbo devtools, ls, run, and query to visualize and inspect your monorepo's package and task graphs.","outbound":[{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks"},{"site":"turborepo","path":"/docs/reference/devtools"}],"inbound":[],"requires":[{"site":"turborepo","path":"/docs/crafting-your-repository"}],"neighbors":[{"site":"turborepo","path":"/docs/core-concepts/package-and-task-graph","distance":0.1582},{"site":"turborepo","path":"/docs/crafting-your-repository","distance":0.1611},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.1645},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","distance":0.1669},{"site":"turborepo","path":"/docs","distance":0.1684}],"related":[{"site":"turborepo","path":"/docs/core-concepts/package-and-task-graph","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","via":"neighbor"}]},{"site":"turborepo","path":"/docs/crafting-your-repository/upgrading","title":"Upgrading","summary":"Migrate from Turborepo 1.x to 2.0 using codemods and handle breaking changes.","outbound":[{"site":"turborepo","path":"/docs/core-concepts/internal-packages"},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository"},{"site":"turborepo","path":"/docs/reference/configuration"},{"site":"turborepo","path":"/docs/reference/eslint-config-turbo"},{"site":"turborepo","path":"/docs/reference/run"}],"inbound":[],"requires":[{"site":"turborepo","path":"/docs/crafting-your-repository"}],"neighbors":[{"site":"turborepo","path":"/docs/reference/turbo-codemod","distance":0.176},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.192},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","distance":0.2275},{"site":"turborepo","path":"/docs/support-policy","distance":0.2289},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","distance":0.2392}],"related":[{"site":"turborepo","path":"/docs/reference/turbo-codemod","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","via":"neighbor"},{"site":"turborepo","path":"/docs/support-policy","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","via":"neighbor"}]},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","title":"Using environment variables","summary":"Account for environment variables in task hashing, configure environment modes, and handle .env files.","outbound":[{"site":"turborepo","path":"/docs/core-concepts/package-types"},{"site":"turborepo","path":"/docs/reference/configuration"},{"site":"turborepo","path":"/docs/reference/eslint-config-turbo"},{"site":"turborepo","path":"/docs/reference/run"},{"site":"vercel-docs","path":"/docs/environment-variables"}],"inbound":[{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository"},{"site":"turborepo","path":"/docs/guides/tools/playwright"},{"site":"turborepo","path":"/docs/reference/configuration"},{"site":"turborepo","path":"/docs/reference/run"}],"requires":[{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications"}],"neighbors":[{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.13},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","distance":0.1423},{"site":"turborepo","path":"/docs/reference/system-environment-variables","distance":0.1474},{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications","distance":0.162},{"site":"turborepo","path":"/docs/reference/package-configurations","distance":0.1632}],"related":[{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/system-environment-variables","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/package-configurations","via":"neighbor"}]},{"site":"turborepo","path":"/docs/getting-started","title":"Getting started","summary":"Choose a learning path to start using Turborepo in a new or existing repository.","outbound":[{"site":"turborepo","path":"/docs/getting-started/installation"}],"inbound":[],"requires":[{"site":"turborepo","path":"/docs"}],"neighbors":[{"site":"turborepo","path":"/docs/getting-started/installation","distance":0.15},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.1586},{"site":"turborepo","path":"/docs/crafting-your-repository","distance":0.1631},{"site":"turborepo","path":"/docs/getting-started/examples","distance":0.1667},{"site":"turborepo","path":"/docs/reference/create-turbo","distance":0.1782}],"related":[{"site":"turborepo","path":"/docs/crafting-your-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/create-turbo","via":"neighbor"},{"site":"turborepo","path":"/docs/reference","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/understanding-your-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/core-concepts","via":"neighbor"}]},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","title":"Add to an existing repository","summary":"Incrementally adopt Turborepo in an existing single-package or multi-package repository.","outbound":[{"site":"turborepo","path":"/docs/crafting-your-repository/caching"},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci"},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks"},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository"},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables"},{"site":"turborepo","path":"/docs/getting-started/installation"},{"site":"turborepo","path":"/docs/guides/single-package-workspaces"},{"site":"turborepo","path":"/docs/reference/configuration"},{"site":"turborepo","path":"/docs/reference/run"},{"site":"vercel-docs","path":"/docs/glossary"}],"inbound":[{"site":"turborepo","path":"/docs/messages/package-task-in-single-package-workspace"}],"requires":[{"site":"turborepo","path":"/docs/getting-started"},{"site":"turborepo","path":"/docs/getting-started/installation"}],"neighbors":[{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.1119},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","distance":0.1129},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","distance":0.1152},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","distance":0.1178},{"site":"turborepo","path":"/docs/getting-started/installation","distance":0.1258}],"related":[{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/understanding-your-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/creating-an-internal-package","via":"neighbor"}]},{"site":"turborepo","path":"/docs/getting-started/editor-integration","title":"Editor integration","summary":"Set up JSON Schema validation, ESLint integration, and the Turborepo LSP in your editor.","outbound":[{"site":"turborepo","path":"/docs/reference/eslint-config-turbo"},{"site":"turborepo","path":"/docs/reference/package-configurations"}],"inbound":[],"requires":[{"site":"turborepo","path":"/docs/getting-started/installation"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/tools/eslint","distance":0.204},{"site":"turborepo","path":"/docs/reference/eslint-config-turbo","distance":0.2154},{"site":"turborepo","path":"/docs/reference/eslint-plugin-turbo","distance":0.2256},{"site":"turborepo","path":"/docs/guides/tools/typescript","distance":0.2419},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","distance":0.2468}],"related":[{"site":"turborepo","path":"/docs/getting-started/installation","via":"requires"},{"site":"turborepo","path":"/docs/guides/tools/eslint","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/eslint-plugin-turbo","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/typescript","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","via":"neighbor"}]},{"site":"turborepo","path":"/docs/getting-started/examples","title":"Start with an example","summary":"Browse core-maintained and community examples to bootstrap a Turborepo with your favorite tools.","outbound":[],"inbound":[{"site":"turborepo","path":"/docs/getting-started/installation"},{"site":"turborepo","path":"/docs/support-policy"}],"requires":[{"site":"turborepo","path":"/docs/getting-started"}],"neighbors":[{"site":"turborepo","path":"/docs/reference/create-turbo","distance":0.1025},{"site":"turborepo","path":"/docs/getting-started","distance":0.1667},{"site":"turborepo","path":"/docs/getting-started/installation","distance":0.1933},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.2255},{"site":"turborepo","path":"/docs/crafting-your-repository","distance":0.2349}],"related":[{"site":"turborepo","path":"/docs/reference/create-turbo","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started/installation","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","via":"neighbor"}]},{"site":"turborepo","path":"/docs/getting-started/installation","title":"Installation","summary":"Install Turborepo globally and in your repository using your preferred package manager.","outbound":[{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci"},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks"},{"site":"turborepo","path":"/docs/getting-started/examples"},{"site":"turborepo","path":"/docs/guides/generating-code"},{"site":"turborepo","path":"/docs/reference/run"}],"inbound":[{"site":"turborepo","path":"/docs/core-concepts/remote-caching"},{"site":"turborepo","path":"/docs/crafting-your-repository/caching"},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks"},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci"},{"site":"turborepo","path":"/docs/crafting-your-repository/creating-an-internal-package"},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks"},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository"},{"site":"turborepo","path":"/docs/getting-started"},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository"},{"site":"turborepo","path":"/docs/guides/frameworks/nextjs"},{"site":"turborepo","path":"/docs/guides/single-package-workspaces"},{"site":"turborepo","path":"/docs/guides/tools/eslint"},{"site":"turborepo","path":"/docs/guides/tools/jest"},{"site":"turborepo","path":"/docs/guides/tools/storybook"},{"site":"turborepo","path":"/docs/guides/tools/tailwind"},{"site":"turborepo","path":"/docs/guides/tools/vitest"},{"site":"turborepo","path":"/docs/reference/bin"}],"requires":[{"site":"turborepo","path":"/docs/getting-started"}],"neighbors":[{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.1258},{"site":"turborepo","path":"/docs/getting-started","distance":0.15},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","distance":0.1567},{"site":"turborepo","path":"/docs/reference/create-turbo","distance":0.1583},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","distance":0.1611}],"related":[{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/create-turbo","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/understanding-your-repository","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides","title":"Guides","summary":"Browse guides for frameworks, CI providers, tools, and common use cases in Turborepo.","outbound":[],"inbound":[{"site":"turborepo","path":"/docs/crafting-your-repository"},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci"}],"requires":[{"site":"turborepo","path":"/docs"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/tools","distance":0.1328},{"site":"turborepo","path":"/docs/crafting-your-repository","distance":0.1768},{"site":"turborepo","path":"/docs/guides/ai","distance":0.1934},{"site":"turborepo","path":"/docs/guides/frameworks","distance":0.2008},{"site":"turborepo","path":"/docs/reference","distance":0.2204}],"related":[{"site":"turborepo","path":"/docs/crafting-your-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/reference","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","via":"neighbor"},{"site":"turborepo","path":"/docs/core-concepts","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides/ai","title":"Using AI with Turborepo","summary":"Optimize your AI coding assistant workflows with Turborepo features like agent skills, task descriptions, and machine-readable docs.","outbound":[{"site":"turborepo","path":"/docs/core-concepts/remote-caching"}],"inbound":[],"requires":[{"site":"turborepo","path":"/docs/guides"}],"neighbors":[{"site":"turborepo","path":"/docs","distance":0.1889},{"site":"turborepo","path":"/docs/guides","distance":0.1934},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","distance":0.2059},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","distance":0.2085},{"site":"turborepo","path":"/docs/crafting-your-repository/understanding-your-repository","distance":0.2188}],"related":[{"site":"turborepo","path":"/docs/guides/single-package-workspaces","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/understanding-your-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides/ci-vendors","title":"Continuous Integration","summary":"Browse CI provider recipes for using Turborepo with Remote Caching in your pipelines.","outbound":[{"site":"turborepo","path":"/docs/core-concepts/remote-caching"}],"inbound":[{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci"}],"requires":[{"site":"turborepo","path":"/docs/guides"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/ci-vendors/gitlab-ci","distance":0.143},{"site":"turborepo","path":"/docs/guides/ci-vendors/circleci","distance":0.1464},{"site":"turborepo","path":"/docs/guides/ci-vendors/github-actions","distance":0.1536},{"site":"turborepo","path":"/docs/guides/ci-vendors/travis-ci","distance":0.1581},{"site":"turborepo","path":"/docs/core-concepts/remote-caching","distance":0.1776}],"related":[{"site":"vercel-docs","path":"/docs/monorepos/remote-caching/external-ci-cd","via":"neighbor"},{"site":"vercel-docs","path":"/docs/monorepos/turborepo","via":"neighbor"},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/caching","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides/ci-vendors/buildkite","title":"Buildkite","summary":"Configure Buildkite pipelines to run Turborepo tasks with Remote Caching.","outbound":[{"site":"vercel-docs","path":"/docs/monorepos/remote-caching"}],"inbound":[],"requires":[{"site":"turborepo","path":"/docs/guides/ci-vendors"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/ci-vendors/gitlab-ci","distance":0.1678},{"site":"turborepo","path":"/docs/guides/ci-vendors/circleci","distance":0.1759},{"site":"turborepo","path":"/docs/guides/ci-vendors/github-actions","distance":0.2005},{"site":"turborepo","path":"/docs/guides/ci-vendors/travis-ci","distance":0.2021},{"site":"turborepo","path":"/docs/guides/ci-vendors","distance":0.2105}],"related":[{"site":"vercel-docs","path":"/docs/monorepos/remote-caching/external-ci-cd","via":"neighbor"},{"site":"vercel-docs","path":"/docs/monorepos/turborepo","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/ci-vendors/gitlab-ci","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/ci-vendors/circleci","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/ci-vendors/github-actions","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/ci-vendors/travis-ci","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/caching","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides/ci-vendors/circleci","title":"CircleCI","summary":"Configure CircleCI workflows to run Turborepo tasks with Remote Caching.","outbound":[{"site":"vercel-docs","path":"/docs/monorepos/remote-caching"}],"inbound":[],"requires":[{"site":"turborepo","path":"/docs/guides/ci-vendors"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/ci-vendors/gitlab-ci","distance":0.0837},{"site":"turborepo","path":"/docs/guides/ci-vendors/travis-ci","distance":0.0883},{"site":"turborepo","path":"/docs/guides/ci-vendors","distance":0.1464},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching/external-ci-cd","distance":0.1496},{"site":"turborepo","path":"/docs/guides/ci-vendors/github-actions","distance":0.1545}],"related":[{"site":"vercel-docs","path":"/docs/monorepos/remote-caching/external-ci-cd","via":"neighbor"},{"site":"vercel-docs","path":"/docs/monorepos/turborepo","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/ci-vendors/gitlab-ci","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/ci-vendors/travis-ci","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/ci-vendors/github-actions","via":"neighbor"},{"site":"turborepo","path":"/docs/core-concepts/remote-caching","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/caching","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides/ci-vendors/github-actions","title":"GitHub Actions","summary":"Configure GitHub Actions workflows to run Turborepo tasks with Remote Caching.","outbound":[{"site":"vercel-docs","path":"/docs/monorepos/remote-caching"},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching/external-ci-cd"}],"inbound":[],"requires":[{"site":"turborepo","path":"/docs/guides/ci-vendors"}],"neighbors":[{"site":"vercel-docs","path":"/docs/monorepos/remote-caching/external-ci-cd","distance":0.1418},{"site":"turborepo","path":"/docs/guides/ci-vendors","distance":0.1536},{"site":"turborepo","path":"/docs/guides/ci-vendors/gitlab-ci","distance":0.1545},{"site":"turborepo","path":"/docs/guides/ci-vendors/circleci","distance":0.1545},{"site":"turborepo","path":"/docs/guides/ci-vendors/travis-ci","distance":0.1684}],"related":[{"site":"vercel-docs","path":"/docs/monorepos/turborepo","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/ci-vendors/circleci","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/ci-vendors/gitlab-ci","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/ci-vendors/travis-ci","via":"neighbor"},{"site":"turborepo","path":"/docs/core-concepts/remote-caching","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides/ci-vendors/gitlab-ci","title":"GitLab CI","summary":"Configure GitLab CI pipelines to run Turborepo tasks with Remote Caching.","outbound":[{"site":"vercel-docs","path":"/docs/monorepos/remote-caching"}],"inbound":[],"requires":[{"site":"turborepo","path":"/docs/guides/ci-vendors"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/ci-vendors/circleci","distance":0.0837},{"site":"turborepo","path":"/docs/guides/ci-vendors/travis-ci","distance":0.1015},{"site":"turborepo","path":"/docs/guides/ci-vendors","distance":0.143},{"site":"turborepo","path":"/docs/guides/ci-vendors/github-actions","distance":0.1545},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching/external-ci-cd","distance":0.1634}],"related":[{"site":"vercel-docs","path":"/docs/monorepos/remote-caching/external-ci-cd","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/ci-vendors/circleci","via":"neighbor"},{"site":"vercel-docs","path":"/docs/monorepos/turborepo","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/ci-vendors/travis-ci","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/ci-vendors/github-actions","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/ci-vendors/buildkite","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/caching","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides/ci-vendors/travis-ci","title":"Travis CI","summary":"Configure Travis CI to run Turborepo tasks with Remote Caching.","outbound":[{"site":"vercel-docs","path":"/docs/monorepos/remote-caching"}],"inbound":[],"requires":[{"site":"turborepo","path":"/docs/guides/ci-vendors"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/ci-vendors/circleci","distance":0.0883},{"site":"turborepo","path":"/docs/guides/ci-vendors/gitlab-ci","distance":0.1015},{"site":"turborepo","path":"/docs/guides/ci-vendors","distance":0.1581},{"site":"turborepo","path":"/docs/guides/ci-vendors/github-actions","distance":0.1684},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching/external-ci-cd","distance":0.1735}],"related":[{"site":"vercel-docs","path":"/docs/monorepos/remote-caching/external-ci-cd","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/ci-vendors/circleci","via":"neighbor"},{"site":"vercel-docs","path":"/docs/monorepos/turborepo","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/ci-vendors/gitlab-ci","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/ci-vendors/github-actions","via":"neighbor"},{"site":"turborepo","path":"/docs/core-concepts/remote-caching","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/caching","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides/ci-vendors/vercel","title":"Vercel","summary":"Deploy your Turborepo on Vercel with zero-config Remote Caching.","outbound":[{"site":"vercel-docs","path":"/docs/monorepos/remote-caching"},{"site":"vercel-docs","path":"/docs/monorepos/turborepo"}],"inbound":[],"requires":[{"site":"turborepo","path":"/docs/guides/ci-vendors"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/ci-vendors","distance":0.1957},{"site":"turborepo","path":"/docs/guides/ci-vendors/circleci","distance":0.2093},{"site":"turborepo","path":"/docs/guides/ci-vendors/gitlab-ci","distance":0.2135},{"site":"turborepo","path":"/docs/guides/ci-vendors/travis-ci","distance":0.2167},{"site":"turborepo","path":"/docs/core-concepts/remote-caching","distance":0.2237}],"related":[{"site":"vercel-docs","path":"/docs/monorepos/monorepo-faq","via":"neighbor"},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching/external-ci-cd","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/monorepos","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/nitro","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/ci-vendors/circleci","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides/coordinating-runtime-dependencies","title":"Coordinating development runtime dependencies","summary":"Combine a readiness probe with `with` and `dependsOn` to coordinate runtime dependencies between development services.","outbound":[{"site":"turborepo","path":"/docs/reference/configuration"},{"site":"turborepo","path":"/docs/reference/package-configurations"},{"site":"turborepo","path":"/docs/reference/run"}],"inbound":[],"requires":[{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications"}],"neighbors":[{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications","distance":0.2086},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","distance":0.2675},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.2759},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.2791},{"site":"turborepo","path":"/docs/guides/multi-language","distance":0.2858}],"related":[{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications","via":"requires"},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/multi-language","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides/frameworks","title":"Frameworks","summary":"Browse guides for integrating popular frontend frameworks with Turborepo.","outbound":[],"inbound":[{"site":"turborepo","path":"/docs/guides/microfrontends"}],"requires":[{"site":"turborepo","path":"/docs/guides"}],"neighbors":[{"site":"turborepo","path":"/docs/guides","distance":0.2008},{"site":"turborepo","path":"/docs/guides/frameworks/nextjs","distance":0.2309},{"site":"turborepo","path":"/docs/guides/tools","distance":0.2373},{"site":"turborepo","path":"/docs/guides/frameworks/nuxt","distance":0.2609},{"site":"turborepo","path":"/docs/guides/frameworks/framework-bindings","distance":0.2669}],"related":[{"site":"workflow","path":"/docs/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/microfrontends","via":"inbound"}]},{"site":"turborepo","path":"/docs/guides/frameworks/framework-bindings","title":"Framework bindings in libraries","summary":"Use peerDependencies and export paths to create framework-specific bindings in shared library packages.","outbound":[{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating"},{"site":"turborepo","path":"/docs/core-concepts/package-types"}],"inbound":[],"requires":[{"site":"turborepo","path":"/docs/crafting-your-repository/creating-an-internal-package"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/frameworks","distance":0.2669},{"site":"turborepo","path":"/docs/core-concepts/internal-packages","distance":0.278},{"site":"turborepo","path":"/docs/guides/frameworks/nextjs","distance":0.2961},{"site":"turborepo","path":"/docs/crafting-your-repository/managing-dependencies","distance":0.3121},{"site":"turborepo","path":"/docs/guides/tools/typescript","distance":0.3191}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/transpilePackages","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/transpilePackages","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/creating-an-internal-package","via":"requires"},{"site":"turborepo","path":"/docs/core-concepts/internal-packages","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/frameworks/nextjs","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/managing-dependencies","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/typescript","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides/frameworks/nextjs","title":"Next.js","summary":"Add and configure Next.js applications in your Turborepo monorepo.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/cli/create-next-app"},{"site":"turborepo","path":"/docs/core-concepts/internal-packages"},{"site":"turborepo","path":"/docs/getting-started/installation"},{"site":"turborepo","path":"/docs/guides/microfrontends"},{"site":"turborepo","path":"/docs/reference/package-configurations"}],"inbound":[],"requires":[{"site":"turborepo","path":"/docs/guides/frameworks"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/frameworks/nuxt","distance":0.1598},{"site":"turborepo","path":"/docs/guides/frameworks/sveltekit","distance":0.2221},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","distance":0.2241},{"site":"turborepo","path":"/docs/guides/frameworks","distance":0.2309},{"site":"turborepo","path":"/docs/guides/frameworks/rsbuild","distance":0.2327}],"related":[{"site":"nextjs","path":"/docs/pages/getting-started/installation","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/frameworks/nuxt","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/frameworks/sveltekit","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/frameworks/rsbuild","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/typescript","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides/frameworks/nuxt","title":"Nuxt","summary":"Add and configure Nuxt applications in your Turborepo monorepo.","outbound":[{"site":"turborepo","path":"/docs/core-concepts/internal-packages"},{"site":"turborepo","path":"/docs/guides/microfrontends"},{"site":"turborepo","path":"/docs/reference/package-configurations"}],"inbound":[],"requires":[{"site":"turborepo","path":"/docs/guides/frameworks"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/frameworks/nextjs","distance":0.1598},{"site":"turborepo","path":"/docs/guides/frameworks/sveltekit","distance":0.1992},{"site":"turborepo","path":"/docs/guides/frameworks/vite","distance":0.2168},{"site":"turborepo","path":"/docs/guides/tools/tailwind","distance":0.2559},{"site":"eve","path":"/docs/guides/frontend/nuxt","distance":0.2562}],"related":[{"site":"eve","path":"/docs/guides/frontend/nuxt","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/frameworks/nextjs","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/frameworks/sveltekit","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/frameworks/vite","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/tailwind","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides/frameworks/rsbuild","title":"Rsbuild","summary":"Add and configure Rsbuild applications in your Turborepo monorepo.","outbound":[{"site":"turborepo","path":"/docs/core-concepts/internal-packages"},{"site":"turborepo","path":"/docs/guides/microfrontends"},{"site":"turborepo","path":"/docs/reference/package-configurations"}],"inbound":[],"requires":[{"site":"turborepo","path":"/docs/guides/frameworks"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/frameworks/vite","distance":0.2078},{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications","distance":0.227},{"site":"turborepo","path":"/docs/guides/frameworks/nextjs","distance":0.2327},{"site":"turborepo","path":"/docs/getting-started/installation","distance":0.2347},{"site":"turborepo","path":"/docs/guides/publishing-libraries","distance":0.2388}],"related":[{"site":"turborepo","path":"/docs/guides/frameworks/vite","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/frameworks/nextjs","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started/installation","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/publishing-libraries","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides/frameworks/sveltekit","title":"SvelteKit","summary":"Add and configure SvelteKit applications in your Turborepo monorepo.","outbound":[{"site":"turborepo","path":"/docs/core-concepts/internal-packages"},{"site":"turborepo","path":"/docs/guides/microfrontends"},{"site":"turborepo","path":"/docs/reference/package-configurations"}],"inbound":[],"requires":[{"site":"turborepo","path":"/docs/guides/frameworks"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/frameworks/nuxt","distance":0.1992},{"site":"turborepo","path":"/docs/guides/frameworks/vite","distance":0.2043},{"site":"turborepo","path":"/docs/guides/frameworks/nextjs","distance":0.2221},{"site":"turborepo","path":"/docs/guides/frameworks/rsbuild","distance":0.2546},{"site":"turborepo","path":"/docs/guides/tools/tailwind","distance":0.2675}],"related":[{"site":"eve","path":"/docs/guides/frontend/sveltekit","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-sveltekit","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/frameworks/nuxt","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/frameworks/vite","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/frameworks/nextjs","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/frameworks/rsbuild","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/tailwind","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides/frameworks/vite","title":"Vite","summary":"Add and configure Vite applications in your Turborepo monorepo.","outbound":[{"site":"turborepo","path":"/docs/core-concepts/internal-packages"},{"site":"turborepo","path":"/docs/guides/microfrontends"},{"site":"turborepo","path":"/docs/reference/package-configurations"}],"inbound":[],"requires":[{"site":"turborepo","path":"/docs/guides/frameworks"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/tools/vitest","distance":0.1977},{"site":"turborepo","path":"/docs/guides/frameworks/sveltekit","distance":0.2043},{"site":"turborepo","path":"/docs/guides/frameworks/rsbuild","distance":0.2078},{"site":"turborepo","path":"/docs/guides/frameworks/nuxt","distance":0.2168},{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite","distance":0.2237}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/vitest","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/frameworks/sveltekit","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/frameworks/rsbuild","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/frameworks/nuxt","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/frameworks/nextjs","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides/generating-code","title":"Generating code","summary":"Use Turborepo's built-in generators and custom Plop configurations to scaffold new packages and code.","outbound":[{"site":"turborepo","path":"/docs/reference/generate"},{"site":"turborepo","path":"/docs/reference/turbo-gen"}],"inbound":[{"site":"turborepo","path":"/docs/getting-started/installation"},{"site":"turborepo","path":"/docs/reference/generate"},{"site":"turborepo","path":"/docs/reference/turbo-gen"}],"requires":[{"site":"turborepo","path":"/docs/guides"}],"neighbors":[{"site":"turborepo","path":"/docs/reference/turbo-gen","distance":0.1287},{"site":"turborepo","path":"/docs/reference/generate","distance":0.1849},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.2311},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","distance":0.2392},{"site":"turborepo","path":"/docs/reference/create-turbo","distance":0.2411}],"related":[{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/create-turbo","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started/installation","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides/handling-platforms","title":"Handling platforms","summary":"Account for OS, architecture, and Node.js version differences in your Turborepo cache hash.","outbound":[{"site":"turborepo","path":"/docs/reference/configuration"}],"inbound":[],"requires":[{"site":"turborepo","path":"/docs/crafting-your-repository/caching"}],"neighbors":[{"site":"turborepo","path":"/docs/crafting-your-repository/caching","distance":0.225},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","distance":0.2557},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","distance":0.2568},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.2637},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","distance":0.2815}],"related":[{"site":"vercel-docs","path":"/docs/monorepos/turborepo","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/caching","via":"requires"},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides/microfrontends","title":"Microfrontends","summary":"Set up Turborepo's built-in proxy to route traffic between multiple frontend applications during local development.","outbound":[{"site":"turborepo","path":"/docs/guides/frameworks"},{"site":"vercel-docs","path":"/docs/microfrontends"}],"inbound":[{"site":"turborepo","path":"/docs/guides/frameworks/nextjs"},{"site":"turborepo","path":"/docs/guides/frameworks/nuxt"},{"site":"turborepo","path":"/docs/guides/frameworks/rsbuild"},{"site":"turborepo","path":"/docs/guides/frameworks/sveltekit"},{"site":"turborepo","path":"/docs/guides/frameworks/vite"},{"site":"turborepo","path":"/docs/reference/system-environment-variables"}],"requires":[{"site":"turborepo","path":"/docs/guides"}],"neighbors":[{"site":"vercel-docs","path":"/docs/microfrontends/local-development","distance":0.176},{"site":"vercel-docs","path":"/docs/microfrontends/quickstart","distance":0.1973},{"site":"vercel-docs","path":"/docs/microfrontends","distance":0.2153},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends","distance":0.221},{"site":"vercel-docs","path":"/docs/microfrontends/troubleshooting","distance":0.2232}],"related":[{"site":"vercel-docs","path":"/docs/microfrontends/local-development","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/troubleshooting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/routing","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/frameworks/vite","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/frameworks/nextjs","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","title":"Migrating from Nx","summary":"Step-by-step instructions for migrating your Nx monorepo to Turborepo.","outbound":[{"site":"turborepo","path":"/docs/crafting-your-repository/managing-dependencies"},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository"},{"site":"turborepo","path":"/docs/guides/multi-language"},{"site":"turborepo","path":"/docs/reference/configuration"},{"site":"turborepo","path":"/docs/reference/generate"},{"site":"turborepo","path":"/docs/reference/globs"},{"site":"turborepo","path":"/docs/reference/run"}],"inbound":[],"requires":[{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository"}],"neighbors":[{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.1398},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.1544},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","distance":0.1562},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","distance":0.1726},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","distance":0.1785}],"related":[{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/package-configurations","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides/multi-language","title":"Multi-language support","summary":"Add unsupported languages such as Go to Turborepo by wrapping projects in package-manager workspaces.","outbound":[],"inbound":[{"site":"turborepo","path":"/docs/guides/migrating-from-nx"}],"requires":[{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks"},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository"}],"neighbors":[{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","distance":0.1769},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","distance":0.1786},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.2079},{"site":"turborepo","path":"/docs/crafting-your-repository/managing-dependencies","distance":0.2162},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","distance":0.2166}],"related":[{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","via":"requires"},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/managing-dependencies","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides/publishing-libraries","title":"Publishing libraries","summary":"Bundle, version, and publish packages from your monorepo to npm using tsup and Changesets.","outbound":[{"site":"turborepo","path":"/docs/crafting-your-repository/caching"},{"site":"turborepo","path":"/docs/crafting-your-repository/creating-an-internal-package"},{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications"},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks"},{"site":"turborepo","path":"/docs/reference/configuration"}],"inbound":[{"site":"turborepo","path":"/docs/core-concepts/internal-packages"}],"requires":[{"site":"turborepo","path":"/docs/crafting-your-repository/creating-an-internal-package"}],"neighbors":[{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","distance":0.1572},{"site":"turborepo","path":"/docs/crafting-your-repository/creating-an-internal-package","distance":0.1611},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.1771},{"site":"turborepo","path":"/docs/core-concepts/internal-packages","distance":0.1881},{"site":"turborepo","path":"/docs/guides/tools/typescript","distance":0.1884}],"related":[{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/core-concepts/internal-packages","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/typescript","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","title":"Single-package workspaces","summary":"Use Turborepo's caching and task parallelization in a standalone application without a monorepo.","outbound":[{"site":"turborepo","path":"/docs/core-concepts/remote-caching"},{"site":"turborepo","path":"/docs/getting-started/installation"},{"site":"vercel-docs","path":"/docs/glossary"}],"inbound":[{"site":"turborepo","path":"/docs"},{"site":"turborepo","path":"/docs/crafting-your-repository"},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository"},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository"},{"site":"turborepo","path":"/docs/messages/recursive-turbo-invocations"}],"requires":[{"site":"turborepo","path":"/docs/guides"}],"neighbors":[{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.1129},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.142},{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications","distance":0.1432},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","distance":0.1448},{"site":"turborepo","path":"/docs","distance":0.1595}],"related":[{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides/skipping-tasks","title":"Skipping tasks","summary":"Use `turbo query affected` to skip CI tasks entirely when a workspace has no relevant code changes.","outbound":[{"site":"turborepo","path":"/docs/core-concepts/remote-caching"},{"site":"turborepo","path":"/docs/crafting-your-repository/caching"},{"site":"turborepo","path":"/docs/reference/query"}],"inbound":[{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci"},{"site":"turborepo","path":"/docs/reference/turbo-ignore"}],"requires":[{"site":"turborepo","path":"/docs/crafting-your-repository/caching"}],"neighbors":[{"site":"turborepo","path":"/docs/reference/turbo-ignore","distance":0.1513},{"site":"turborepo","path":"/docs/reference/query","distance":0.1967},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","distance":0.1988},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","distance":0.2165},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.2347}],"related":[{"site":"turborepo","path":"/docs/reference/turbo-ignore","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/package-configurations","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides/tools","title":"Tools","summary":"Browse guides for integrating popular development tools with Turborepo.","outbound":[],"inbound":[],"requires":[{"site":"turborepo","path":"/docs/guides"}],"neighbors":[{"site":"turborepo","path":"/docs/guides","distance":0.1328},{"site":"turborepo","path":"/docs/crafting-your-repository","distance":0.2131},{"site":"turborepo","path":"/docs/crafting-your-repository/understanding-your-repository","distance":0.2216},{"site":"turborepo","path":"/docs","distance":0.2277},{"site":"turborepo","path":"/docs/community","distance":0.2292}],"related":[{"site":"turborepo","path":"/docs/crafting-your-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/understanding-your-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/community","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/frameworks","via":"neighbor"},{"site":"turborepo","path":"/docs/acknowledgments","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides/tools/biome","title":"Biome","summary":"Configure Biome as a root task for fast formatting and linting across your monorepo.","outbound":[{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks"}],"inbound":[{"site":"turborepo","path":"/docs/guides/tools/oxc"}],"requires":[{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/tools/oxc","distance":0.1937},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.252},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","distance":0.253},{"site":"turborepo","path":"/docs/guides/tools/eslint","distance":0.2653},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","distance":0.2665}],"related":[{"site":"turborepo","path":"/docs/guides/tools/oxc","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/eslint","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides/tools/docker","title":"Docker","summary":"Use turbo prune to create optimized Docker images from your monorepo with minimal dependencies.","outbound":[{"site":"turborepo","path":"/docs/core-concepts/remote-caching"}],"inbound":[{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci"},{"site":"turborepo","path":"/docs/reference/prune"}],"requires":[{"site":"turborepo","path":"/docs/guides/tools"}],"neighbors":[{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","distance":0.2004},{"site":"turborepo","path":"/docs/reference/prune","distance":0.2008},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","distance":0.2221},{"site":"turborepo","path":"/docs","distance":0.2292},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.2367}],"related":[{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/prune","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides/tools/eslint","title":"ESLint","summary":"Configure ESLint for consistent linting across your monorepo packages with a shared config.","outbound":[{"site":"turborepo","path":"/docs/getting-started/installation"}],"inbound":[],"requires":[{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks"}],"neighbors":[{"site":"turborepo","path":"/docs/reference/eslint-config-turbo","distance":0.1667},{"site":"turborepo","path":"/docs/reference/eslint-plugin-turbo","distance":0.1775},{"site":"turborepo","path":"/docs/guides/tools/oxc","distance":0.1813},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","distance":0.1871},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.1893}],"related":[{"site":"turborepo","path":"/docs/reference/eslint-config-turbo","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/eslint-plugin-turbo","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/oxc","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides/tools/jest","title":"Jest","summary":"Set up Jest test suites across monorepo packages with Turborepo caching and parallelization.","outbound":[{"site":"turborepo","path":"/docs/crafting-your-repository/caching"},{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications"},{"site":"turborepo","path":"/docs/getting-started/installation"},{"site":"turborepo","path":"/docs/reference/run"}],"inbound":[],"requires":[{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/tools/vitest","distance":0.1748},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","distance":0.2041},{"site":"turborepo","path":"/docs/guides/tools/eslint","distance":0.208},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.2253},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.2294}],"related":[{"site":"turborepo","path":"/docs/guides/tools/vitest","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","via":"requires"},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/eslint","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides/tools/oxc","title":"Oxc (oxlint and oxfmt)","summary":"Configure oxlint and oxfmt as root tasks for fast linting and formatting in your monorepo.","outbound":[{"site":"turborepo","path":"/docs/core-concepts/internal-packages"},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks"},{"site":"turborepo","path":"/docs/guides/tools/biome"}],"inbound":[],"requires":[{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/tools/eslint","distance":0.1813},{"site":"turborepo","path":"/docs/guides/tools/biome","distance":0.1937},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.2025},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","distance":0.2073},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","distance":0.2261}],"related":[{"site":"turborepo","path":"/docs/guides/tools/eslint","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides/tools/playwright","title":"Playwright","summary":"Set up Playwright end-to-end test suites with proper caching and dependency graph configuration.","outbound":[{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables"},{"site":"turborepo","path":"/docs/reference/configuration"},{"site":"turborepo","path":"/docs/reference/run"}],"inbound":[],"requires":[{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks"}],"neighbors":[{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.2303},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","distance":0.238},{"site":"turborepo","path":"/docs/guides/tools/vitest","distance":0.241},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","distance":0.2453},{"site":"turborepo","path":"/docs/guides/tools/jest","distance":0.2457}],"related":[{"site":"nextjs","path":"/docs/app/guides/testing/playwright","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/testing/playwright","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","via":"requires"},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/vitest","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/jest","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides/tools/prisma","title":"Prisma","summary":"Integrate Prisma as a shared database package in your Turborepo monorepo.","outbound":[{"site":"turborepo","path":"/docs/core-concepts/internal-packages"}],"inbound":[],"requires":[{"site":"turborepo","path":"/docs/guides/tools"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/tools/docker","distance":0.2876},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","distance":0.2916},{"site":"turborepo","path":"/docs","distance":0.2982},{"site":"turborepo","path":"/docs/getting-started","distance":0.3042},{"site":"turborepo","path":"/docs/guides/tools","distance":0.3141}],"related":[{"site":"turborepo","path":"/docs/guides/tools/docker","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started/installation","via":"neighbor"},{"site":"turborepo","path":"/docs/community","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides/tools/python","title":"Python (Experimental)","summary":"Discover uv workspace members as Turborepo packages and run native uv tasks.","outbound":[{"site":"turborepo","path":"/docs/reference/configuration"},{"site":"turborepo","path":"/docs/reference/query"},{"site":"turborepo","path":"/docs/reference/run"}],"inbound":[],"requires":[{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks"},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/tools/rust","distance":0.1501},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.2226},{"site":"turborepo","path":"/docs/crafting-your-repository/caching","distance":0.223},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","distance":0.2253},{"site":"turborepo","path":"/docs/guides/tools/vitest","distance":0.228}],"related":[{"site":"turborepo","path":"/docs/guides/tools/rust","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","via":"requires"},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","via":"requires"},{"site":"turborepo","path":"/docs/crafting-your-repository/caching","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides/tools/rust","title":"Rust (Experimental)","summary":"Discover Cargo workspace crates as Turborepo packages and run native Cargo tasks.","outbound":[{"site":"turborepo","path":"/docs/reference/configuration"},{"site":"turborepo","path":"/docs/reference/query"},{"site":"turborepo","path":"/docs/reference/run"}],"inbound":[],"requires":[{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks"},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/tools/python","distance":0.1501},{"site":"turborepo","path":"/docs/crafting-your-repository/caching","distance":0.1735},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.1765},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","distance":0.1924},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","distance":0.1929}],"related":[{"site":"turborepo","path":"/docs/guides/tools/python","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/caching","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides/tools/shadcn-ui","title":"shadcn/ui","summary":"Initialize and use shadcn/ui components in your Turborepo monorepo.","outbound":[],"inbound":[],"requires":[{"site":"turborepo","path":"/docs/guides/tools"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/tools/tailwind","distance":0.2354},{"site":"turborepo","path":"/docs/guides/frameworks/nextjs","distance":0.3163},{"site":"turborepo","path":"/docs/guides/tools","distance":0.3188},{"site":"turborepo","path":"/docs/guides/frameworks/nuxt","distance":0.3276},{"site":"turborepo","path":"/docs","distance":0.3456}],"related":[{"site":"v0","path":"/docs/design-systems-legacy","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/tailwind","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/frameworks/nextjs","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/frameworks/nuxt","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/frameworks/sveltekit","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides/tools/storybook","title":"Storybook","summary":"Set up Storybook for developing and documenting UI components in your monorepo.","outbound":[{"site":"turborepo","path":"/docs/getting-started/installation"},{"site":"turborepo","path":"/docs/reference/package-configurations"}],"inbound":[],"requires":[{"site":"turborepo","path":"/docs/guides/tools"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/tools/tailwind","distance":0.2138},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.2557},{"site":"turborepo","path":"/docs/guides/publishing-libraries","distance":0.2587},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","distance":0.262},{"site":"turborepo","path":"/docs/crafting-your-repository/creating-an-internal-package","distance":0.2637}],"related":[{"site":"turborepo","path":"/docs/guides/tools/tailwind","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/publishing-libraries","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/creating-an-internal-package","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides/tools/tailwind","title":"Tailwind CSS","summary":"Share Tailwind CSS configuration and styles across packages in your monorepo.","outbound":[{"site":"turborepo","path":"/docs/core-concepts/internal-packages"},{"site":"turborepo","path":"/docs/getting-started/installation"}],"inbound":[],"requires":[{"site":"turborepo","path":"/docs/guides/tools"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/tailwind-v3-css","distance":0.2032},{"site":"turborepo","path":"/docs/guides/tools/storybook","distance":0.2138},{"site":"nextjs","path":"/docs/app/guides/tailwind-v3-css","distance":0.215},{"site":"turborepo","path":"/docs/guides/tools/shadcn-ui","distance":0.2354},{"site":"turborepo","path":"/docs/crafting-your-repository/creating-an-internal-package","distance":0.2438}],"related":[{"site":"nextjs","path":"/docs/pages/guides/tailwind-v3-css","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/tailwind-v3-css","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/css","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/css","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/storybook","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/shadcn-ui","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/creating-an-internal-package","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/typescript","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/eslint","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides/tools/typescript","title":"TypeScript","summary":"Share TypeScript configuration, set up compilation, and enable fast type checking across your monorepo.","outbound":[{"site":"turborepo","path":"/docs/core-concepts/internal-packages"},{"site":"turborepo","path":"/docs/core-concepts/package-and-task-graph"},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks"},{"site":"turborepo","path":"/docs/crafting-your-repository/managing-dependencies"},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository"},{"site":"turborepo","path":"/docs/reference/create-turbo"}],"inbound":[{"site":"turborepo","path":"/docs/core-concepts/internal-packages"},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository"}],"requires":[{"site":"turborepo","path":"/docs/guides/tools"}],"neighbors":[{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","distance":0.1707},{"site":"turborepo","path":"/docs/guides/publishing-libraries","distance":0.1884},{"site":"turborepo","path":"/docs/reference/package-configurations","distance":0.189},{"site":"turborepo","path":"/docs/guides/tools/eslint","distance":0.1939},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.1951}],"related":[{"site":"turborepo","path":"/docs/guides/publishing-libraries","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/package-configurations","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/eslint","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides/tools/vitest","title":"Vitest","summary":"Configure Vitest for cached, parallelized testing across monorepo packages with optional merged coverage.","outbound":[{"site":"turborepo","path":"/docs/crafting-your-repository/caching"},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks"},{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications"},{"site":"turborepo","path":"/docs/crafting-your-repository/managing-dependencies"},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository"},{"site":"turborepo","path":"/docs/getting-started/installation"}],"inbound":[],"requires":[{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/tools/jest","distance":0.1748},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.1776},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","distance":0.184},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.1862},{"site":"turborepo","path":"/docs/guides/frameworks/vite","distance":0.1977}],"related":[{"site":"turborepo","path":"/docs/guides/tools/jest","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/frameworks/vite","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","via":"neighbor"}]},{"site":"turborepo","path":"/docs/messages/invalid-env-prefix","title":"Invalid environment variable prefix","summary":"How to fix the deprecated `$` prefix syntax when declaring environment variables in turbo.json.","outbound":[{"site":"turborepo","path":"/docs/reference/turbo-codemod"}],"inbound":[],"requires":[],"neighbors":[{"site":"turborepo","path":"/docs/messages/unnecessary-package-task-syntax","distance":0.294},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","distance":0.3086},{"site":"turborepo","path":"/docs/reference/eslint-config-turbo","distance":0.3102},{"site":"turborepo","path":"/docs/reference/eslint-plugin-turbo","distance":0.3163},{"site":"turborepo","path":"/docs/reference/turbo-codemod","distance":0.33}],"related":[{"site":"turborepo","path":"/docs/messages/unnecessary-package-task-syntax","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/eslint-config-turbo","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/eslint-plugin-turbo","via":"neighbor"},{"site":"turborepo","path":"/docs/reference","via":"neighbor"}]},{"site":"turborepo","path":"/docs/messages/missing-root-task-in-turbo-json","title":"Missing root task in turbo.json","summary":"How to resolve errors caused by root package.json scripts that are not registered in turbo.json.","outbound":[{"site":"turborepo","path":"/docs/reference/configuration"}],"inbound":[],"requires":[],"neighbors":[{"site":"turborepo","path":"/docs/messages/unnecessary-package-task-syntax","distance":0.1893},{"site":"turborepo","path":"/docs/messages/recursive-turbo-invocations","distance":0.2077},{"site":"turborepo","path":"/docs/reference/package-configurations","distance":0.2455},{"site":"turborepo","path":"/docs/messages/package-task-in-single-package-workspace","distance":0.2617},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.2626}],"related":[{"site":"turborepo","path":"/docs/messages/unnecessary-package-task-syntax","via":"neighbor"},{"site":"turborepo","path":"/docs/messages/recursive-turbo-invocations","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/package-configurations","via":"neighbor"},{"site":"turborepo","path":"/docs/messages/package-task-in-single-package-workspace","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","via":"neighbor"}]},{"site":"turborepo","path":"/docs/messages/package-task-in-single-package-workspace","title":"Package task in single-package workspace error","summary":"How to fix errors from using package-scoped task syntax in a single-package workspace.","outbound":[{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository"}],"inbound":[],"requires":[],"neighbors":[{"site":"turborepo","path":"/docs/messages/unnecessary-package-task-syntax","distance":0.1426},{"site":"turborepo","path":"/docs/messages/recursive-turbo-invocations","distance":0.2261},{"site":"turborepo","path":"/docs/messages/missing-root-task-in-turbo-json","distance":0.2617},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","distance":0.2693},{"site":"turborepo","path":"/docs/reference/package-configurations","distance":0.3192}],"related":[{"site":"turborepo","path":"/docs/messages/unnecessary-package-task-syntax","via":"neighbor"},{"site":"turborepo","path":"/docs/messages/recursive-turbo-invocations","via":"neighbor"},{"site":"turborepo","path":"/docs/messages/missing-root-task-in-turbo-json","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/package-configurations","via":"neighbor"}]},{"site":"turborepo","path":"/docs/messages/recursive-turbo-invocations","title":"Recursive `turbo` invocations","summary":"How to fix infinite loops caused by package.json scripts that recursively invoke `turbo`.","outbound":[{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository"},{"site":"turborepo","path":"/docs/guides/single-package-workspaces"},{"site":"vercel-docs","path":"/docs/glossary"}],"inbound":[],"requires":[],"neighbors":[{"site":"turborepo","path":"/docs/messages/missing-root-task-in-turbo-json","distance":0.2077},{"site":"turborepo","path":"/docs/messages/unnecessary-package-task-syntax","distance":0.2198},{"site":"turborepo","path":"/docs/messages/package-task-in-single-package-workspace","distance":0.2261},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","distance":0.2414},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.2807}],"related":[{"site":"turborepo","path":"/docs/messages/missing-root-task-in-turbo-json","via":"neighbor"},{"site":"turborepo","path":"/docs/messages/unnecessary-package-task-syntax","via":"neighbor"},{"site":"turborepo","path":"/docs/messages/package-task-in-single-package-workspace","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/package-configurations","via":"neighbor"}]},{"site":"turborepo","path":"/docs/messages/unnecessary-package-task-syntax","title":"Unnecessary package task syntax error","summary":"How to fix errors from using `package#task` syntax in a package-level turbo.json where it is unnecessary.","outbound":[{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository"}],"inbound":[],"requires":[],"neighbors":[{"site":"turborepo","path":"/docs/messages/package-task-in-single-package-workspace","distance":0.1426},{"site":"turborepo","path":"/docs/messages/missing-root-task-in-turbo-json","distance":0.1893},{"site":"turborepo","path":"/docs/messages/recursive-turbo-invocations","distance":0.2198},{"site":"turborepo","path":"/docs/reference/package-configurations","distance":0.2541},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","distance":0.2679}],"related":[{"site":"turborepo","path":"/docs/messages/package-task-in-single-package-workspace","via":"neighbor"},{"site":"turborepo","path":"/docs/messages/missing-root-task-in-turbo-json","via":"neighbor"},{"site":"turborepo","path":"/docs/messages/recursive-turbo-invocations","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/package-configurations","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","via":"neighbor"}]},{"site":"turborepo","path":"/docs/reference","title":"Turborepo API reference","summary":"Entry point for all Turborepo API reference documentation including configuration, CLI commands, and packages.","outbound":[{"site":"turborepo","path":"/docs/reference/system-environment-variables"}],"inbound":[{"site":"turborepo","path":"/docs/reference/options-overview"},{"site":"turborepo","path":"/docs/support-policy"}],"requires":[{"site":"turborepo","path":"/docs"}],"neighbors":[{"site":"turborepo","path":"/docs/reference/options-overview","distance":0.1613},{"site":"turborepo","path":"/docs/support-policy","distance":0.1769},{"site":"turborepo","path":"/docs/reference/info","distance":0.1954},{"site":"turborepo","path":"/docs/getting-started/installation","distance":0.2009},{"site":"turborepo","path":"/docs/reference/query","distance":0.2022}],"related":[{"site":"turborepo","path":"/docs/support-policy","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started/installation","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","via":"neighbor"}]},{"site":"turborepo","path":"/docs/reference/bin","title":"bin","summary":"Reference for the `turbo bin` command that outputs the path to the `turbo` binary.","outbound":[{"site":"turborepo","path":"/docs/getting-started/installation"}],"inbound":[],"requires":[{"site":"turborepo","path":"/docs/reference"}],"neighbors":[{"site":"turborepo","path":"/docs/reference/info","distance":0.2857},{"site":"turborepo","path":"/docs/reference","distance":0.3065},{"site":"turborepo","path":"/docs/getting-started/installation","distance":0.3361},{"site":"turborepo","path":"/docs/reference/docs","distance":0.3685},{"site":"turborepo","path":"/docs/reference/unlink","distance":0.3721}],"related":[{"site":"turborepo","path":"/docs/reference/info","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/docs","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/unlink","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/options-overview","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/ls","via":"neighbor"}]},{"site":"turborepo","path":"/docs/reference/boundaries","title":"boundaries","summary":"Reference for the experimental `turbo boundaries` command that checks for workspace dependency violations.","outbound":[],"inbound":[{"site":"turborepo","path":"/docs/reference/configuration"},{"site":"turborepo","path":"/docs/reference/package-configurations"},{"site":"turborepo","path":"/docs/support-policy"}],"requires":[{"site":"turborepo","path":"/docs/reference"}],"neighbors":[{"site":"turborepo","path":"/docs/reference/package-configurations","distance":0.3058},{"site":"turborepo","path":"/docs/support-policy","distance":0.3133},{"site":"turborepo","path":"/docs/reference","distance":0.3243},{"site":"turborepo","path":"/docs/guides/multi-language","distance":0.3301},{"site":"turborepo","path":"/docs/guides/tools/rust","distance":0.3395}],"related":[{"site":"turborepo","path":"/docs/reference/package-configurations","via":"neighbor"},{"site":"turborepo","path":"/docs/support-policy","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/multi-language","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/rust","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","via":"neighbor"}]},{"site":"turborepo","path":"/docs/reference/configuration","title":"Configuring turbo.json","summary":"Complete reference for all turbo.json configuration options and their behavior.","outbound":[{"site":"turborepo","path":"/docs/core-concepts/internal-packages"},{"site":"turborepo","path":"/docs/crafting-your-repository/caching"},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository"},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables"},{"site":"turborepo","path":"/docs/reference/boundaries"},{"site":"turborepo","path":"/docs/reference/globs"},{"site":"turborepo","path":"/docs/reference/package-configurations"},{"site":"turborepo","path":"/docs/reference/prune"},{"site":"turborepo","path":"/docs/reference/run"},{"site":"turborepo","path":"/docs/reference/system-environment-variables"}],"inbound":[{"site":"turborepo","path":"/docs/core-concepts/internal-packages"},{"site":"turborepo","path":"/docs/crafting-your-repository/caching"},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks"},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci"},{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications"},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks"},{"site":"turborepo","path":"/docs/crafting-your-repository/upgrading"},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables"},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository"},{"site":"turborepo","path":"/docs/guides/coordinating-runtime-dependencies"},{"site":"turborepo","path":"/docs/guides/handling-platforms"},{"site":"turborepo","path":"/docs/guides/migrating-from-nx"},{"site":"turborepo","path":"/docs/guides/publishing-libraries"},{"site":"turborepo","path":"/docs/guides/tools/playwright"},{"site":"turborepo","path":"/docs/guides/tools/python"},{"site":"turborepo","path":"/docs/guides/tools/rust"},{"site":"turborepo","path":"/docs/messages/missing-root-task-in-turbo-json"},{"site":"turborepo","path":"/docs/reference/options-overview"},{"site":"turborepo","path":"/docs/reference/package-configurations"},{"site":"turborepo","path":"/docs/reference/prune"},{"site":"turborepo","path":"/docs/reference/query"},{"site":"turborepo","path":"/docs/reference/run"},{"site":"turborepo","path":"/docs/reference/system-environment-variables"},{"site":"turborepo","path":"/docs/reference/turbo-ignore"},{"site":"turborepo","path":"/docs/reference/watch"},{"site":"turborepo","path":"/docs/support-policy"}],"requires":[{"site":"turborepo","path":"/docs/reference"}],"neighbors":[{"site":"turborepo","path":"/docs/reference/run","distance":0.1582},{"site":"turborepo","path":"/docs/reference/package-configurations","distance":0.2568},{"site":"turborepo","path":"/docs/reference/system-environment-variables","distance":0.2749},{"site":"turborepo","path":"/docs/guides/tools/rust","distance":0.2852},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.2894}],"related":[{"site":"turborepo","path":"/docs/guides/tools/rust","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/query","via":"neighbor"},{"site":"turborepo","path":"/docs/support-policy","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/options-overview","via":"neighbor"}]},{"site":"turborepo","path":"/docs/reference/create-turbo","title":"create-turbo","summary":"Reference for the `create-turbo` CLI that scaffolds a new Turborepo monorepo.","outbound":[],"inbound":[{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications"},{"site":"turborepo","path":"/docs/guides/tools/typescript"},{"site":"turborepo","path":"/docs/support-policy"}],"requires":[{"site":"turborepo","path":"/docs/reference"}],"neighbors":[{"site":"turborepo","path":"/docs/getting-started/examples","distance":0.1025},{"site":"turborepo","path":"/docs/getting-started/installation","distance":0.1583},{"site":"turborepo","path":"/docs/getting-started","distance":0.1782},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.1982},{"site":"turborepo","path":"/docs/reference","distance":0.2193}],"related":[{"site":"turborepo","path":"/docs/getting-started/examples","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started/installation","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","via":"neighbor"}]},{"site":"turborepo","path":"/docs/reference/devtools","title":"devtools","summary":"Reference for the `turbo devtools` command that visualizes your monorepo's package graph in the browser.","outbound":[],"inbound":[{"site":"turborepo","path":"/docs/crafting-your-repository/understanding-your-repository"}],"requires":[{"site":"turborepo","path":"/docs/reference"}],"neighbors":[{"site":"turborepo","path":"/docs/reference","distance":0.2984},{"site":"turborepo","path":"/docs/reference/info","distance":0.3161},{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications","distance":0.3225},{"site":"turborepo","path":"/docs/crafting-your-repository/understanding-your-repository","distance":0.34},{"site":"turborepo","path":"/docs/guides/tools","distance":0.3451}],"related":[{"site":"turborepo","path":"/docs/reference/info","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/understanding-your-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/options-overview","via":"neighbor"}]},{"site":"turborepo","path":"/docs/reference/docs","title":"docs","summary":"Reference for the `turbo docs` command that searches Turborepo documentation from the CLI.","outbound":[],"inbound":[],"requires":[{"site":"turborepo","path":"/docs/reference"}],"neighbors":[{"site":"turborepo","path":"/docs/reference","distance":0.2692},{"site":"turborepo","path":"/docs/reference/info","distance":0.2895},{"site":"turborepo","path":"/docs/support-policy","distance":0.3253},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","distance":0.3263},{"site":"turborepo","path":"/docs/reference/query","distance":0.3271}],"related":[{"site":"turborepo","path":"/docs/reference/info","via":"neighbor"},{"site":"turborepo","path":"/docs/support-policy","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/query","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/options-overview","via":"neighbor"}]},{"site":"turborepo","path":"/docs/reference/eslint-config-turbo","title":"eslint-config-turbo","summary":"Reference for the `eslint-config-turbo` package that detects undeclared environment variables in your code.","outbound":[],"inbound":[{"site":"turborepo","path":"/docs/crafting-your-repository/upgrading"},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables"},{"site":"turborepo","path":"/docs/getting-started/editor-integration"},{"site":"turborepo","path":"/docs/support-policy"}],"requires":[{"site":"turborepo","path":"/docs/reference"}],"neighbors":[{"site":"turborepo","path":"/docs/reference/eslint-plugin-turbo","distance":0.0121},{"site":"turborepo","path":"/docs/guides/tools/eslint","distance":0.1667},{"site":"turborepo","path":"/docs/getting-started/editor-integration","distance":0.2154},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","distance":0.2438},{"site":"turborepo","path":"/docs/reference","distance":0.2446}],"related":[{"site":"turborepo","path":"/docs/reference/eslint-plugin-turbo","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/eslint","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started/editor-integration","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","via":"neighbor"},{"site":"turborepo","path":"/docs/support-policy","via":"neighbor"}]},{"site":"turborepo","path":"/docs/reference/eslint-plugin-turbo","title":"eslint-plugin-turbo","summary":"Reference for the `eslint-plugin-turbo` package that detects undeclared environment variables in your code.","outbound":[],"inbound":[],"requires":[{"site":"turborepo","path":"/docs/reference"}],"neighbors":[{"site":"turborepo","path":"/docs/reference/eslint-config-turbo","distance":0.0121},{"site":"turborepo","path":"/docs/guides/tools/eslint","distance":0.1775},{"site":"turborepo","path":"/docs/getting-started/editor-integration","distance":0.2256},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","distance":0.2501},{"site":"turborepo","path":"/docs/reference","distance":0.2592}],"related":[{"site":"turborepo","path":"/docs/reference/eslint-config-turbo","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/eslint","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started/editor-integration","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","via":"neighbor"},{"site":"turborepo","path":"/docs/support-policy","via":"neighbor"}]},{"site":"turborepo","path":"/docs/reference/generate","title":"generate","summary":"All flags and options for the `turbo generate` command used to scaffold new packages and run custom generators.","outbound":[{"site":"turborepo","path":"/docs/guides/generating-code"}],"inbound":[{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci"},{"site":"turborepo","path":"/docs/guides/generating-code"},{"site":"turborepo","path":"/docs/guides/migrating-from-nx"},{"site":"turborepo","path":"/docs/reference/turbo-gen"},{"site":"turborepo","path":"/docs/telemetry"}],"requires":[{"site":"turborepo","path":"/docs/reference"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/generating-code","distance":0.1849},{"site":"turborepo","path":"/docs/reference/turbo-gen","distance":0.2007},{"site":"turborepo","path":"/docs/reference/create-turbo","distance":0.2886},{"site":"turborepo","path":"/docs/reference","distance":0.3138},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","distance":0.3375}],"related":[{"site":"turborepo","path":"/docs/reference/turbo-gen","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/create-turbo","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started/installation","via":"neighbor"}]},{"site":"turborepo","path":"/docs/reference/globs","title":"File glob specification","summary":"Glob pattern syntax and examples for specifying file inclusions and exclusions in Turborepo.","outbound":[],"inbound":[{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks"},{"site":"turborepo","path":"/docs/guides/migrating-from-nx"},{"site":"turborepo","path":"/docs/reference/configuration"}],"requires":[{"site":"turborepo","path":"/docs/reference"}],"neighbors":[{"site":"turborepo","path":"/docs/reference","distance":0.3342},{"site":"turborepo","path":"/docs/support-policy","distance":0.363},{"site":"turborepo","path":"/docs/reference/options-overview","distance":0.3685},{"site":"turborepo","path":"/docs/getting-started/installation","distance":0.3773},{"site":"turborepo","path":"/docs/guides","distance":0.3801}],"related":[{"site":"turborepo","path":"/docs/support-policy","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/options-overview","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started/installation","via":"neighbor"},{"site":"turborepo","path":"/docs/guides","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","via":"neighbor"}]},{"site":"turborepo","path":"/docs/reference/info","title":"info","summary":"Reference for the `turbo info` command that prints debugging information about your Turborepo setup.","outbound":[],"inbound":[],"requires":[{"site":"turborepo","path":"/docs/reference"}],"neighbors":[{"site":"turborepo","path":"/docs/reference","distance":0.1954},{"site":"turborepo","path":"/docs/reference/options-overview","distance":0.2695},{"site":"turborepo","path":"/docs/reference/bin","distance":0.2857},{"site":"turborepo","path":"/docs/reference/docs","distance":0.2895},{"site":"turborepo","path":"/docs/reference/telemetry","distance":0.2896}],"related":[{"site":"turborepo","path":"/docs/reference/options-overview","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/bin","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/docs","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/telemetry","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/understanding-your-repository","via":"neighbor"}]},{"site":"turborepo","path":"/docs/reference/link","title":"link","summary":"All flags and options for the `turbo link` command that connects your repository to Remote Cache.","outbound":[{"site":"turborepo","path":"/docs/core-concepts/remote-caching"}],"inbound":[],"requires":[{"site":"turborepo","path":"/docs/reference"}],"neighbors":[{"site":"turborepo","path":"/docs/reference/unlink","distance":0.2415},{"site":"turborepo","path":"/docs/reference/login","distance":0.2889},{"site":"turborepo","path":"/docs/reference","distance":0.3156},{"site":"turborepo","path":"/docs/core-concepts/remote-caching","distance":0.3294},{"site":"vercel-docs","path":"/docs/cli/link","distance":0.3369}],"related":[{"site":"vercel-docs","path":"/docs/cli/link","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/unlink","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/login","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/ci-vendors/gitlab-ci","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/docs","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/logout","via":"neighbor"}]},{"site":"turborepo","path":"/docs/reference/login","title":"login","summary":"All flags and options for the `turbo login` command that authenticates with your Remote Cache provider.","outbound":[],"inbound":[],"requires":[{"site":"turborepo","path":"/docs/reference"}],"neighbors":[{"site":"turborepo","path":"/docs/reference/logout","distance":0.2635},{"site":"turborepo","path":"/docs/reference/link","distance":0.2889},{"site":"turborepo","path":"/docs/reference","distance":0.3621},{"site":"turborepo","path":"/docs/reference/options-overview","distance":0.3691},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching/external-ci-cd","distance":0.4027}],"related":[{"site":"vercel-docs","path":"/docs/monorepos/remote-caching/external-ci-cd","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/login","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/logout","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/link","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/options-overview","via":"neighbor"},{"site":"turborepo","path":"/docs/core-concepts/remote-caching","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/unlink","via":"neighbor"}]},{"site":"turborepo","path":"/docs/reference/logout","title":"logout","summary":"Reference for the `turbo logout` command that signs out of your Remote Cache provider.","outbound":[],"inbound":[],"requires":[{"site":"turborepo","path":"/docs/reference"}],"neighbors":[{"site":"turborepo","path":"/docs/reference/unlink","distance":0.2306},{"site":"turborepo","path":"/docs/reference/login","distance":0.2635},{"site":"vercel-docs","path":"/docs/cli/logout","distance":0.3299},{"site":"turborepo","path":"/docs/reference/link","distance":0.3673},{"site":"turborepo","path":"/docs/reference","distance":0.371}],"related":[{"site":"vercel-docs","path":"/docs/cli/logout","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/unlink","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/login","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/link","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/info","via":"neighbor"},{"site":"turborepo","path":"/docs/core-concepts/remote-caching","via":"neighbor"}]},{"site":"turborepo","path":"/docs/reference/ls","title":"ls","summary":"All flags and options for the `turbo ls` command that lists packages in your monorepo.","outbound":[],"inbound":[{"site":"turborepo","path":"/docs/support-policy"}],"requires":[{"site":"turborepo","path":"/docs/reference"}],"neighbors":[{"site":"turborepo","path":"/docs/reference","distance":0.2249},{"site":"turborepo","path":"/docs/reference/query","distance":0.232},{"site":"turborepo","path":"/docs/reference/options-overview","distance":0.2816},{"site":"turborepo","path":"/docs/crafting-your-repository/understanding-your-repository","distance":0.2866},{"site":"turborepo","path":"/docs/reference/info","distance":0.3007}],"related":[{"site":"turborepo","path":"/docs/reference/query","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/options-overview","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/understanding-your-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/info","via":"neighbor"},{"site":"turborepo","path":"/docs/support-policy","via":"neighbor"}]},{"site":"turborepo","path":"/docs/reference/options-overview","title":"Options overview","summary":"Quick-reference table mapping CLI flags, environment variables, and turbo.json configuration options.","outbound":[{"site":"turborepo","path":"/docs/reference"},{"site":"turborepo","path":"/docs/reference/configuration"},{"site":"turborepo","path":"/docs/reference/run"},{"site":"turborepo","path":"/docs/reference/system-environment-variables"}],"inbound":[],"requires":[{"site":"turborepo","path":"/docs/reference"}],"neighbors":[{"site":"turborepo","path":"/docs/reference/system-environment-variables","distance":0.1408},{"site":"turborepo","path":"/docs/reference","distance":0.1613},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","distance":0.2013},{"site":"turborepo","path":"/docs/support-policy","distance":0.2031},{"site":"turborepo","path":"/docs/reference/query","distance":0.2159}],"related":[{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","via":"neighbor"},{"site":"turborepo","path":"/docs/support-policy","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/query","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","via":"neighbor"}]},{"site":"turborepo","path":"/docs/reference/package-configurations","title":"Package Configurations","summary":"Reference for creating per-package turbo.json overrides to customize task behavior.","outbound":[{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks"},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks"},{"site":"turborepo","path":"/docs/reference/boundaries"},{"site":"turborepo","path":"/docs/reference/configuration"},{"site":"turborepo","path":"/docs/reference/run"}],"inbound":[{"site":"turborepo","path":"/docs/crafting-your-repository/caching"},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks"},{"site":"turborepo","path":"/docs/getting-started/editor-integration"},{"site":"turborepo","path":"/docs/guides/coordinating-runtime-dependencies"},{"site":"turborepo","path":"/docs/guides/frameworks/nextjs"},{"site":"turborepo","path":"/docs/guides/frameworks/nuxt"},{"site":"turborepo","path":"/docs/guides/frameworks/rsbuild"},{"site":"turborepo","path":"/docs/guides/frameworks/sveltekit"},{"site":"turborepo","path":"/docs/guides/frameworks/vite"},{"site":"turborepo","path":"/docs/guides/tools/storybook"},{"site":"turborepo","path":"/docs/reference/configuration"},{"site":"turborepo","path":"/docs/reference/run"}],"requires":[{"site":"turborepo","path":"/docs/reference/configuration"}],"neighbors":[{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.1179},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","distance":0.1632},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","distance":0.1667},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","distance":0.1746},{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications","distance":0.1804}],"related":[{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/typescript","via":"neighbor"}]},{"site":"turborepo","path":"/docs/reference/prune","title":"prune","summary":"All flags and options for the `turbo prune` command that generates a partial monorepo for a target package.","outbound":[{"site":"turborepo","path":"/docs/guides/tools/docker"},{"site":"turborepo","path":"/docs/reference/configuration"}],"inbound":[{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci"},{"site":"turborepo","path":"/docs/crafting-your-repository/creating-an-internal-package"},{"site":"turborepo","path":"/docs/crafting-your-repository/managing-dependencies"},{"site":"turborepo","path":"/docs/reference/configuration"},{"site":"turborepo","path":"/docs/support-policy"},{"site":"turborepo","path":"/docs/telemetry"}],"requires":[{"site":"turborepo","path":"/docs/reference"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/tools/docker","distance":0.2008},{"site":"turborepo","path":"/docs/reference","distance":0.2769},{"site":"turborepo","path":"/docs/support-policy","distance":0.278},{"site":"turborepo","path":"/docs/getting-started/installation","distance":0.2789},{"site":"turborepo","path":"/docs/reference/create-turbo","distance":0.2801}],"related":[{"site":"turborepo","path":"/docs/support-policy","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started/installation","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/create-turbo","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","via":"neighbor"}]},{"site":"turborepo","path":"/docs/reference/query","title":"query","summary":"All flags and options for the `turbo query` command that runs GraphQL queries against your monorepo.","outbound":[{"site":"turborepo","path":"/docs/crafting-your-repository/caching"},{"site":"turborepo","path":"/docs/reference/configuration"},{"site":"turborepo","path":"/docs/reference/run"}],"inbound":[{"site":"turborepo","path":"/docs/crafting-your-repository/caching"},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci"},{"site":"turborepo","path":"/docs/guides/skipping-tasks"},{"site":"turborepo","path":"/docs/guides/tools/python"},{"site":"turborepo","path":"/docs/guides/tools/rust"},{"site":"turborepo","path":"/docs/reference/run"},{"site":"turborepo","path":"/docs/support-policy"}],"requires":[{"site":"turborepo","path":"/docs/reference"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/skipping-tasks","distance":0.1967},{"site":"turborepo","path":"/docs/reference","distance":0.2022},{"site":"turborepo","path":"/docs/reference/options-overview","distance":0.2159},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","distance":0.2204},{"site":"turborepo","path":"/docs/crafting-your-repository/understanding-your-repository","distance":0.2276}],"related":[{"site":"turborepo","path":"/docs/guides/skipping-tasks","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/options-overview","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/understanding-your-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/package-configurations","via":"neighbor"}]},{"site":"turborepo","path":"/docs/reference/run","title":"run","summary":"All flags and options for the `turbo run` command used to execute tasks.","outbound":[{"site":"turborepo","path":"/docs/core-concepts/internal-packages"},{"site":"turborepo","path":"/docs/core-concepts/package-and-task-graph"},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks"},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables"},{"site":"turborepo","path":"/docs/reference/configuration"},{"site":"turborepo","path":"/docs/reference/package-configurations"},{"site":"turborepo","path":"/docs/reference/query"},{"site":"turborepo","path":"/docs/reference/system-environment-variables"}],"inbound":[{"site":"turborepo","path":"/docs/crafting-your-repository/caching"},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks"},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci"},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks"},{"site":"turborepo","path":"/docs/crafting-your-repository/upgrading"},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables"},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository"},{"site":"turborepo","path":"/docs/getting-started/installation"},{"site":"turborepo","path":"/docs/guides/coordinating-runtime-dependencies"},{"site":"turborepo","path":"/docs/guides/migrating-from-nx"},{"site":"turborepo","path":"/docs/guides/tools/jest"},{"site":"turborepo","path":"/docs/guides/tools/playwright"},{"site":"turborepo","path":"/docs/guides/tools/python"},{"site":"turborepo","path":"/docs/guides/tools/rust"},{"site":"turborepo","path":"/docs/reference/configuration"},{"site":"turborepo","path":"/docs/reference/options-overview"},{"site":"turborepo","path":"/docs/reference/package-configurations"},{"site":"turborepo","path":"/docs/reference/query"},{"site":"turborepo","path":"/docs/reference/system-environment-variables"},{"site":"turborepo","path":"/docs/reference/watch"},{"site":"turborepo","path":"/docs/support-policy"},{"site":"turborepo","path":"/docs/telemetry"}],"requires":[{"site":"turborepo","path":"/docs/reference/configuration"}],"neighbors":[{"site":"turborepo","path":"/docs/reference/configuration","distance":0.1582},{"site":"turborepo","path":"/docs/reference/query","distance":0.2665},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","distance":0.2723},{"site":"turborepo","path":"/docs/reference/package-configurations","distance":0.2834},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.2844}],"related":[{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/skipping-tasks","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/options-overview","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/rust","via":"neighbor"},{"site":"turborepo","path":"/docs/support-policy","via":"neighbor"}]},{"site":"turborepo","path":"/docs/reference/scan","title":"scan (Deprecated)","summary":"The `turbo scan` command has been deprecated and will be removed in a future major version.","outbound":[{"site":"turborepo","path":"/docs/core-concepts/remote-caching"}],"inbound":[{"site":"turborepo","path":"/docs/support-policy"}],"requires":[{"site":"turborepo","path":"/docs/reference"}],"neighbors":[{"site":"turborepo","path":"/docs/reference","distance":0.2548},{"site":"turborepo","path":"/docs/support-policy","distance":0.2673},{"site":"turborepo","path":"/docs/reference/turbo-ignore","distance":0.2813},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","distance":0.3041},{"site":"turborepo","path":"/docs/reference/info","distance":0.313}],"related":[{"site":"turborepo","path":"/docs/support-policy","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/turbo-ignore","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/info","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications","via":"neighbor"}]},{"site":"turborepo","path":"/docs/reference/system-environment-variables","title":"System environment variables","summary":"All environment variables that control Turborepo behavior including Remote Cache, logging, and CI settings.","outbound":[{"site":"turborepo","path":"/docs/core-concepts/remote-caching"},{"site":"turborepo","path":"/docs/guides/microfrontends"},{"site":"turborepo","path":"/docs/reference/configuration"},{"site":"turborepo","path":"/docs/reference/run"},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching"}],"inbound":[{"site":"turborepo","path":"/docs/reference"},{"site":"turborepo","path":"/docs/reference/configuration"},{"site":"turborepo","path":"/docs/reference/options-overview"},{"site":"turborepo","path":"/docs/reference/run"},{"site":"turborepo","path":"/docs/support-policy"}],"requires":[{"site":"turborepo","path":"/docs/reference"}],"neighbors":[{"site":"turborepo","path":"/docs/reference/options-overview","distance":0.1408},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","distance":0.1474},{"site":"turborepo","path":"/docs/reference","distance":0.2254},{"site":"turborepo","path":"/docs/support-policy","distance":0.2353},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.2382}],"related":[{"site":"turborepo","path":"/docs/reference/options-overview","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","via":"neighbor"},{"site":"turborepo","path":"/docs/support-policy","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/caching","via":"neighbor"}]},{"site":"turborepo","path":"/docs/reference/telemetry","title":"telemetry","summary":"Reference for the `turbo telemetry` command that manages anonymous usage data collection.","outbound":[],"inbound":[],"requires":[{"site":"turborepo","path":"/docs/reference"}],"neighbors":[{"site":"turborepo","path":"/docs/telemetry","distance":0.1849},{"site":"turborepo","path":"/docs/reference/info","distance":0.2896},{"site":"turborepo","path":"/docs/reference","distance":0.2938},{"site":"vercel-docs","path":"/docs/cli/telemetry","distance":0.3018},{"site":"vercel-docs","path":"/docs/cli/about-telemetry","distance":0.3101}],"related":[{"site":"vercel-docs","path":"/docs/cli/telemetry","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/about-telemetry","via":"neighbor"},{"site":"turborepo","path":"/docs/telemetry","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/info","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/options-overview","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/system-environment-variables","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/scan","via":"neighbor"}]},{"site":"turborepo","path":"/docs/reference/turbo-codemod","title":"@turbo/codemod","summary":"Reference for the `@turbo/codemod` package that automates Turborepo version migrations.","outbound":[],"inbound":[{"site":"turborepo","path":"/docs/messages/invalid-env-prefix"}],"requires":[{"site":"turborepo","path":"/docs/reference"}],"neighbors":[{"site":"turborepo","path":"/docs/crafting-your-repository/upgrading","distance":0.176},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","distance":0.2233},{"site":"turborepo","path":"/docs/reference","distance":0.2374},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","distance":0.2378},{"site":"turborepo","path":"/docs/reference/package-configurations","distance":0.238}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopack","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopack","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/upgrading","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/package-configurations","via":"neighbor"},{"site":"turborepo","path":"/docs/support-policy","via":"neighbor"}]},{"site":"turborepo","path":"/docs/reference/turbo-gen","title":"@turbo/gen","summary":"Reference for the `@turbo/gen` package that provides type definitions for Turborepo code generators.","outbound":[{"site":"turborepo","path":"/docs/guides/generating-code"},{"site":"turborepo","path":"/docs/reference/generate"}],"inbound":[{"site":"turborepo","path":"/docs/guides/generating-code"}],"requires":[{"site":"turborepo","path":"/docs/reference"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/generating-code","distance":0.1287},{"site":"turborepo","path":"/docs/reference/generate","distance":0.2007},{"site":"turborepo","path":"/docs/reference/turbo-codemod","distance":0.2714},{"site":"turborepo","path":"/docs/reference/create-turbo","distance":0.2764},{"site":"turborepo","path":"/docs/reference","distance":0.2801}],"related":[{"site":"turborepo","path":"/docs/reference/turbo-codemod","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/create-turbo","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started/installation","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/eslint-config-turbo","via":"neighbor"}]},{"site":"turborepo","path":"/docs/reference/turbo-ignore","title":"turbo-ignore","summary":"Reference for the `turbo-ignore` package that determines whether to skip CI tasks based on package changes.","outbound":[{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci"},{"site":"turborepo","path":"/docs/guides/skipping-tasks"},{"site":"turborepo","path":"/docs/reference/configuration"}],"inbound":[{"site":"turborepo","path":"/docs/support-policy"}],"requires":[{"site":"turborepo","path":"/docs/reference"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/skipping-tasks","distance":0.1513},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","distance":0.2351},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","distance":0.2455},{"site":"turborepo","path":"/docs/reference","distance":0.2457},{"site":"turborepo","path":"/docs/support-policy","distance":0.256}],"related":[{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","via":"neighbor"},{"site":"turborepo","path":"/docs/support-policy","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/query","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","via":"neighbor"}]},{"site":"turborepo","path":"/docs/reference/unlink","title":"unlink","summary":"Reference for the `turbo unlink` command that disconnects your repository from Remote Cache.","outbound":[],"inbound":[],"requires":[{"site":"turborepo","path":"/docs/reference"}],"neighbors":[{"site":"turborepo","path":"/docs/reference/logout","distance":0.2306},{"site":"turborepo","path":"/docs/reference/link","distance":0.2415},{"site":"turborepo","path":"/docs/reference","distance":0.3384},{"site":"turborepo","path":"/docs/reference/info","distance":0.3653},{"site":"turborepo","path":"/docs/reference/scan","distance":0.3665}],"related":[{"site":"turborepo","path":"/docs/reference/logout","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/link","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/info","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/scan","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/bin","via":"neighbor"}]},{"site":"turborepo","path":"/docs/reference/watch","title":"watch","summary":"All flags and options for the `turbo watch` command that re-runs tasks on code changes.","outbound":[{"site":"turborepo","path":"/docs/reference/configuration"},{"site":"turborepo","path":"/docs/reference/run"}],"inbound":[{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications"},{"site":"turborepo","path":"/docs/support-policy"}],"requires":[{"site":"turborepo","path":"/docs/reference/configuration"}],"neighbors":[{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications","distance":0.2555},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","distance":0.279},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.3176},{"site":"turborepo","path":"/docs/reference/package-configurations","distance":0.3291},{"site":"turborepo","path":"/docs/guides/skipping-tasks","distance":0.3348}],"related":[{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/package-configurations","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/skipping-tasks","via":"neighbor"}]},{"site":"turborepo","path":"/docs/support-policy","title":"Support policy","summary":"Supported package managers, platforms, Node.js versions, and LTS policy for Turborepo.","outbound":[{"site":"turborepo","path":"/docs/getting-started/examples"},{"site":"turborepo","path":"/docs/reference"},{"site":"turborepo","path":"/docs/reference/boundaries"},{"site":"turborepo","path":"/docs/reference/configuration"},{"site":"turborepo","path":"/docs/reference/create-turbo"},{"site":"turborepo","path":"/docs/reference/eslint-config-turbo"},{"site":"turborepo","path":"/docs/reference/ls"},{"site":"turborepo","path":"/docs/reference/prune"},{"site":"turborepo","path":"/docs/reference/query"},{"site":"turborepo","path":"/docs/reference/run"},{"site":"turborepo","path":"/docs/reference/scan"},{"site":"turborepo","path":"/docs/reference/system-environment-variables"},{"site":"turborepo","path":"/docs/reference/turbo-ignore"},{"site":"turborepo","path":"/docs/reference/watch"}],"inbound":[],"requires":[{"site":"turborepo","path":"/docs"}],"neighbors":[{"site":"turborepo","path":"/docs/reference","distance":0.1769},{"site":"turborepo","path":"/docs/reference/options-overview","distance":0.2031},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","distance":0.2197},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","distance":0.223},{"site":"turborepo","path":"/docs/guides/tools/rust","distance":0.2236}],"related":[{"site":"turborepo","path":"/docs/reference/options-overview","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/rust","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/upgrading","via":"neighbor"}]},{"site":"turborepo","path":"/docs/telemetry","title":"Telemetry","summary":"Understand what anonymous telemetry data Turborepo collects and how to opt out.","outbound":[{"site":"turborepo","path":"/docs/reference/generate"},{"site":"turborepo","path":"/docs/reference/prune"},{"site":"turborepo","path":"/docs/reference/run"}],"inbound":[],"requires":[{"site":"turborepo","path":"/docs"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/about-telemetry","distance":0.1584},{"site":"turborepo","path":"/docs/reference/telemetry","distance":0.1849},{"site":"vercel-docs","path":"/docs/cli/telemetry","distance":0.2109},{"site":"turborepo","path":"/docs/reference","distance":0.2963},{"site":"turborepo","path":"/docs/reference/options-overview","distance":0.3316}],"related":[{"site":"vercel-docs","path":"/docs/cli/about-telemetry","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/telemetry","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/telemetry","via":"neighbor"},{"site":"turborepo","path":"/docs/reference","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/options-overview","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/info","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/system-environment-variables","via":"neighbor"}]},{"site":"v0","path":"/docs","title":"What is v0?","summary":"v0 is an AI agent that helps anyone create real code and full-stack apps and agents.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/faqs","distance":0.1338},{"site":"v0","path":"/docs/api/v1","distance":0.1344},{"site":"v0","path":"/docs/quickstart","distance":0.1356},{"site":"v0","path":"/docs/agentic-features","distance":0.1357},{"site":"v0","path":"/docs/full-stack-apps","distance":0.1446}],"related":[]},{"site":"v0","path":"/docs/MCP","title":"MCP Integrations","summary":"Connect and use MCP servers directly in v0","outbound":[{"site":"v0","path":"/docs/api/v2/guides/mcp-server"},{"site":"v0","path":"/docs/terminal-commands"}],"inbound":[{"site":"v0","path":"/docs/agentic-features"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/adapters/mcp-server","distance":0.1474},{"site":"v0","path":"/docs/api/v2/guides/mcp-server","distance":0.1666},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp","distance":0.2138},{"site":"v0","path":"/docs/agentic-features","distance":0.2148},{"site":"v0","path":"/docs/api/v2/guides/handling-integrations","distance":0.2256}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/adapters/mcp-server","via":"neighbor"},{"site":"v0","path":"/docs/agentic-features","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/handling-integrations","via":"neighbor"},{"site":"v0","path":"/docs/vercel-integration","via":"neighbor"},{"site":"v0","path":"/docs/faqs","via":"neighbor"}]},{"site":"v0","path":"/docs/account","title":"Account","summary":"Manage your account and billing information.","outbound":[{"site":"vercel-docs","path":"/docs/rbac/access-roles"}],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/usage-dashboard","distance":0.2427},{"site":"vercel-docs","path":"/docs/accounts","distance":0.2652},{"site":"v0","path":"/docs/teams","distance":0.268},{"site":"v0","path":"/docs/pricing","distance":0.2787},{"site":"vercel-docs","path":"/docs/plans/pro-plan/billing","distance":0.2972}],"related":[{"site":"vercel-docs","path":"/docs/accounts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/billing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans/enterprise/billing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/enterprise-managed-users-account-update","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-agent","via":"neighbor"},{"site":"v0","path":"/docs/usage-dashboard","via":"neighbor"},{"site":"v0","path":"/docs/teams","via":"neighbor"},{"site":"v0","path":"/docs/pricing","via":"neighbor"},{"site":"v0","path":"/docs/enterprise","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"}]},{"site":"v0","path":"/docs/agentic-features","title":"Agentic features","summary":"v0's intelligent agent capabilities for web search, browser use, terminal commands, error fixing, and external tool integration.","outbound":[{"site":"v0","path":"/docs/MCP"},{"site":"v0","path":"/docs/deployments"},{"site":"v0","path":"/docs/sandbox"},{"site":"v0","path":"/docs/terminal-commands"}],"inbound":[{"site":"v0","path":"/docs/deployments"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs","distance":0.1357},{"site":"v0","path":"/docs/quickstart","distance":0.1833},{"site":"v0","path":"/docs/terminal-commands","distance":0.1904},{"site":"v0","path":"/docs/api/v1","distance":0.1907},{"site":"v0","path":"/docs/faqs","distance":0.1983}],"related":[{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/api/v1","via":"neighbor"},{"site":"v0","path":"/docs/faqs","via":"neighbor"},{"site":"v0","path":"/docs/text-prompting","via":"neighbor"},{"site":"v0","path":"/docs/api/v2","via":"neighbor"}]},{"site":"v0","path":"/docs/ai-models","title":"AI models","summary":"Add AI functionality to your v0 projects by integrating AI models and platforms.","outbound":[],"inbound":[{"site":"v0","path":"/docs/databases"},{"site":"v0","path":"/docs/full-stack-apps"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","distance":0.1953},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model","distance":0.2019},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","distance":0.2226},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-provider","distance":0.2509},{"site":"vercel-docs","path":"/docs/ai-gateway","distance":0.2591}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-provider","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/adapters/ai-tools","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/integrating-v0-into-agents","via":"neighbor"},{"site":"v0","path":"/docs/databases","via":"neighbor"},{"site":"v0","path":"/docs/full-stack-apps","via":"inbound"}]},{"site":"v0","path":"/docs/api/v1","title":"Overview","summary":"Core concepts, capabilities, and architecture","outbound":[{"site":"v0","path":"/docs/api/v1/examples/ai-tools"},{"site":"v0","path":"/docs/api/v1/examples/classic-v0"},{"site":"v0","path":"/docs/api/v1/examples/react-components"},{"site":"v0","path":"/docs/api/v1/examples/v0-clone"},{"site":"v0","path":"/docs/api/v1/guides/displaying-chat-messages"},{"site":"v0","path":"/docs/api/v1/guides/lock-files-from-ai-changes"},{"site":"v0","path":"/docs/api/v1/guides/oauth-mcp-servers"},{"site":"v0","path":"/docs/api/v1/guides/start-from-existing-code"},{"site":"v0","path":"/docs/api/v1/packages/v0-sdk"},{"site":"v0","path":"/docs/api/v1/quickstart"}],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/quickstart","distance":0.1312},{"site":"v0","path":"/docs","distance":0.1344},{"site":"v0","path":"/docs/api/v2","distance":0.1448},{"site":"v0","path":"/docs/api/v2/quickstart","distance":0.1569},{"site":"v0","path":"/docs/faqs","distance":0.1615}],"related":[{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/api/v2","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/faqs","via":"neighbor"},{"site":"v0","path":"/docs/full-stack-apps","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/adapters/ai-tools","title":"AI Tools","summary":"Integrate v0 API with AI SDK to build autonomous agents and intelligent workflows","outbound":[{"site":"v0","path":"/docs/api/v1/examples/ai-tools"},{"site":"v0","path":"/docs/api/v1/packages/ai-tools"}],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/packages/ai-tools","distance":0.0531},{"site":"v0","path":"/docs/api/v1/examples/ai-tools","distance":0.0749},{"site":"v0","path":"/docs/api/v2/guides/integrating-v0-into-agents","distance":0.205},{"site":"v0","path":"/docs/api/v1","distance":0.2063},{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.2095}],"related":[{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/coding-agents","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"workflow","path":"/docs/ai","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/integrating-v0-into-agents","via":"neighbor"},{"site":"v0","path":"/docs/agentic-features","via":"neighbor"},{"site":"v0","path":"/docs/ai-models","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/adapters/mcp-server","title":"MCP Server","summary":"The v0 MCP (Model Context Protocol) server allows you to integrate v0's capabilities directly into your IDE, providing seamless access to v0's AI-powered code generation and assistance.","outbound":[{"site":"v0","path":"/docs/api/v1/quickstart"}],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/guides/mcp-server","distance":0.1135},{"site":"v0","path":"/docs/MCP","distance":0.1474},{"site":"v0","path":"/docs/api/v1/guides/oauth-mcp-servers","distance":0.1762},{"site":"v0","path":"/docs/api/v2/guides/integrating-v0-into-agents","distance":0.208},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp","distance":0.2323}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-mcp-server-with-nuxt","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/mcp","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/mcp-server","via":"neighbor"},{"site":"v0","path":"/docs/MCP","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/guides/oauth-mcp-servers","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/integrating-v0-into-agents","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/get-by-id","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/examples/ai-tools","title":"AI Tools Example","summary":"Using v0-sdk with AI SDK for programmatic interaction","outbound":[],"inbound":[{"site":"v0","path":"/docs/api/v1"},{"site":"v0","path":"/docs/api/v1/adapters/ai-tools"},{"site":"v0","path":"/docs/api/v1/packages/ai-tools"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/adapters/ai-tools","distance":0.0749},{"site":"v0","path":"/docs/api/v1/packages/ai-tools","distance":0.076},{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.2018},{"site":"v0","path":"/docs/api/v2/guides/integrating-v0-into-agents","distance":0.2093},{"site":"v0","path":"/docs/api/v1","distance":0.2169}],"related":[{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/adapters/ai-tools","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/packages/ai-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/coding-agents","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"workflow","path":"/docs/ai","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/integrating-v0-into-agents","via":"neighbor"},{"site":"v0","path":"/docs/agentic-features","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/examples/classic-v0","title":"Classic v0","summary":"A faithful recreation of the original v0.dev interface","outbound":[],"inbound":[{"site":"v0","path":"/docs/api/v1"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/text-prompting","distance":0.2059},{"site":"v0","path":"/docs/full-stack-apps","distance":0.2101},{"site":"v0","path":"/docs/api/v2/quickstart","distance":0.211},{"site":"v0","path":"/docs/quickstart","distance":0.2303},{"site":"v0","path":"/docs/api/v2","distance":0.2334}],"related":[{"site":"v0","path":"/docs/text-prompting","via":"neighbor"},{"site":"v0","path":"/docs/full-stack-apps","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/api/v2","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/examples/react-components","title":"React Components Example","summary":"Using v0-sdk React components for streaming UI responses","outbound":[],"inbound":[{"site":"v0","path":"/docs/api/v1"},{"site":"v0","path":"/docs/api/v1/guides/displaying-chat-messages"},{"site":"v0","path":"/docs/api/v1/packages/react"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/packages/react","distance":0.1129},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","distance":0.2224},{"site":"v0","path":"/docs/api/v1","distance":0.2472},{"site":"v0","path":"/docs/api/v1/examples/classic-v0","distance":0.2585},{"site":"v0","path":"/docs/api/v2/quickstart","distance":0.2613}],"related":[{"site":"v0","path":"/docs/api/v1/packages/react","via":"neighbor"},{"site":"streamdown","path":"/docs/usage","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/examples/classic-v0","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/quickstart","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/examples/v0-clone","title":"v0 Clone","summary":"A full-featured v0 clone with authentication and multi-tenant support","outbound":[],"inbound":[{"site":"v0","path":"/docs/api/v1"},{"site":"v0","path":"/docs/api/v1/packages/create-v0-sdk-app"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/quickstart","distance":0.1926},{"site":"v0","path":"/docs/api/v1","distance":0.2058},{"site":"v0","path":"/docs/faqs","distance":0.2078},{"site":"v0","path":"/docs","distance":0.2219},{"site":"v0","path":"/docs/api/v2","distance":0.222}],"related":[{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/faqs","via":"neighbor"},{"site":"v0","path":"/docs/api/v2","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/packages/v0-sdk","via":"neighbor"},{"site":"v0","path":"/docs/deployments","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/guides/displaying-chat-messages","title":"Displaying Chat Messages","summary":"Learn how to render and format chat messages from the v0 API using @v0-sdk/react","outbound":[{"site":"v0","path":"/docs/api/v1/examples/react-components"},{"site":"v0","path":"/docs/api/v1/guides/lock-files-from-ai-changes"}],"inbound":[{"site":"v0","path":"/docs/api/v1"}],"requires":[],"neighbors":[{"site":"chat-sdk","path":"/docs/contributing/building","distance":0.3045},{"site":"v0","path":"/docs/api/v1/packages/react","distance":0.3075},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/direct-chat-transport","distance":0.3482},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui","distance":0.3493},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot","distance":0.3503}],"related":[{"site":"chat-sdk","path":"/docs/contributing/building","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/direct-chat-transport","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/streaming-data","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/message","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/packages/react","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/send-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/create","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-streaming","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/guides/environment-variables","title":"Environment Variables","summary":"Learn how to manage environment variables and configuration in v0 projects","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/guides/environment-variables","distance":0.1277},{"site":"v0","path":"/docs/api/v1/reference/projects/create-env-vars","distance":0.1727},{"site":"v0","path":"/docs/api/v1/reference/projects/find-env-vars","distance":0.1887},{"site":"v0","path":"/docs/api/v1/reference/projects/get-env-var","distance":0.2122},{"site":"v0","path":"/docs/api/v1/reference/projects/update-env-vars","distance":0.2203}],"related":[{"site":"vercel-docs","path":"/docs/environment-variables","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/managing-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/manage-across-environments","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/environment-variables","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/create-env-vars","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/find-env-vars","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/get-env-var","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/update-env-vars","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/guides/handling-integrations","title":"Handling Integrations","summary":"Learn how to handle integration requests and follow-up script permissions in the v0 API","outbound":[{"site":"v0","path":"/docs/api/v1/reference/chats/resolve-task"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/connect-integration-resource-to-project"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/create-integration-store-free-and-paid-plans"}],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/guides/handling-integrations","distance":0.013},{"site":"v0","path":"/docs/api/v2/guides/handling-agent-interactions","distance":0.2223},{"site":"v0","path":"/docs/vercel-integration","distance":0.2589},{"site":"v0","path":"/docs/MCP","distance":0.2649},{"site":"v0","path":"/docs/quickstart","distance":0.2687}],"related":[{"site":"v0","path":"/docs/api/v2/guides/handling-integrations","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/handling-agent-interactions","via":"neighbor"},{"site":"v0","path":"/docs/vercel-integration","via":"neighbor"},{"site":"v0","path":"/docs/MCP","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/guides/lock-files-from-ai-changes","title":"Lock Files from AI Changes","summary":"Learn how to protect files from AI modifications in v0 chats","outbound":[],"inbound":[{"site":"v0","path":"/docs/api/v1"},{"site":"v0","path":"/docs/api/v1/guides/displaying-chat-messages"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/guides/locking-files-from-ai-changes","distance":0},{"site":"v0","path":"/docs/api/v1/guides/start-from-existing-code","distance":0.2793},{"site":"v0","path":"/docs/api/v1","distance":0.3548},{"site":"v0","path":"/docs/api/v1/reference/chats/update-version","distance":0.3809},{"site":"v0","path":"/docs/api/v1/adapters/ai-tools","distance":0.3827}],"related":[{"site":"v0","path":"/docs/api/v1/guides/locking-files-from-ai-changes","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/types","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/guides/start-from-existing-code","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/update-version","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/adapters/ai-tools","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/fork","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/guides/locking-files-from-ai-changes","title":"Lock Files from AI Changes","summary":"Learn how to protect files from AI modifications in v0 chats","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/guides/lock-files-from-ai-changes","distance":0},{"site":"v0","path":"/docs/api/v1/guides/start-from-existing-code","distance":0.2793},{"site":"v0","path":"/docs/api/v1","distance":0.3548},{"site":"v0","path":"/docs/api/v1/reference/chats/update-version","distance":0.3809},{"site":"v0","path":"/docs/api/v1/adapters/ai-tools","distance":0.3827}],"related":[{"site":"v0","path":"/docs/api/v1/guides/lock-files-from-ai-changes","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/types","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/guides/start-from-existing-code","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/update-version","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/adapters/ai-tools","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/fork","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/guides/oauth-mcp-servers","title":"OAuth MCP Servers","summary":"Configure OAuth-authenticated MCP servers with the v0 API","outbound":[],"inbound":[{"site":"v0","path":"/docs/api/v1"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create-oauth-authorization-url","distance":0.1412},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create","distance":0.156},{"site":"v0","path":"/docs/api/v2/guides/mcp-server","distance":0.1601},{"site":"v0","path":"/docs/api/v1/adapters/mcp-server","distance":0.1762},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/update","distance":0.2161}],"related":[{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create-oauth-authorization-url","via":"neighbor"},{"site":"eve","path":"/docs/channels/mcp","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/mcp-server","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/adapters/mcp-server","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/update","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/guides/start-from-existing-code","title":"Start from Existing Code","summary":"Learn how to start v0 chats from existing codebases, repositories, and file structures","outbound":[],"inbound":[{"site":"v0","path":"/docs/api/v1"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1","distance":0.1907},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","distance":0.2075},{"site":"v0","path":"/docs/api/v2/quickstart","distance":0.2173},{"site":"v0","path":"/docs/quickstart","distance":0.2239},{"site":"v0","path":"/docs/api/v1/quickstart","distance":0.2292}],"related":[{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/api/v2","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/packages/ai-tools","title":"@v0-sdk/ai-tools","summary":"AI SDK tools for the v0 API","outbound":[{"site":"v0","path":"/docs/api/v1/examples/ai-tools"}],"inbound":[{"site":"v0","path":"/docs/api/v1/adapters/ai-tools"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/adapters/ai-tools","distance":0.0531},{"site":"v0","path":"/docs/api/v1/examples/ai-tools","distance":0.076},{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.1925},{"site":"v0","path":"/docs/api/v1","distance":0.2003},{"site":"chat-sdk","path":"/docs/ai","distance":0.2089}],"related":[{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/adapters/ai-tools","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/types","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/coding-agents","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/integrating-v0-into-agents","via":"neighbor"},{"site":"v0","path":"/docs/agentic-features","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/packages/create-v0-sdk-app","title":"create-v0-sdk-app","summary":"Create v0 SDK-powered apps with one command","outbound":[{"site":"v0","path":"/docs/api/v1/examples/v0-clone"}],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2","distance":0.2167},{"site":"v0","path":"/docs/api/v1","distance":0.2274},{"site":"v0","path":"/docs/quickstart","distance":0.2326},{"site":"v0","path":"/docs/api/v1/examples/v0-clone","distance":0.2327},{"site":"v0","path":"/docs/api/v2/quickstart","distance":0.2331}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/cli/create-next-app","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/cli/create-next-app","via":"neighbor"},{"site":"v0","path":"/docs/api/v2","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/packages/v0-sdk","via":"neighbor"},{"site":"v0","path":"/docs/full-stack-apps","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/packages/react","title":"@v0-sdk/react","summary":"Headless React components for rendering v0 API content","outbound":[{"site":"v0","path":"/docs/api/v1/examples/react-components"}],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/examples/react-components","distance":0.1129},{"site":"v0","path":"/docs/api/v1/packages/v0-sdk","distance":0.19},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","distance":0.2029},{"site":"v0","path":"/docs/api/v1","distance":0.2446},{"site":"v0","path":"/docs/api/v2/quickstart","distance":0.2624}],"related":[{"site":"streamdown","path":"/docs/usage","via":"neighbor"},{"site":"chat-sdk","path":"/docs/cards","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/packages/v0-sdk","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/guides/start-from-existing-code","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/packages/v0-sdk","title":"v0-sdk","summary":"TypeScript SDK for the v0 API","outbound":[{"site":"v0","path":"/docs/api/v1/quickstart"}],"inbound":[{"site":"v0","path":"/docs/api/v1"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1","distance":0.1671},{"site":"v0","path":"/docs/api/v1/quickstart","distance":0.1697},{"site":"v0","path":"/docs/api/v1/packages/react","distance":0.19},{"site":"v0","path":"/docs/api/v2","distance":0.2034},{"site":"v0","path":"/docs/api/v1/examples/v0-clone","distance":0.2248}],"related":[{"site":"v0","path":"/docs/api/v1/packages/react","via":"neighbor"},{"site":"v0","path":"/docs/api/v2","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/examples/v0-clone","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/quickstart","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/quickstart","title":"Quickstart","summary":"Get started with the v0 API in minutes","outbound":[],"inbound":[{"site":"v0","path":"/docs/api/v1"},{"site":"v0","path":"/docs/api/v1/adapters/mcp-server"},{"site":"v0","path":"/docs/api/v1/packages/v0-sdk"}],"requires":[{"site":"v0","path":"/docs/api/v1"}],"neighbors":[{"site":"v0","path":"/docs/api/v2/quickstart","distance":0.1299},{"site":"v0","path":"/docs/api/v1","distance":0.1674},{"site":"v0","path":"/docs/api/v1/packages/v0-sdk","distance":0.1697},{"site":"v0","path":"/docs/api/v2","distance":0.1757},{"site":"v0","path":"/docs/quickstart","distance":0.1772}],"related":[{"site":"v0","path":"/docs/api/v2/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/packages/v0-sdk","via":"neighbor"},{"site":"v0","path":"/docs/api/v2","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/guides/start-from-existing-code","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/chats/create","title":"Create Chat","summary":"Creates a new chat using a user message, optional system context, and model configuration. Useful for prompting the model within the scope of a specific project.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/chats/send-message","distance":0.0547},{"site":"v0","path":"/docs/api/v1/reference/chats/init","distance":0.0638},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","distance":0.1571},{"site":"v0","path":"/docs/api/v1/reference/chats/update","distance":0.158},{"site":"v0","path":"/docs/api/v1/reference/chats/fork","distance":0.168}],"related":[{"site":"v0","path":"/docs/api/v1/reference/chats/send-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/init","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/update","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/fork","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/chats/delete","title":"Delete Chat","summary":"Deletes a specific chat based on the provided chatId. This operation is irreversible and permanently removes the chat and its contents.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/chats/delete-chat","distance":0.0658},{"site":"v0","path":"/docs/api/v1/reference/chats/delete-version-files","distance":0.1855},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat","distance":0.2509},{"site":"v0","path":"/docs/api/v1/reference/projects/delete","distance":0.3018},{"site":"v0","path":"/docs/api/v1/reference/chats/get-message","distance":0.31}],"related":[{"site":"v0","path":"/docs/api/v2/reference/chats/delete-chat","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/delete-version-files","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/delete","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-message","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/chats/delete-version-files","title":"Delete Chat Version Files","summary":"Deletes source files from a specific chat version (block). Files are removed from the version and a new source version is created.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/chats/update-version","distance":0.1826},{"site":"v0","path":"/docs/api/v1/reference/chats/delete","distance":0.1855},{"site":"v0","path":"/docs/api/v1/reference/chats/get-version","distance":0.1911},{"site":"v0","path":"/docs/api/v2/reference/chats/delete-chat","distance":0.201},{"site":"v0","path":"/docs/api/v1/reference/chats/restore-version","distance":0.2432}],"related":[{"site":"v0","path":"/docs/api/v1/reference/chats/update-version","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/delete","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-version","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/delete-chat","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/restore-version","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/chats/download-version","title":"Download version files","summary":"Download all files for a specific chat version as a zip or tarball archive. Use includeDefaultFiles=true to include all deployment files (package.json, configuration files, etc.) or false/omitted to return only the generated source files.","outbound":[],"inbound":[{"site":"v0","path":"/docs/api/v2/guides/migrating-from-v1-to-v2"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/chats/download-chat-files","distance":0.1465},{"site":"v0","path":"/docs/api/v1/reference/chats/get-version","distance":0.1869},{"site":"v0","path":"/docs/api/v1/reference/chats/find-versions","distance":0.2521},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat-files","distance":0.2524},{"site":"v0","path":"/docs/api/v1/reference/chats/update-version","distance":0.255}],"related":[{"site":"v0","path":"/docs/api/v2/reference/chats/download-chat-files","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-version","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/find-versions","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat-files","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/update-version","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/chats/favorite","title":"Favorite Chat","summary":"Marks or unmarks a chat as a favorite using its `chatId`. This helps with organizing and quickly accessing important chats.","outbound":[{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat"},{"site":"v0","path":"/docs/api/v2/reference/chats/list-chats"},{"site":"v0","path":"/docs/api/v2/reference/chats/update-chat"}],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/chats/find","distance":0.2708},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat","distance":0.2738},{"site":"v0","path":"/docs/api/v2/reference/chats/update-chat","distance":0.3175},{"site":"v0","path":"/docs/api/v2/reference/chats/list-chats","distance":0.3225},{"site":"v0","path":"/docs/api/v1/reference/chats/get-message","distance":0.3271}],"related":[{"site":"v0","path":"/docs/api/v1/reference/chats/find","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/delete","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/find-versions","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/chats/find","title":"Find Chats","summary":"Retrieves a list of existing chats, with support for pagination and filtering by favorite status, Vercel project, or Git branch. Helps manage and navigate chat history.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/chats/list-chats","distance":0.1031},{"site":"v0","path":"/docs/api/v1/reference/chats/find-messages","distance":0.1082},{"site":"v0","path":"/docs/api/v1/reference/chats/find-versions","distance":0.1312},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-chat-id","distance":0.1467},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","distance":0.1522}],"related":[{"site":"v0","path":"/docs/api/v2/reference/chats/list-chats","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/find-messages","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/find-versions","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-chat-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/chats/find-messages","title":"Find Chat Messages","summary":"Retrieves a list of all messages for a specific chat, ordered by creation date (newest first). Supports cursor-based pagination and includes message content, role, and type information.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/chats/get-message","distance":0.0986},{"site":"v0","path":"/docs/api/v1/reference/chats/find","distance":0.1082},{"site":"v0","path":"/docs/api/v1/reference/chats/find-versions","distance":0.1389},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","distance":0.1563},{"site":"v0","path":"/docs/api/v2/reference/chats/list-chats","distance":0.1643}],"related":[{"site":"v0","path":"/docs/api/v1/reference/chats/get-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/find","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/find-versions","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/list-chats","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/chats/find-versions","title":"Find Chat Versions","summary":"Retrieves a list of all versions (iterations) for a specific chat, ordered by creation date (newest first). Supports cursor-based pagination and includes version status and demo URLs.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/chats/get-version","distance":0.1038},{"site":"v0","path":"/docs/api/v1/reference/chats/find","distance":0.1312},{"site":"v0","path":"/docs/api/v1/reference/chats/find-messages","distance":0.1389},{"site":"v0","path":"/docs/api/v2/reference/chats/list-chats","distance":0.1987},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat","distance":0.2156}],"related":[{"site":"v0","path":"/docs/api/v1/reference/chats/get-version","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/find","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/find-messages","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/list-chats","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/chats/fork","title":"Fork Chat","summary":"Creates a new chat fork (duplicate) from a specific version within an existing chat.","outbound":[{"site":"v0","path":"/docs/api/v2/reference/chats/duplicate-chat"}],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","distance":0.0435},{"site":"v0","path":"/docs/api/v1/reference/chats/update","distance":0.0694},{"site":"v0","path":"/docs/api/v1/reference/chats/send-message","distance":0.1631},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat","distance":0.1645},{"site":"v0","path":"/docs/api/v1/reference/chats/create","distance":0.168}],"related":[{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/update","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/send-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/create","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","title":"Get Chat","summary":"Retrieves the full details of a specific chat using its `chatId`. Includes messages, metadata, and associated configuration.","outbound":[],"inbound":[{"site":"v0","path":"/docs/api/v1/reference/deployments/find"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/chats/update","distance":0.0405},{"site":"v0","path":"/docs/api/v1/reference/chats/fork","distance":0.0435},{"site":"v0","path":"/docs/api/v1/reference/chats/get-message","distance":0.1316},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat","distance":0.1505},{"site":"v0","path":"/docs/api/v1/reference/chats/find","distance":0.1522}],"related":[{"site":"v0","path":"/docs/api/v1/reference/chats/update","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/fork","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/find","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/chats/get-message","title":"Get Chat Message","summary":"Retrieves detailed information about a specific message within a chat, including content, files, model configuration, and demo URLs.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/chats/find-messages","distance":0.0986},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","distance":0.1316},{"site":"v0","path":"/docs/api/v1/reference/chats/get-version","distance":0.1574},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat","distance":0.1607},{"site":"v0","path":"/docs/api/v1/reference/chats/find","distance":0.1767}],"related":[{"site":"v0","path":"/docs/api/v1/reference/chats/find-messages","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-version","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/find","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/chats/get-version","title":"Get Chat Version","summary":"Retrieves detailed information about a specific version of a chat, including all files with their content and lock status.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/chats/find-versions","distance":0.1038},{"site":"v0","path":"/docs/api/v1/reference/chats/update-version","distance":0.1519},{"site":"v0","path":"/docs/api/v1/reference/chats/get-message","distance":0.1574},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat","distance":0.1676},{"site":"v0","path":"/docs/api/v1/reference/chats/find","distance":0.1721}],"related":[{"site":"v0","path":"/docs/api/v1/reference/chats/find-versions","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/update-version","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/find","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/chats/init","title":"Initialize Chat","summary":"Initializes a new chat from source content such as files, repositories, registries, or zip archives. Enables context-rich conversations based on code or assets.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/chats/create","distance":0.0638},{"site":"v0","path":"/docs/api/v1/reference/chats/send-message","distance":0.0692},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","distance":0.1832},{"site":"v0","path":"/docs/api/v1/reference/chats/update","distance":0.1835},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task","distance":0.1889}],"related":[{"site":"v0","path":"/docs/api/v1/reference/chats/create","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/send-message","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-a-new-project","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/update","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/chats/resolve-task","title":"Resolve Task","summary":"Resolves a chat that's blocked waiting for user input and continues the conversation.","outbound":[],"inbound":[{"site":"v0","path":"/docs/api/v1/guides/handling-integrations"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task-async","distance":0.1642},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task","distance":0.323},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task-streaming","distance":0.3443},{"site":"v0","path":"/docs/api/v2/guides/handling-agent-interactions","distance":0.3499},{"site":"v0","path":"/docs/api/v1/guides/handling-integrations","distance":0.3526}],"related":[{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task-async","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task-streaming","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/handling-agent-interactions","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/guides/handling-integrations","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/chats/restore-version","title":"Restore Chat Version","summary":"Restores a chat to a specific version in-place. Unlike forking, this keeps the same chat ID and creates a new version entry pointing to the restored files.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/chats/get-version","distance":0.1869},{"site":"v0","path":"/docs/api/v1/reference/chats/find-versions","distance":0.225},{"site":"v0","path":"/docs/api/v1/reference/chats/update-version","distance":0.2275},{"site":"v0","path":"/docs/api/v1/reference/chats/delete-version-files","distance":0.2432},{"site":"v0","path":"/docs/api/v1/reference/chats/find","distance":0.2803}],"related":[{"site":"v0","path":"/docs/api/v1/reference/chats/get-version","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/find-versions","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/update-version","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/delete-version-files","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/find","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/chats/resume","title":"Resume Message","summary":"Reconnects to an active assistant message stream in a chat.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/chats/resume-chat-stream","distance":0.1546},{"site":"v0","path":"/docs/api/v2/guides/resuming-streams","distance":0.1802},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-resume-streams","distance":0.3073},{"site":"v0","path":"/docs/api/v1/reference/chats/stop-message","distance":0.3321},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-async","distance":0.3353}],"related":[{"site":"v0","path":"/docs/api/v2/reference/chats/resume-chat-stream","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-resume-streams","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/resuming-streams","via":"neighbor"},{"site":"workflow","path":"/docs/ai/resumable-streams","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-webhook","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/abort-breaks-resumable-streams","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/stop-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-async","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-message","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/chats/send-message","title":"Send Message","summary":"Creates a new message in an existing chat. Triggers a model response using the provided prompt, with optional attachments and configuration settings.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/chats/create","distance":0.0547},{"site":"v0","path":"/docs/api/v1/reference/chats/init","distance":0.0692},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","distance":0.1527},{"site":"v0","path":"/docs/api/v1/reference/chats/fork","distance":0.1631},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message","distance":0.1735}],"related":[{"site":"v0","path":"/docs/api/v1/reference/chats/create","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/init","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/fork","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/chats/stop-message","title":"Stop Message","summary":"Stops an in-flight message generation in a chat. Useful for cancelling a streaming response that is still being generated.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/messages/stop-message","distance":0.0808},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-async","distance":0.3214},{"site":"v0","path":"/docs/api/v1/reference/chats/get-message","distance":0.3228},{"site":"v0","path":"/docs/api/v1/reference/chats/resume","distance":0.3321},{"site":"v0","path":"/docs/api/v2/reference/chats/delete-chat","distance":0.3449}],"related":[{"site":"v0","path":"/docs/api/v2/reference/messages/stop-message","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/stopping-streams","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/abort-breaks-resumable-streams","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/messages","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-async","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/resume","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/delete-chat","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/chats/update","title":"Update Chat","summary":"Updates the metadata of an existing chat using its `chatId`. Supports changes to the chat name, privacy setting, and custom metadata.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","distance":0.0405},{"site":"v0","path":"/docs/api/v1/reference/chats/fork","distance":0.0694},{"site":"v0","path":"/docs/api/v1/reference/chats/create","distance":0.158},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat","distance":0.1679},{"site":"v0","path":"/docs/api/v1/reference/chats/send-message","distance":0.1764}],"related":[{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/fork","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/create","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/send-message","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/chats/update-version","title":"Update Chat Version Files","summary":"Updates the source files of a specific chat version (block) manually. This allows editing generated files directly through the API.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/chats/get-version","distance":0.1519},{"site":"v0","path":"/docs/api/v2/reference/chats/update-chat","distance":0.1661},{"site":"v0","path":"/docs/api/v1/reference/chats/delete-version-files","distance":0.1826},{"site":"v0","path":"/docs/api/v1/reference/chats/update","distance":0.1965},{"site":"v0","path":"/docs/api/v1/reference/chats/restore-version","distance":0.2275}],"related":[{"site":"v0","path":"/docs/api/v1/reference/chats/get-version","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/update-chat","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/delete-version-files","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/update","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/restore-version","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/deployments/create","title":"Create Deployment","summary":"Create a new deployment for a specific chat and version. This will trigger a deployment to Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/chats/deploy-chat","distance":0.1287},{"site":"v0","path":"/docs/api/v1/reference/deployments/get-by-id","distance":0.1429},{"site":"v0","path":"/docs/api/v1/reference/deployments/find","distance":0.1652},{"site":"v0","path":"/docs/api/v1/reference/deployments/delete","distance":0.1995},{"site":"v0","path":"/docs/deployments","distance":0.2289}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/delete-a-deployment","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/deploy-chat","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/get-by-id","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-events","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/delete","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/find-errors","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/integrations/create","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/deployments/delete","title":"Delete Deployment","summary":"Delete a deployment by ID. This will delete the deployment from Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/deployments/delete-a-deployment","distance":0.1393},{"site":"v0","path":"/docs/api/v1/reference/deployments/get-by-id","distance":0.1583},{"site":"v0","path":"/docs/api/v1/reference/deployments/create","distance":0.1995},{"site":"v0","path":"/docs/api/v1/reference/deployments/find","distance":0.2097},{"site":"v0","path":"/docs/api/v1/reference/deployments/find-errors","distance":0.2202}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/deployments/delete-a-deployment","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-delete-an-individual-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/remove","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/get-by-id","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployment-files","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/create","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/find-errors","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/find-logs","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/delete","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/deployments/find","title":"Find Deployments","summary":"Find deployments by project and chat IDs. This will return a list of deployments for the given project and chat IDs.","outbound":[{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id"}],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/deployments/get-by-id","distance":0.0956},{"site":"v0","path":"/docs/api/v1/reference/deployments/find-errors","distance":0.158},{"site":"v0","path":"/docs/api/v1/reference/deployments/create","distance":0.1652},{"site":"v0","path":"/docs/api/v1/reference/deployments/find-logs","distance":0.176},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","distance":0.2021}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-events","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/get-by-id","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logs/get-logs-for-a-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/delete-a-deployment","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/find-errors","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/create","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/find-logs","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/delete","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/deployments/find-errors","title":"Find Deployment Errors","summary":"Retrieves a list of errors that occurred during a specific deployment. Useful for diagnosing and debugging deployment issues.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/deployments/find","distance":0.158},{"site":"v0","path":"/docs/api/v1/reference/deployments/get-by-id","distance":0.1616},{"site":"v0","path":"/docs/api/v1/reference/deployments/find-logs","distance":0.1792},{"site":"v0","path":"/docs/api/v1/reference/deployments/delete","distance":0.2202},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","distance":0.2494}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-events","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployment-files","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logs/get-logs-for-a-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-check-runs-for-a-deployment","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/find","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/get-by-id","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-404-errors","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/find-logs","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/delete","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/create","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/deployments/find-logs","title":"Find Deployment Logs","summary":"Retrieves logs for a specific deployment. Supports filtering by timestamp to fetch only recent logs.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/deployments/find","distance":0.176},{"site":"v0","path":"/docs/api/v1/reference/deployments/find-errors","distance":0.1792},{"site":"vercel-docs","path":"/docs/rest-api/logs/get-logs-for-a-deployment","distance":0.1832},{"site":"v0","path":"/docs/api/v1/reference/deployments/get-by-id","distance":0.1912},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-events","distance":0.2759}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/logs/get-logs-for-a-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-events","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployment-files","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/logs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/find","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/find-errors","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/get-by-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/create","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/delete","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/deployments/get-by-id","title":"Get Deployment","summary":"Get a deployment by ID. This will return the details of the deployment, including the inspector URL, chat ID, project ID, version ID, API URL, and web URL.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/deployments/find","distance":0.0956},{"site":"v0","path":"/docs/api/v1/reference/deployments/create","distance":0.1429},{"site":"v0","path":"/docs/api/v1/reference/deployments/delete","distance":0.1583},{"site":"v0","path":"/docs/api/v1/reference/deployments/find-errors","distance":0.1616},{"site":"v0","path":"/docs/api/v1/reference/deployments/find-logs","distance":0.1912}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/find","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/delete-a-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-events","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logs/get-logs-for-a-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployment-files","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/create","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/delete","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/find-errors","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/find-logs","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/hooks/create","title":"Create Hook","summary":"Creates a new webhook that listens for specific events. Supports optional association with a chat.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/webhooks/create-webhook","distance":0.094},{"site":"v0","path":"/docs/api/v1/reference/hooks/get-by-id","distance":0.1379},{"site":"v0","path":"/docs/api/v1/reference/hooks/update","distance":0.1641},{"site":"v0","path":"/docs/api/v1/reference/hooks/find","distance":0.1981},{"site":"v0","path":"/docs/api/v2/reference/webhooks/get-webhook","distance":0.2107}],"related":[{"site":"v0","path":"/docs/api/v2/reference/webhooks/create-webhook","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/creates-a-webhook","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/hooks/get-by-id","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/hooks","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow/define-hook","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow/create-webhook","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow/create-hook","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/hooks/update","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/get-a-webhook","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/hooks/find","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/webhooks/get-webhook","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/hooks/delete","title":"Delete Hook","summary":"Deletes a webhook based on its ID. This action is irreversible.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/webhooks/delete-webhook","distance":0.0773},{"site":"v0","path":"/docs/api/v1/reference/hooks/get-by-id","distance":0.2179},{"site":"v0","path":"/docs/api/v1/reference/hooks/create","distance":0.2544},{"site":"v0","path":"/docs/api/v1/reference/hooks/update","distance":0.2743},{"site":"v0","path":"/docs/api/v2/reference/webhooks/get-webhook","distance":0.2758}],"related":[{"site":"v0","path":"/docs/api/v2/reference/webhooks/delete-webhook","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/deletes-a-webhook","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/hooks/get-by-id","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/hooks","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow/define-hook","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/hooks/create","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/hooks/update","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/webhooks/get-webhook","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/hooks/find","title":"Find Hooks","summary":"Retrieves a list of existing hooks in your workspace. Useful for managing active webhooks tied to chat events or deployments.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/hooks/get-by-id","distance":0.1459},{"site":"v0","path":"/docs/api/v2/reference/webhooks/list-webhooks","distance":0.1852},{"site":"v0","path":"/docs/api/v1/reference/hooks/create","distance":0.1981},{"site":"v0","path":"/docs/api/v2/reference/webhooks/get-webhook","distance":0.2105},{"site":"v0","path":"/docs/api/v1/reference/hooks/update","distance":0.2567}],"related":[{"site":"v0","path":"/docs/api/v1/reference/hooks/get-by-id","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/hooks","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/webhooks/list-webhooks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/get-a-list-of-webhooks","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow/define-hook","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-api/get-hook-by-token","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/hooks/create","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow/create-hook","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/webhooks/get-webhook","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/hooks/update","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/hooks/get-by-id","title":"Get Hook","summary":"Retrieves the details of a specific webhook using its ID.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/webhooks/get-webhook","distance":0.0747},{"site":"v0","path":"/docs/api/v1/reference/hooks/create","distance":0.1379},{"site":"v0","path":"/docs/api/v1/reference/hooks/find","distance":0.1459},{"site":"v0","path":"/docs/api/v1/reference/hooks/update","distance":0.1842},{"site":"v0","path":"/docs/api/v1/reference/hooks/delete","distance":0.2179}],"related":[{"site":"v0","path":"/docs/api/v2/reference/webhooks/get-webhook","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/hooks/create","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/hooks/find","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/get-a-webhook","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-api/get-hook-by-token","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/get-a-list-of-webhooks","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/hooks/update","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/hooks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/creates-a-webhook","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow/define-hook","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/hooks/delete","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/hooks/update","title":"Update Hook","summary":"Updates the configuration of an existing webhook, including its name, event subscriptions, or target URL.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/webhooks/update-webhook","distance":0.0645},{"site":"v0","path":"/docs/api/v1/reference/hooks/create","distance":0.1641},{"site":"v0","path":"/docs/api/v1/reference/hooks/get-by-id","distance":0.1842},{"site":"v0","path":"/docs/api/v2/reference/webhooks/get-webhook","distance":0.2467},{"site":"v0","path":"/docs/api/v2/reference/webhooks/create-webhook","distance":0.2497}],"related":[{"site":"v0","path":"/docs/api/v2/reference/webhooks/update-webhook","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/hooks/create","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/hooks/get-by-id","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/hooks","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow/define-hook","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow/create-hook","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/webhooks/get-webhook","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/webhooks/create-webhook","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/integrations/create","title":"Create Vercel Project","summary":"Links a Vercel project to an existing v0 project. Enables Vercel-related features and deployment integration within the v0 workspace.","outbound":[{"site":"v0","path":"/docs/api/v2/reference/chats/create-vercel-project"}],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/chats/create-vercel-project","distance":0.1075},{"site":"v0","path":"/docs/api/v1/reference/projects/create","distance":0.1278},{"site":"v0","path":"/docs/api/v1/reference/integrations/find","distance":0.1849},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-id","distance":0.2023},{"site":"v0","path":"/docs/vercel-integration","distance":0.2241}],"related":[{"site":"vercel-docs","path":"/docs/cli/project-linking","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/create-an-access-group-project","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/create","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/connect-integration-resource-to-project","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/integrations/find","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-id","via":"neighbor"},{"site":"v0","path":"/docs/vercel-integration","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-chat-id","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/integrations/find","title":"Find Vercel Projects","summary":"Retrieves Vercel projects available to the authenticated user or team scope.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/projects/find","distance":0.0972},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-id","distance":0.1542},{"site":"v0","path":"/docs/api/v1/reference/integrations/create","distance":0.1849},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-chat-id","distance":0.1906},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-a-list-of-projects","distance":0.2031}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-a-list-of-projects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-projects-of-an-access-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projectmembers/list-project-members","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/find","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/list-projects-in-a-microfrontends-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/observability/lists-disabled-observability-plus-projects","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/integrations/create","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-chat-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/create","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create","title":"Create MCP Server","summary":"Registers a new MCP server with your account. Supports OAuth, bearer token, custom headers, or no authentication. The server URL must use HTTPS in production.","outbound":[{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create-oauth-authorization-url"}],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/create-mcp-server","distance":0.0857},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/update","distance":0.1231},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/get-by-id","distance":0.151},{"site":"v0","path":"/docs/api/v1/guides/oauth-mcp-servers","distance":0.156},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/get-mcp-server","distance":0.1569}],"related":[{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/create-mcp-server","via":"neighbor"},{"site":"eve","path":"/docs/channels/mcp","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/update","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/get-by-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/guides/oauth-mcp-servers","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/get-mcp-server","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create-oauth-authorization-url","title":"Create MCP Server OAuth Authorization URL","summary":"Creates an OAuth authorization URL for an OAuth MCP server. Redirect the user to the returned URL to complete authorization without visiting v0.app.","outbound":[],"inbound":[{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/guides/oauth-mcp-servers","distance":0.1412},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create","distance":0.1668},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/create-mcp-server","distance":0.2472},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/get-by-id","distance":0.2778},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/update","distance":0.2779}],"related":[{"site":"v0","path":"/docs/api/v1/guides/oauth-mcp-servers","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/create-mcp-server","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/get-by-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/update","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/delete","title":"Delete MCP Server","summary":"Deletes an MCP server and removes any associated OAuth tokens. This action is irreversible.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/delete-mcp-server","distance":0.021},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/get-by-id","distance":0.2324},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/get-mcp-server","distance":0.2368},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/create-mcp-server","distance":0.2504},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create","distance":0.2522}],"related":[{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/delete-mcp-server","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/get-by-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/get-mcp-server","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/create-mcp-server","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/find","title":"Find MCP Servers","summary":"Retrieves a list of MCP servers configured for your account. Returns all servers with their connection details, authentication type, and enabled status.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/list-mcp-servers","distance":0.0611},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/get-by-id","distance":0.0803},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/get-mcp-server","distance":0.1033},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create","distance":0.1807},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/create-mcp-server","distance":0.1821}],"related":[{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/list-mcp-servers","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/get-by-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/get-mcp-server","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/create-mcp-server","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/get-by-id","title":"Get MCP Server","summary":"Retrieves the details of a specific MCP server using its ID.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/get-mcp-server","distance":0.0285},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/find","distance":0.0803},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/list-mcp-servers","distance":0.1084},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create","distance":0.151},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/update","distance":0.1579}],"related":[{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/get-mcp-server","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/find","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/list-mcp-servers","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/update","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/update","title":"Update MCP Server","summary":"Updates the configuration of an existing MCP server, including its name, URL, authentication, or enabled status. Supports partial updates.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/update-mcp-server","distance":0.0399},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create","distance":0.1231},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/get-by-id","distance":0.1579},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/create-mcp-server","distance":0.1661},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/get-mcp-server","distance":0.1729}],"related":[{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/update-mcp-server","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/get-by-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/create-mcp-server","via":"neighbor"},{"site":"eve","path":"/docs/channels/mcp","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/get-mcp-server","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/projects/assign","title":"Assign Project to Chat","summary":"Links an existing v0 project to a specific chat. Helps group conversations under a shared project context.","outbound":[{"site":"v0","path":"/docs/api/v2/reference/chats/create-vercel-project"},{"site":"v0","path":"/docs/api/v2/reference/chats/update-chat"}],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-chat-id","distance":0.1971},{"site":"v0","path":"/docs/api/v1/reference/projects/create","distance":0.2253},{"site":"v0","path":"/docs/api/v1/reference/integrations/create","distance":0.2407},{"site":"v0","path":"/docs/projects","distance":0.2433},{"site":"v0","path":"/docs/api/v2/reference/chats/create-vercel-project","distance":0.2459}],"related":[{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-chat-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/create","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/integrations/create","via":"neighbor"},{"site":"v0","path":"/docs/projects","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/update","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/projects/create","title":"Create Project","summary":"Creates a new v0 project with an optional description, icon, environment variables, and instructions. Projects help organize chats and manage context.","outbound":[{"site":"v0","path":"/docs/api/v2/reference/chats/create-vercel-project"}],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-id","distance":0.0976},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-chat-id","distance":0.0997},{"site":"v0","path":"/docs/api/v1/reference/projects/update","distance":0.1252},{"site":"v0","path":"/docs/api/v1/reference/integrations/create","distance":0.1278},{"site":"v0","path":"/docs/api/v2/reference/chats/create-vercel-project","distance":0.1547}],"related":[{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-chat-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/update","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/integrations/create","via":"neighbor"},{"site":"v0","path":"/docs/projects","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/projects/create-env-vars","title":"Create Environment Variables","summary":"Creates new environment variables for a given project. This endpoint will fail if any of the specified environment variable keys already exist, unless upsert is set to true.","outbound":[{"site":"v0","path":"/docs/api/v2/guides/environment-variables"}],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/projects/update-env-vars","distance":0.1293},{"site":"v0","path":"/docs/api/v1/reference/projects/find-env-vars","distance":0.1358},{"site":"v0","path":"/docs/api/v1/guides/environment-variables","distance":0.1727},{"site":"v0","path":"/docs/api/v1/reference/projects/get-env-var","distance":0.1737},{"site":"v0","path":"/docs/api/v1/reference/projects/delete-env-vars","distance":0.1951}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/projects/create-one-or-more-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/edit-an-environment-variable","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/create-one-or-more-shared-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-environment-variables-of-a-project-by-id-or-name","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/create-a-custom-environment-for-the-current-project","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/update-env-vars","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/find-env-vars","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/guides/environment-variables","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/get-env-var","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/delete-env-vars","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/projects/delete","title":"Delete Project","summary":"Deletes a specific project based on the provided projectId. This operation marks the project as deleted and is irreversible.","outbound":[{"site":"vercel-docs","path":"/docs/rest-api/projects/delete-a-project"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/projects/delete-a-project","distance":0.2238},{"site":"v0","path":"/docs/api/v1/reference/projects/update","distance":0.2443},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-id","distance":0.2537},{"site":"v0","path":"/docs/api/v1/reference/integrations/create","distance":0.2684},{"site":"v0","path":"/docs/api/v1/reference/projects/create","distance":0.271}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/access-groups/delete-an-access-group-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projectmembers/remove-a-project-member","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/update","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/integrations/create","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/create","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/delete-env-vars","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/projects/delete-env-vars","title":"Delete Environment Variables","summary":"Deletes multiple environment variables for a given project by their IDs.","outbound":[{"site":"v0","path":"/docs/api/v2/guides/environment-variables"}],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/projects/find-env-vars","distance":0.184},{"site":"v0","path":"/docs/api/v1/reference/projects/update-env-vars","distance":0.1853},{"site":"v0","path":"/docs/api/v1/reference/projects/create-env-vars","distance":0.1951},{"site":"v0","path":"/docs/api/v1/reference/projects/get-env-var","distance":0.2099},{"site":"vercel-docs","path":"/docs/rest-api/projects/batch-remove-environment-variables","distance":0.2209}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/projects/batch-remove-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-an-environment-variable","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/delete-one-or-more-env-var","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/remove-a-custom-environment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/edit-an-environment-variable","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/find-env-vars","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/update-env-vars","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/create-env-vars","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/get-env-var","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/delete","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/projects/find","title":"Find Projects","summary":"Returns a list of all v0 projects in your workspace. Useful for browsing or managing projects across different chats or use cases.","outbound":[{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-a-list-of-projects"}],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/integrations/find","distance":0.0972},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-id","distance":0.1351},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-chat-id","distance":0.152},{"site":"v0","path":"/docs/api/v1/reference/projects/create","distance":0.1795},{"site":"v0","path":"/docs/api/v1/reference/deployments/find","distance":0.2257}],"related":[{"site":"v0","path":"/docs/api/v1/reference/integrations/find","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-chat-id","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/list-projects-in-a-microfrontends-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-projects-of-an-access-group","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/create","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/find","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/projects/find-env-vars","title":"Find Environment Variables","summary":"Retrieves all environment variables for a given project.","outbound":[{"site":"v0","path":"/docs/api/v2/guides/environment-variables"}],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/projects/get-env-var","distance":0.0859},{"site":"v0","path":"/docs/api/v1/reference/projects/create-env-vars","distance":0.1358},{"site":"v0","path":"/docs/api/v1/reference/projects/update-env-vars","distance":0.1448},{"site":"v0","path":"/docs/api/v1/reference/projects/delete-env-vars","distance":0.184},{"site":"v0","path":"/docs/api/v1/guides/environment-variables","distance":0.1887}],"related":[{"site":"v0","path":"/docs/api/v1/reference/projects/get-env-var","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-environment-variables-of-a-project-by-id-or-name","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-decrypted-value-of-an-environment-variable-of-a-project-by-id","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-an-environment-variable","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/edit-an-environment-variable","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/create-env-vars","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/update-env-vars","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/lists-all-shared-environment-variables-for-a-team","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/delete-env-vars","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/guides/environment-variables","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-chat-id","title":"Get Project by Chat ID","summary":"Retrieves the v0 project associated with a given chat. Useful for determining the context or scope of a chat session.","outbound":[{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat"},{"site":"vercel-docs","path":"/docs/rest-api/projects/find-a-project-by-id-or-name"}],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-id","distance":0.0519},{"site":"v0","path":"/docs/api/v1/reference/projects/create","distance":0.0997},{"site":"v0","path":"/docs/api/v1/reference/chats/find","distance":0.1467},{"site":"v0","path":"/docs/api/v1/reference/projects/find","distance":0.152},{"site":"v0","path":"/docs/api/v1/reference/projects/update","distance":0.1699}],"related":[{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/create","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/find","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/find","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/update","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-id","title":"Get Project by ID","summary":"Retrieves the details of a specific v0 project by its ID.","outbound":[{"site":"vercel-docs","path":"/docs/rest-api/projects/find-a-project-by-id-or-name"}],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-chat-id","distance":0.0519},{"site":"v0","path":"/docs/api/v1/reference/projects/create","distance":0.0976},{"site":"v0","path":"/docs/api/v1/reference/projects/find","distance":0.1351},{"site":"v0","path":"/docs/api/v1/reference/projects/update","distance":0.1477},{"site":"v0","path":"/docs/api/v1/reference/integrations/find","distance":0.1542}],"related":[{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-chat-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/create","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-a-list-of-projects","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/find","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/update","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/integrations/find","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/projects/get-env-var","title":"Get Environment Variable","summary":"Retrieves a specific environment variable for a given project by its ID, including its value.","outbound":[{"site":"v0","path":"/docs/api/v2/guides/environment-variables"}],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/projects/find-env-vars","distance":0.0859},{"site":"v0","path":"/docs/api/v1/reference/projects/create-env-vars","distance":0.1737},{"site":"v0","path":"/docs/api/v1/reference/projects/update-env-vars","distance":0.1867},{"site":"v0","path":"/docs/api/v1/reference/projects/delete-env-vars","distance":0.2099},{"site":"v0","path":"/docs/api/v1/guides/environment-variables","distance":0.2122}],"related":[{"site":"v0","path":"/docs/api/v1/reference/projects/find-env-vars","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-decrypted-value-of-an-environment-variable-of-a-project-by-id","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-environment-variables-of-a-project-by-id-or-name","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-an-environment-variable","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/edit-an-environment-variable","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/retrieve-the-decrypted-value-of-a-shared-environment-variable-by-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/create-env-vars","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/update-env-vars","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/delete-env-vars","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/guides/environment-variables","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/projects/update","title":"Update Project","summary":"Updates the metadata of an existing project using its `projectId`. Supports changes to the project name and privacy setting.","outbound":[{"site":"v0","path":"/docs/api/v2/reference/chats/update-chat"},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-an-existing-project"}],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/projects/create","distance":0.1252},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-id","distance":0.1477},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-chat-id","distance":0.1699},{"site":"v0","path":"/docs/api/v2/reference/chats/update-chat","distance":0.2142},{"site":"v0","path":"/docs/api/v1/reference/chats/update","distance":0.2215}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/access-groups/update-an-access-group-project","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/create","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-chat-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/update","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/update-env-vars","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/projects/update-env-vars","title":"Update Environment Variables","summary":"Updates multiple environment variables for a given project. Only the value of each environment variable can be updated.","outbound":[{"site":"v0","path":"/docs/api/v2/guides/environment-variables"}],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/projects/create-env-vars","distance":0.1293},{"site":"v0","path":"/docs/api/v1/reference/projects/find-env-vars","distance":0.1448},{"site":"v0","path":"/docs/api/v1/reference/projects/delete-env-vars","distance":0.1853},{"site":"v0","path":"/docs/api/v1/reference/projects/get-env-var","distance":0.1867},{"site":"v0","path":"/docs/api/v1/guides/environment-variables","distance":0.2203}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/environment/updates-one-or-more-shared-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/edit-an-environment-variable","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/create-env-vars","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/update-a-custom-environment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-an-environment-variable","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-one-or-more-environment-variables","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/find-env-vars","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/delete-env-vars","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/get-env-var","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/guides/environment-variables","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/rate-limits/find","title":"Find Rate Limit","summary":"Retrieves rate limit information for a given scope. Useful for monitoring usage limits and avoiding throttling.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-summary","distance":0.3425},{"site":"v0","path":"/docs/api/v1/reference/user/get-billing","distance":0.3531},{"site":"v0","path":"/docs/api/v1/reference/reports/get-usage","distance":0.3561},{"site":"v0","path":"/docs/api/v1/reference/user/get-scopes","distance":0.3819},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting-sdk","distance":0.3855}],"related":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/query/monitoring/limits-and-pricing","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/add-rate-limiting-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/limits-and-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-summary","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/user/get-billing","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/reports/get-usage","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/user/get-scopes","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/user/get-plan","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/reports/get-usage","title":"Get Usage Report","summary":"Retrieves detailed usage events for the authenticated user or team, including costs, event types, models used, and metadata. Shows the same data as displayed in the usage dashboard. Can be filtered by chatId to show usage for a specific chat, or by userId to show usage for a specific user.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-summary","distance":0.1522},{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-activity","distance":0.1868},{"site":"v0","path":"/docs/api/v1/reference/reports/get-user-activity","distance":0.1879},{"site":"v0","path":"/docs/api/v2/reference/usage/list-usage-events","distance":0.1896},{"site":"v0","path":"/docs/api/v1/reference/user/get-billing","distance":0.2378}],"related":[{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-summary","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/usage","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-activity","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/reports/get-user-activity","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/usage/list-usage-events","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/user/get-billing","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/reports/get-user-activity","title":"Get User Activity Report","summary":"Retrieves aggregated user activity data for team members, including chat counts, message counts, and activity timestamps. Shows the same data as displayed in the Usage settings for Enterprise teams. Only available for Enterprise teams with OWNER or BILLING role.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/reports/get-usage","distance":0.1879},{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-activity","distance":0.2098},{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-summary","distance":0.2645},{"site":"v0","path":"/docs/usage-dashboard","distance":0.2741},{"site":"v0","path":"/docs/api/v1/reference/user/get","distance":0.3029}],"related":[{"site":"v0","path":"/docs/api/v1/reference/reports/get-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/user/get-the-user","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-activity","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/aggregates-page-views","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-summary","via":"neighbor"},{"site":"v0","path":"/docs/usage-dashboard","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/user/get","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/user/get","title":"Get User","summary":"Retrieves information about the authenticated user, including their ID, name, email, and account metadata.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/user/get-scopes","distance":0.2324},{"site":"vercel-docs","path":"/docs/rest-api/user/get-the-user","distance":0.2369},{"site":"v0","path":"/docs/api/v1/reference/user/get-billing","distance":0.2863},{"site":"v0","path":"/docs/api/v1/reference/reports/get-usage","distance":0.2914},{"site":"v0","path":"/docs/api/v1/reference/reports/get-user-activity","distance":0.3029}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/user/get-the-user","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/user/get-scopes","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/user/get-billing","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/reports/get-usage","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/reports/get-user-activity","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/user/get-plan","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/user/get-billing","title":"Get Billing","summary":"Fetches billing usage and quota information for the authenticated user. Can be scoped to a specific context (e.g. project or namespace).","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-summary","distance":0.2151},{"site":"v0","path":"/docs/api/v1/reference/reports/get-usage","distance":0.2378},{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-activity","distance":0.2719},{"site":"v0","path":"/docs/api/v1/reference/user/get-plan","distance":0.2852},{"site":"v0","path":"/docs/api/v1/reference/user/get","distance":0.2863}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-rolling-release-billing-status","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/billing/list-focus-billing-charges","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-billing-data","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/usage","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-summary","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/reports/get-usage","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-activity","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/user/get-plan","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/user/get","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/user/get-plan","title":"Get Plan","summary":"Returns the current subscription plan for the authenticated user, including tier details and feature limits.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/user/get-billing","distance":0.2852},{"site":"v0","path":"/docs/api/v1/reference/user/get","distance":0.3298},{"site":"vercel-docs","path":"/docs/rest-api/integrations/list-integration-billing-plans","distance":0.3348},{"site":"v0","path":"/docs/api/v1/reference/reports/get-usage","distance":0.3455},{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-summary","distance":0.3542}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/integrations/list-integration-billing-plans","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/user/get-the-user","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/user/get-billing","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/user/get","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/reports/get-usage","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-summary","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/user/get-scopes","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/reference/user/get-scopes","title":"Get User Scopes","summary":"Retrieves all accessible scopes for the authenticated user, such as personal workspaces or shared teams.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/user/get","distance":0.2324},{"site":"v0","path":"/docs/api/v1/reference/user/get-billing","distance":0.3055},{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-summary","distance":0.3197},{"site":"v0","path":"/docs/api/v1/reference/reports/get-user-activity","distance":0.3276},{"site":"vercel-docs","path":"/docs/rest-api/user/get-the-user","distance":0.3433}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/user/get-the-user","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/user/get","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/scopes-and-permissions","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/user/get-billing","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-summary","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/reports/get-user-activity","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/reports/get-usage","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2","title":"Overview","summary":"Build custom app-generation experiences with the v0 API","outbound":[{"site":"v0","path":"/docs/api/v2/guides/accessing-previews"},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface"},{"site":"v0","path":"/docs/api/v2/guides/integrating-v0-into-agents"},{"site":"v0","path":"/docs/api/v2/guides/migrating-from-v1-to-v2"},{"site":"v0","path":"/docs/api/v2/quickstart"},{"site":"v0","path":"/docs/api/v2/reference/chats/list-chats"},{"site":"v0","path":"/docs/api/v2/reference/messages/list-messages"}],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/quickstart","distance":0.0915},{"site":"v0","path":"/docs/quickstart","distance":0.1303},{"site":"v0","path":"/docs/api/v1","distance":0.1448},{"site":"v0","path":"/docs","distance":0.1511},{"site":"v0","path":"/docs/faqs","distance":0.1739}],"related":[{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/api/v1","via":"neighbor"},{"site":"v0","path":"/docs/faqs","via":"neighbor"},{"site":"v0","path":"/docs/full-stack-apps","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/quickstart","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/guides/accessing-previews","title":"Accessing Previews","summary":"Display a v0 chat preview in your application","outbound":[{"site":"v0","path":"/docs/api/v2/reference/chats/get-preview-url"}],"inbound":[{"site":"v0","path":"/docs/api/v2"},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface"},{"site":"v0","path":"/docs/api/v2/quickstart"}],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/preview-mode","distance":0.2444},{"site":"v0","path":"/docs/api/v2/reference/chats/get-preview-url","distance":0.2891},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","distance":0.2915},{"site":"v0","path":"/docs/api/v2/quickstart","distance":0.3175},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching","distance":0.3362}],"related":[{"site":"nextjs","path":"/docs/pages/guides/preview-mode","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/draft-mode","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/preview-url-prefixes","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/full-stack-apps","via":"neighbor"},{"site":"v0","path":"/docs/design-mode","via":"neighbor"},{"site":"v0","path":"/docs/api/v1","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","title":"Build a Custom Chat Interface","summary":"Build a React chat interface with v0 and AI SDK","outbound":[{"site":"v0","path":"/docs/api/v2/guides/accessing-previews"},{"site":"v0","path":"/docs/api/v2/guides/handling-agent-interactions"},{"site":"v0","path":"/docs/api/v2/guides/resuming-streams"}],"inbound":[{"site":"v0","path":"/docs/api/v2"},{"site":"v0","path":"/docs/api/v2/quickstart"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/quickstart","distance":0.1485},{"site":"v0","path":"/docs/api/v2/guides/resuming-streams","distance":0.1778},{"site":"v0","path":"/docs/api/v1","distance":0.1984},{"site":"v0","path":"/docs/api/v1/packages/react","distance":0.2029},{"site":"v0","path":"/docs/api/v1/guides/start-from-existing-code","distance":0.2075}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/overview","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/api/v1","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/packages/react","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/guides/start-from-existing-code","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/guides/design-systems","title":"Design Systems","summary":"Learn how to use design system skills with the v0 API v2","outbound":[{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat"},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message"},{"site":"v0","path":"/docs/design-systems-2"}],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/design-systems-2","distance":0.1264},{"site":"eve","path":"/docs/skills","distance":0.3312},{"site":"v0","path":"/docs/design-mode","distance":0.3345},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","distance":0.3488},{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","distance":0.3491}],"related":[{"site":"eve","path":"/docs/skills","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-skills","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/skills","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/agent-skills","via":"neighbor"},{"site":"v0","path":"/docs/design-mode","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","via":"neighbor"},{"site":"v0","path":"/docs/api/v1","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/guides/start-from-existing-code","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/guides/environment-variables","title":"Environment Variables","summary":"Add environment variables to a v0 chat","outbound":[{"site":"v0","path":"/docs/api/v2/reference/chats/create-vercel-project"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-one-or-more-environment-variables"}],"inbound":[{"site":"v0","path":"/docs/api/v1/reference/projects/create-env-vars"},{"site":"v0","path":"/docs/api/v1/reference/projects/delete-env-vars"},{"site":"v0","path":"/docs/api/v1/reference/projects/find-env-vars"},{"site":"v0","path":"/docs/api/v1/reference/projects/get-env-var"},{"site":"v0","path":"/docs/api/v1/reference/projects/update-env-vars"},{"site":"v0","path":"/docs/api/v2/guides/migrating-from-v1-to-v2"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/guides/environment-variables","distance":0.1277},{"site":"v0","path":"/docs/api/v1/reference/projects/create","distance":0.2324},{"site":"v0","path":"/docs/api/v1/reference/projects/create-env-vars","distance":0.2371},{"site":"vercel-docs","path":"/docs/environment-variables","distance":0.267},{"site":"v0","path":"/docs/external-apis","distance":0.2704}],"related":[{"site":"vercel-docs","path":"/docs/environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/manage-across-environments","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/guides/environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/managing-environment-variables","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/create","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/create-env-vars","via":"neighbor"},{"site":"v0","path":"/docs/external-apis","via":"neighbor"},{"site":"v0","path":"/docs/projects","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/guides/handling-agent-interactions","title":"Handling Agent Interactions","summary":"Learn how to handle plan reviews, questions, and permission requests from the v0 agent","outbound":[{"site":"v0","path":"/docs/api/v2/guides/handling-integrations"}],"inbound":[{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/guides/handling-integrations","distance":0.2015},{"site":"v0","path":"/docs/api/v1/guides/handling-integrations","distance":0.2223},{"site":"v0","path":"/docs/agentic-features","distance":0.2912},{"site":"v0","path":"/docs/api/v2/guides/integrating-v0-into-agents","distance":0.2961},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task-async","distance":0.2991}],"related":[{"site":"eve","path":"/docs/human-in-the-loop","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/guides/handling-integrations","via":"neighbor"},{"site":"v0","path":"/docs/agentic-features","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/integrating-v0-into-agents","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task-async","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/guides/handling-integrations","title":"Handling Integrations","summary":"Learn how to handle integration requests and follow-up script permissions in the v0 API","outbound":[{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/connect-integration-resource-to-project"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/create-integration-store-free-and-paid-plans"}],"inbound":[{"site":"v0","path":"/docs/api/v2/guides/handling-agent-interactions"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/guides/handling-integrations","distance":0.013},{"site":"v0","path":"/docs/api/v2/guides/handling-agent-interactions","distance":0.2015},{"site":"v0","path":"/docs/MCP","distance":0.2256},{"site":"v0","path":"/docs/vercel-integration","distance":0.2654},{"site":"v0","path":"/docs/api/v2/guides/integrating-v0-into-agents","distance":0.268}],"related":[{"site":"v0","path":"/docs/api/v1/guides/handling-integrations","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/approval-checklist","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/handling-agent-interactions","via":"neighbor"},{"site":"v0","path":"/docs/MCP","via":"neighbor"},{"site":"v0","path":"/docs/vercel-integration","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/integrating-v0-into-agents","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/guides/integrating-v0-into-agents","title":"Integrate v0 with AI Agents","summary":"Give your agents v0's app-building capabilities","outbound":[{"site":"eve","path":"/docs/connections/openapi"},{"site":"v0","path":"/docs/api/v2/guides/mcp-server"},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/create-mcp-server"}],"inbound":[{"site":"v0","path":"/docs/api/v2"},{"site":"v0","path":"/docs/api/v2/quickstart"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/guides/mcp-server","distance":0.152},{"site":"v0","path":"/docs/api/v2","distance":0.1867},{"site":"v0","path":"/docs/api/v2/quickstart","distance":0.2016},{"site":"v0","path":"/docs/api/v1/adapters/ai-tools","distance":0.205},{"site":"v0","path":"/docs/api/v1","distance":0.2057}],"related":[{"site":"v0","path":"/docs/api/v2/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/adapters/ai-tools","via":"neighbor"},{"site":"v0","path":"/docs/api/v1","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/adapters/mcp-server","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/examples/ai-tools","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/guides/mcp-server","title":"Use v0 from an MCP Client","summary":"Let another agent use v0 through the v0 MCP server","outbound":[{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/create-mcp-server"}],"inbound":[{"site":"v0","path":"/docs/MCP"},{"site":"v0","path":"/docs/api/v2/guides/integrating-v0-into-agents"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/adapters/mcp-server","distance":0.1135},{"site":"v0","path":"/docs/api/v2/guides/integrating-v0-into-agents","distance":0.152},{"site":"v0","path":"/docs/api/v1/guides/oauth-mcp-servers","distance":0.1601},{"site":"v0","path":"/docs/MCP","distance":0.1666},{"site":"v0","path":"/docs/api/v2","distance":0.2355}],"related":[{"site":"v0","path":"/docs/api/v1/adapters/mcp-server","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/integrating-v0-into-agents","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/guides/oauth-mcp-servers","via":"neighbor"},{"site":"v0","path":"/docs/MCP","via":"neighbor"},{"site":"v0","path":"/docs/agentic-features","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/guides/migrating-from-v1-to-v2","title":"Migrating from v1 to v2","summary":"Understand the major v0 API v2 changes before migrating from v1","outbound":[{"site":"v0","path":"/docs/api/v1/reference/chats/download-version"},{"site":"v0","path":"/docs/api/v2/guides/environment-variables"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-async"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-files"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-repository"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-zip"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-streaming"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-vercel-project"},{"site":"v0","path":"/docs/api/v2/reference/chats/deploy-chat"},{"site":"v0","path":"/docs/api/v2/reference/chats/download-chat-files"},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat"},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat-files"},{"site":"v0","path":"/docs/api/v2/reference/chats/get-preview-url"},{"site":"v0","path":"/docs/api/v2/reference/chats/list-chats"},{"site":"v0","path":"/docs/api/v2/reference/chats/restore-message"},{"site":"v0","path":"/docs/api/v2/reference/chats/resume-chat-stream"},{"site":"v0","path":"/docs/api/v2/reference/chats/update-chat"},{"site":"v0","path":"/docs/api/v2/reference/chats/update-chat-files"},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/list-mcp-servers"},{"site":"v0","path":"/docs/api/v2/reference/messages/get-message"},{"site":"v0","path":"/docs/api/v2/reference/messages/list-messages"},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task"},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task-async"},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task-streaming"},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message"},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-async"},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-streaming"},{"site":"v0","path":"/docs/api/v2/reference/webhooks/list-webhooks"}],"inbound":[{"site":"v0","path":"/docs/api/v2"},{"site":"v0","path":"/docs/api/v2/quickstart"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/teams","distance":0.2544},{"site":"v0","path":"/docs/deployments","distance":0.258},{"site":"v0","path":"/docs/faqs","distance":0.2603},{"site":"v0","path":"/docs/quickstart","distance":0.2633},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","distance":0.2686}],"related":[{"site":"v0","path":"/docs/teams","via":"neighbor"},{"site":"v0","path":"/docs/deployments","via":"neighbor"},{"site":"v0","path":"/docs/faqs","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/guides/organizations","title":"Organizations","summary":"Learn how to use the v0 API with Vercel Organizations to offer v0-style chat experiences to your customers.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/teams","distance":0.1999},{"site":"v0","path":"/docs/enterprise","distance":0.2332},{"site":"v0","path":"/docs/vercel-integration","distance":0.2376},{"site":"v0","path":"/docs/faqs","distance":0.2604},{"site":"v0","path":"/docs/quickstart","distance":0.2769}],"related":[{"site":"v0","path":"/docs/teams","via":"neighbor"},{"site":"v0","path":"/docs/enterprise","via":"neighbor"},{"site":"v0","path":"/docs/vercel-integration","via":"neighbor"},{"site":"v0","path":"/docs/faqs","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/guides/resuming-streams","title":"Resume a Chat Stream","summary":"Reconnect to an active v0 generation after a client disconnects","outbound":[],"inbound":[{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","distance":0.1778},{"site":"v0","path":"/docs/api/v1/reference/chats/resume","distance":0.1802},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-resume-streams","distance":0.2119},{"site":"v0","path":"/docs/api/v2/reference/chats/resume-chat-stream","distance":0.2254},{"site":"workflow","path":"/docs/ai/resumable-streams","distance":0.2477}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-resume-streams","via":"neighbor"},{"site":"workflow","path":"/docs/ai/resumable-streams","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-ai/workflow-chat-transport","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/abort-breaks-resumable-streams","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/resume","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/streaming","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/resume-chat-stream","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/guides/start-from-existing-code","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/quickstart","title":"Quickstart","summary":"Build your first app-generation interface with the v0 API","outbound":[{"site":"v0","path":"/docs/api/v2/guides/accessing-previews"},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface"},{"site":"v0","path":"/docs/api/v2/guides/integrating-v0-into-agents"},{"site":"v0","path":"/docs/api/v2/guides/migrating-from-v1-to-v2"},{"site":"v0","path":"/docs/api/v2/reference/chats/list-chats"}],"inbound":[{"site":"v0","path":"/docs/api/v2"}],"requires":[{"site":"v0","path":"/docs/api/v2"}],"neighbors":[{"site":"v0","path":"/docs/api/v2","distance":0.0915},{"site":"v0","path":"/docs/api/v1/quickstart","distance":0.1299},{"site":"v0","path":"/docs/quickstart","distance":0.1352},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","distance":0.1485},{"site":"v0","path":"/docs/api/v1","distance":0.1569}],"related":[{"site":"v0","path":"/docs/api/v1/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/api/v1","via":"neighbor"},{"site":"v0","path":"/docs/full-stack-apps","via":"neighbor"},{"site":"v0","path":"/docs/text-prompting","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat","title":"Create Chat","summary":"Creates a new chat from a prompt. The request blocks until the model response is complete and returns the chat.","outbound":[],"inbound":[{"site":"v0","path":"/docs/api/v2/guides/design-systems"},{"site":"v0","path":"/docs/api/v2/guides/migrating-from-v1-to-v2"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-files","distance":0.1007},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-async","distance":0.1141},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-repository","distance":0.1375},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","distance":0.1505},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-zip","distance":0.1605}],"related":[{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-files","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-async","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-repository","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-zip","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-async","title":"Create Chat (Async)","summary":"Creates a new chat with a user message and processes it in the background. Returns immediately with the chat ID and message ID. Poll for the assistant message by ID until `finishReason` is non-null.","outbound":[],"inbound":[{"site":"v0","path":"/docs/api/v2/guides/migrating-from-v1-to-v2"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat","distance":0.1141},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-async","distance":0.1346},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-files","distance":0.1723},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-repository","distance":0.2077},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat","distance":0.2222}],"related":[{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-async","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-files","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-repository","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-files","title":"Create Chat From Files","summary":"Creates a new chat from inline source files.","outbound":[],"inbound":[{"site":"v0","path":"/docs/api/v2/guides/migrating-from-v1-to-v2"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat","distance":0.1007},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-repository","distance":0.1373},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-zip","distance":0.1415},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat-files","distance":0.163},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","distance":0.1706}],"related":[{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-repository","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-zip","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat-files","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-repository","title":"Create Chat From Repository","summary":"Creates a new chat from a GitHub repository.","outbound":[],"inbound":[{"site":"v0","path":"/docs/api/v2/guides/migrating-from-v1-to-v2"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-files","distance":0.1373},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat","distance":0.1375},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-zip","distance":0.1749},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-async","distance":0.2077},{"site":"v0","path":"/docs/api/v1/reference/chats/find","distance":0.2103}],"related":[{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-files","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-zip","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-async","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/find","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-zip","title":"Create Chat From ZIP","summary":"Creates a new chat from a zip archive.","outbound":[],"inbound":[{"site":"v0","path":"/docs/api/v2/guides/migrating-from-v1-to-v2"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-files","distance":0.1415},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat","distance":0.1605},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-repository","distance":0.1749},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-async","distance":0.2297},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","distance":0.2491}],"related":[{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-files","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-repository","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-async","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-streaming","title":"Create Chat (Streaming)","summary":"Creates a new chat with a user message and returns a Server-Sent Events stream. Events include initial chat state, title deltas, content chunk deltas, and final chat state. The response is `text/event-stream`; each event is `data: <JSON>\\n\\n` where the JSON conforms to ChatStreamEvent.","outbound":[],"inbound":[{"site":"v0","path":"/docs/api/v2/guides/migrating-from-v1-to-v2"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/chats/resume-chat-stream","distance":0.1459},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat","distance":0.1783},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-streaming","distance":0.1888},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task-streaming","distance":0.2106},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-files","distance":0.2153}],"related":[{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/streaming","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/resume-chat-stream","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-streaming","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task-streaming","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-files","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/chats/create-vercel-project","title":"Create Vercel Project","summary":"Creates a Vercel project and attaches it to the chat.","outbound":[],"inbound":[{"site":"v0","path":"/docs/api/v1/reference/integrations/create"},{"site":"v0","path":"/docs/api/v1/reference/projects/assign"},{"site":"v0","path":"/docs/api/v1/reference/projects/create"},{"site":"v0","path":"/docs/api/v2/guides/environment-variables"},{"site":"v0","path":"/docs/api/v2/guides/migrating-from-v1-to-v2"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/integrations/create","distance":0.1075},{"site":"v0","path":"/docs/api/v1/reference/projects/create","distance":0.1547},{"site":"v0","path":"/docs/api/v2/reference/chats/deploy-chat","distance":0.196},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-chat-id","distance":0.2265},{"site":"v0","path":"/docs/api/v1/reference/projects/assign","distance":0.2459}],"related":[{"site":"v0","path":"/docs/api/v1/reference/integrations/create","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/create-an-access-group-project","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/create","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/deploy-chat","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-chat-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/assign","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/chats/delete-chat","title":"Delete Chat","summary":"Deletes a chat and all its associated messages. The requester must have edit access to the chat.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/chats/delete","distance":0.0658},{"site":"v0","path":"/docs/api/v1/reference/chats/delete-version-files","distance":0.201},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat","distance":0.2534},{"site":"v0","path":"/docs/api/v2/reference/chats/update-chat","distance":0.2892},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-async","distance":0.3137}],"related":[{"site":"v0","path":"/docs/api/v1/reference/chats/delete","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/delete-version-files","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/update-chat","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-async","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/chats/deploy-chat","title":"Deploy Chat","summary":"Triggers a Vercel deployment for a chat. Creates a Vercel project if one does not exist.","outbound":[],"inbound":[{"site":"v0","path":"/docs/api/v2/guides/migrating-from-v1-to-v2"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/deployments/create","distance":0.1287},{"site":"v0","path":"/docs/api/v2/reference/chats/create-vercel-project","distance":0.196},{"site":"v0","path":"/docs/api/v1/reference/deployments/find","distance":0.2132},{"site":"v0","path":"/docs/deployments","distance":0.2288},{"site":"v0","path":"/docs/api/v1/reference/deployments/get-by-id","distance":0.2737}],"related":[{"site":"v0","path":"/docs/api/v1/reference/deployments/create","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-vercel-project","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/find","via":"neighbor"},{"site":"v0","path":"/docs/deployments","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/get-by-id","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/chats/download-chat-files","title":"Download Chat Files","summary":"Downloads the source files for a chat as a ZIP archive.","outbound":[],"inbound":[{"site":"v0","path":"/docs/api/v2/guides/migrating-from-v1-to-v2"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat-files","distance":0.116},{"site":"v0","path":"/docs/api/v1/reference/chats/download-version","distance":0.1465},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat","distance":0.2317},{"site":"v0","path":"/docs/api/v1/reference/chats/get-version","distance":0.2343},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-files","distance":0.2423}],"related":[{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat-files","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/download-version","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-version","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-files","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/chats/duplicate-chat","title":"Duplicate Chat","summary":"Creates a new chat by duplicating an existing chat.","outbound":[],"inbound":[{"site":"v0","path":"/docs/api/v1/reference/chats/fork"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat","distance":0.2216},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-async","distance":0.2271},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-files","distance":0.2382},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-repository","distance":0.24},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat","distance":0.2489}],"related":[{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-async","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-files","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-repository","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat","title":"Get Chat","summary":"Retrieves a chat by ID.","outbound":[],"inbound":[{"site":"v0","path":"/docs/api/v1/reference/chats/favorite"},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-chat-id"},{"site":"v0","path":"/docs/api/v2/guides/migrating-from-v1-to-v2"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/chats/list-chats","distance":0.1463},{"site":"v0","path":"/docs/api/v1/reference/chats/get-message","distance":0.1607},{"site":"v0","path":"/docs/api/v1/reference/chats/find","distance":0.1658},{"site":"v0","path":"/docs/api/v1/reference/chats/get-version","distance":0.1676},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat-files","distance":0.1711}],"related":[{"site":"v0","path":"/docs/api/v2/reference/chats/list-chats","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/find","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-version","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat-files","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat-files","title":"Get Chat Files","summary":"Returns the source files for a chat.","outbound":[],"inbound":[{"site":"v0","path":"/docs/api/v2/guides/migrating-from-v1-to-v2"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/chats/download-chat-files","distance":0.116},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-files","distance":0.163},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat","distance":0.1711},{"site":"v0","path":"/docs/api/v1/reference/chats/get-version","distance":0.1899},{"site":"v0","path":"/docs/api/v1/reference/chats/get-message","distance":0.225}],"related":[{"site":"v0","path":"/docs/api/v2/reference/chats/download-chat-files","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-files","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-version","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-message","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/chats/get-connect-setup-status","title":"Get Connect Setup Status","summary":"Polls the status of a Vercel Connect connector setup started by a `configure_vercel_connect` agent action. Open the `setupUrl` from the agent action data in a browser, then poll this endpoint every few seconds while `pending`. When it returns `ready`, resolve the chat with a `vercel-connect-setup` task to resume generation.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/vercel-connect","distance":0.3136},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task-async","distance":0.3366},{"site":"chat-sdk","path":"/docs/vercel-connect","distance":0.3406},{"site":"v0","path":"/docs/api/v1/reference/chats/find","distance":0.3514},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat","distance":0.3635}],"related":[{"site":"chat-sdk","path":"/docs/vercel-connect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/connect/get-a-connect-token","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/connect/create-a-connect-installation-request","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/connectors","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/connect","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task-async","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/find","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/get-preview-url","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-chat-id","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/chats/get-preview-url","title":"Get Preview URL","summary":"Returns the preview URL for a chat. If the preview isn't ready, the response is null. Poll this endpoint until the response is non-null.","outbound":[],"inbound":[{"site":"v0","path":"/docs/api/v2/guides/accessing-previews"},{"site":"v0","path":"/docs/api/v2/guides/migrating-from-v1-to-v2"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat","distance":0.2591},{"site":"v0","path":"/docs/api/v1/reference/chats/get-version","distance":0.2885},{"site":"v0","path":"/docs/api/v2/guides/accessing-previews","distance":0.2891},{"site":"v0","path":"/docs/api/v1/reference/chats/find-versions","distance":0.3091},{"site":"v0","path":"/docs/api/v1/reference/chats/get-message","distance":0.3135}],"related":[{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-version","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/accessing-previews","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/find-versions","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-message","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/chats/list-chats","title":"List Chats","summary":"Lists chats accessible to the authenticated user. Use metadata[key]=value style query parameters to filter by metadata.","outbound":[],"inbound":[{"site":"v0","path":"/docs/api/v1/reference/chats/favorite"},{"site":"v0","path":"/docs/api/v2"},{"site":"v0","path":"/docs/api/v2/guides/migrating-from-v1-to-v2"},{"site":"v0","path":"/docs/api/v2/quickstart"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/chats/find","distance":0.1031},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat","distance":0.1463},{"site":"v0","path":"/docs/api/v1/reference/chats/find-messages","distance":0.1643},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","distance":0.1896},{"site":"v0","path":"/docs/api/v1/reference/chats/update","distance":0.1987}],"related":[{"site":"v0","path":"/docs/api/v1/reference/chats/find","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/find-messages","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/find-versions","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/chats/restore-message","title":"Restore Message","summary":"Restores the files associated with an assistant message. The associated files must not already be the latest files in the chat.","outbound":[],"inbound":[{"site":"v0","path":"/docs/api/v2/guides/migrating-from-v1-to-v2"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/messages/list-messages","distance":0.0516},{"site":"v0","path":"/docs/api/v2/reference/messages/get-message","distance":0.0916},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message","distance":0.0929},{"site":"v0","path":"/docs/api/v2/reference/chats/update-chat-files","distance":0.1014},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task","distance":0.1721}],"related":[{"site":"v0","path":"/docs/api/v2/reference/messages/list-messages","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/get-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/update-chat-files","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/chats/resume-chat-stream","title":"Resume Chat Stream","summary":"Resumes consumption of the active assistant generation as Server-Sent Events. If the latest message has already finished, returns a closing chat-state event. The response is `text/event-stream`; each event is `data: <JSON>\\n\\n` where the JSON conforms to ChatStreamEvent.","outbound":[],"inbound":[{"site":"v0","path":"/docs/api/v2/guides/migrating-from-v1-to-v2"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-streaming","distance":0.1459},{"site":"v0","path":"/docs/api/v1/reference/chats/resume","distance":0.1546},{"site":"v0","path":"/docs/api/v2/guides/resuming-streams","distance":0.2254},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-resume-streams","distance":0.2535},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task-streaming","distance":0.2706}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-resume-streams","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/streaming","via":"neighbor"},{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-streaming","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/resume","via":"neighbor"},{"site":"workflow","path":"/docs/ai/resumable-streams","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/resuming-streams","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task-streaming","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/chats/update-chat","title":"Update Chat","summary":"Updates a chat's title, privacy, or metadata.","outbound":[],"inbound":[{"site":"v0","path":"/docs/api/v1/reference/chats/favorite"},{"site":"v0","path":"/docs/api/v1/reference/projects/assign"},{"site":"v0","path":"/docs/api/v1/reference/projects/update"},{"site":"v0","path":"/docs/api/v2/guides/migrating-from-v1-to-v2"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/chats/update-version","distance":0.1661},{"site":"v0","path":"/docs/api/v1/reference/chats/update","distance":0.1849},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat","distance":0.2129},{"site":"v0","path":"/docs/api/v1/reference/projects/update","distance":0.2142},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat","distance":0.2276}],"related":[{"site":"v0","path":"/docs/api/v1/reference/chats/update-version","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/update","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/update","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/chats/update-chat-files","title":"Update Chat Files","summary":"Creates, updates, or deletes files for a chat. Pass null to delete. This requires the chat's preview to be running.","outbound":[],"inbound":[{"site":"v0","path":"/docs/api/v2/guides/migrating-from-v1-to-v2"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/messages/send-message","distance":0.0905},{"site":"v0","path":"/docs/api/v2/reference/messages/list-messages","distance":0.0995},{"site":"v0","path":"/docs/api/v2/reference/chats/restore-message","distance":0.1014},{"site":"v0","path":"/docs/api/v2/reference/messages/get-message","distance":0.1394},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task","distance":0.1651}],"related":[{"site":"v0","path":"/docs/api/v2/reference/messages/send-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/list-messages","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/restore-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/get-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/create-mcp-server","title":"Create MCP Server","summary":"Creates a new MCP server configuration. Limited to 10 servers per user.","outbound":[],"inbound":[{"site":"v0","path":"/docs/api/v2/guides/integrating-v0-into-agents"},{"site":"v0","path":"/docs/api/v2/guides/mcp-server"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create","distance":0.0857},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/get-mcp-server","distance":0.129},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/list-mcp-servers","distance":0.144},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/update-mcp-server","distance":0.1562},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/get-by-id","distance":0.1592}],"related":[{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/get-mcp-server","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/list-mcp-servers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/update-mcp-server","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/get-by-id","via":"neighbor"},{"site":"eve","path":"/docs/channels/mcp","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-mcp-server-with-nuxt","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/delete-mcp-server","title":"Delete MCP Server","summary":"Deletes an MCP server and cleans up associated OAuth tokens. This action is irreversible.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/delete","distance":0.021},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/get-mcp-server","distance":0.2372},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/create-mcp-server","distance":0.246},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/get-by-id","distance":0.2636},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/list-mcp-servers","distance":0.2688}],"related":[{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/delete","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/get-mcp-server","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/create-mcp-server","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/get-by-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/list-mcp-servers","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/get-mcp-server","title":"Get MCP Server","summary":"Retrieves a specific MCP server by ID.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/get-by-id","distance":0.0285},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/list-mcp-servers","distance":0.082},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/find","distance":0.1033},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/create-mcp-server","distance":0.129},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create","distance":0.1569}],"related":[{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/get-by-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/list-mcp-servers","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/find","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/create-mcp-server","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"eve","path":"/docs/channels/mcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/list-mcp-servers","title":"List MCP Servers","summary":"Retrieves all MCP servers configured for the current user.","outbound":[],"inbound":[{"site":"v0","path":"/docs/api/v2/guides/migrating-from-v1-to-v2"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/find","distance":0.0611},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/get-mcp-server","distance":0.082},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/get-by-id","distance":0.1084},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/create-mcp-server","distance":0.144},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create","distance":0.1845}],"related":[{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/find","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/get-mcp-server","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/get-by-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/create-mcp-server","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp","via":"neighbor"},{"site":"eve","path":"/docs/channels/mcp","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/update-mcp-server","title":"Update MCP Server","summary":"Updates an existing MCP server configuration.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/update","distance":0.0399},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/create-mcp-server","distance":0.1562},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/get-mcp-server","distance":0.1779},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create","distance":0.1891},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/get-by-id","distance":0.2032}],"related":[{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/update","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/create-mcp-server","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/get-mcp-server","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/get-by-id","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/messages/get-message","title":"Get Message","summary":"Fetches a single message in a chat.","outbound":[],"inbound":[{"site":"v0","path":"/docs/api/v2/guides/migrating-from-v1-to-v2"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/messages/list-messages","distance":0.0704},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message","distance":0.0901},{"site":"v0","path":"/docs/api/v2/reference/chats/restore-message","distance":0.0916},{"site":"v0","path":"/docs/api/v2/reference/chats/update-chat-files","distance":0.1394},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task","distance":0.1462}],"related":[{"site":"v0","path":"/docs/api/v2/reference/messages/list-messages","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/restore-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/update-chat-files","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool-loop-agent","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/messages/list-messages","title":"List Messages","summary":"Lists all messages in a chat.","outbound":[],"inbound":[{"site":"v0","path":"/docs/api/v2"},{"site":"v0","path":"/docs/api/v2/guides/migrating-from-v1-to-v2"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/chats/restore-message","distance":0.0516},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message","distance":0.0676},{"site":"v0","path":"/docs/api/v2/reference/messages/get-message","distance":0.0704},{"site":"v0","path":"/docs/api/v2/reference/chats/update-chat-files","distance":0.0995},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task","distance":0.1587}],"related":[{"site":"v0","path":"/docs/api/v2/reference/chats/restore-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/get-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/update-chat-files","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task","title":"Resolve Task","summary":"Resolves a pending task in a chat. Blocks until the model response is complete and returns the resulting message.","outbound":[],"inbound":[{"site":"v0","path":"/docs/api/v2/guides/handling-integrations"},{"site":"v0","path":"/docs/api/v2/guides/migrating-from-v1-to-v2"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/messages/send-message","distance":0.095},{"site":"v0","path":"/docs/api/v2/reference/messages/get-message","distance":0.1462},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task-streaming","distance":0.1464},{"site":"v0","path":"/docs/api/v2/reference/messages/list-messages","distance":0.1587},{"site":"v0","path":"/docs/api/v2/reference/chats/update-chat-files","distance":0.1651}],"related":[{"site":"v0","path":"/docs/api/v2/reference/messages/send-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/get-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task-streaming","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-a-new-project","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/list-messages","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/update-chat-files","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task-async","title":"Resolve Task (Async)","summary":"Resolves a pending task and processes it in the background. Returns immediately with the assistant message ID. Poll GET /chats/:chatId/messages/:messageId and check `finishReason` to detect completion.","outbound":[],"inbound":[{"site":"v0","path":"/docs/api/v2/guides/migrating-from-v1-to-v2"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/chats/resolve-task","distance":0.1642},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-async","distance":0.2508},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task","distance":0.2718},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-async","distance":0.2834},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task-streaming","distance":0.2991}],"related":[{"site":"v0","path":"/docs/api/v1/reference/chats/resolve-task","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-async","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-async","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/handling-agent-interactions","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task-streaming","title":"Resolve Task (Streaming)","summary":"Resolves a pending task in a chat and returns a Server-Sent Events stream. Events include the initial assistant-message snapshot, content chunk deltas, final usage, and a closing message snapshot. The response is `text/event-stream`; each event is `data: <JSON>\\n\\n` where the JSON conforms to MessageStreamEvent.","outbound":[],"inbound":[{"site":"v0","path":"/docs/api/v2/guides/migrating-from-v1-to-v2"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-streaming","distance":0.0904},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task","distance":0.1464},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-streaming","distance":0.2106},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message","distance":0.2155},{"site":"v0","path":"/docs/api/v2/reference/messages/get-message","distance":0.2678}],"related":[{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-streaming","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/stream-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-streaming","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/get-message","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message","title":"Send Message","summary":"Sends a new message to an existing chat. Blocks until the model response is complete and returns the message response.","outbound":[],"inbound":[{"site":"v0","path":"/docs/api/v2/guides/design-systems"},{"site":"v0","path":"/docs/api/v2/guides/migrating-from-v1-to-v2"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/messages/list-messages","distance":0.0676},{"site":"v0","path":"/docs/api/v2/reference/messages/get-message","distance":0.0901},{"site":"v0","path":"/docs/api/v2/reference/chats/update-chat-files","distance":0.0905},{"site":"v0","path":"/docs/api/v2/reference/chats/restore-message","distance":0.0929},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task","distance":0.095}],"related":[{"site":"v0","path":"/docs/api/v2/reference/messages/list-messages","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/get-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/update-chat-files","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/restore-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-async","title":"Send Message (Async)","summary":"Sends a new message to an existing chat and processes it in the background. Returns immediately with the assistant message ID. Poll GET /chats/:chatId/messages/:messageId and check `finishReason` to detect completion.","outbound":[],"inbound":[{"site":"v0","path":"/docs/api/v2/guides/migrating-from-v1-to-v2"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-async","distance":0.1346},{"site":"v0","path":"/docs/api/v1/reference/chats/get-message","distance":0.2223},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task-async","distance":0.2508},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat","distance":0.2565},{"site":"v0","path":"/docs/api/v1/reference/chats/find-messages","distance":0.2741}],"related":[{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-async","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/messages","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/message","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task-async","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/find-messages","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-streaming","title":"Send Message (Streaming)","summary":"Sends a new message to an existing chat and returns a Server-Sent Events stream. Events include the initial assistant-message snapshot, content chunk deltas, final usage, and a closing message snapshot. The response is `text/event-stream`; each event is `data: <JSON>\\n\\n` where the JSON conforms to MessageStreamEvent.","outbound":[],"inbound":[{"site":"v0","path":"/docs/api/v2/guides/migrating-from-v1-to-v2"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task-streaming","distance":0.0904},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message","distance":0.1681},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-streaming","distance":0.1888},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task","distance":0.2028},{"site":"v0","path":"/docs/api/v1/reference/chats/create","distance":0.2214}],"related":[{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task-streaming","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/stream-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-streaming","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/create","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/messages/stop-message","title":"Stop Message","summary":"Stops an in-flight assistant message generation. The agent aborts at the next safe point and the message is marked finished.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/chats/stop-message","distance":0.0808},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-async","distance":0.3301},{"site":"v0","path":"/docs/api/v1/reference/chats/resume","distance":0.3721},{"site":"v0","path":"/docs/api/v2/reference/chats/delete-chat","distance":0.39},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task-async","distance":0.3917}],"related":[{"site":"v0","path":"/docs/api/v1/reference/chats/stop-message","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/stopping-streams","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/abort-breaks-resumable-streams","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-async","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/resume","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/delete-chat","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task-async","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/settings/get-trusted-preview-hosts","title":"Get Trusted Preview Hosts","summary":"Returns the hostname patterns trusted to embed previews for the current team. Organization child teams inherit the parent organization’s hosts.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/settings/set-trusted-preview-hosts","distance":0.0754},{"site":"v0","path":"/docs/api/v2/reference/chats/get-preview-url","distance":0.3449},{"site":"v0","path":"/docs/api/v2/guides/accessing-previews","distance":0.3786},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/preview-url-prefixes","distance":0.4273},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/list-mcp-servers","distance":0.4653}],"related":[{"site":"v0","path":"/docs/api/v2/reference/settings/set-trusted-preview-hosts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/preview-url-prefixes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/preview-deployment-suffix","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/preview-mode","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-do-my-vercel-deployments-have-multiple-domains","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/get-preview-url","via":"neighbor"},{"site":"workflow","path":"/docs/internal","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/networking/configures-static-ip-s-for-a-project","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/accessing-previews","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/list-mcp-servers","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/get-mcp-server","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/settings/set-trusted-preview-hosts","title":"Set Trusted Preview Hosts","summary":"Sets the host patterns trusted to embed previews for a standalone team or parent organization. Organization child teams cannot override this setting.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/settings/get-trusted-preview-hosts","distance":0.0754},{"site":"v0","path":"/docs/api/v2/guides/accessing-previews","distance":0.3847},{"site":"v0","path":"/docs/api/v2/reference/chats/get-preview-url","distance":0.4221},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/preview-url-prefixes","distance":0.4295},{"site":"vercel-docs","path":"/docs/rest-api/networking/configures-static-ip-s-for-a-project","distance":0.4714}],"related":[{"site":"v0","path":"/docs/api/v2/reference/settings/get-trusted-preview-hosts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/preview-url-prefixes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/networking/configures-static-ip-s-for-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/preview-deployment-suffix","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/preview-mode","via":"neighbor"},{"site":"workflow","path":"/docs/internal","via":"neighbor"},{"site":"vercel-docs","path":"/docs/botid/advanced-configuration","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/accessing-previews","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/get-preview-url","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-activity","title":"Get Usage Activity","summary":"Returns chat and project activity for the active billing scope. Team owners and billing members receive team-wide activity by default; other team members receive their own activity.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-summary","distance":0.1554},{"site":"v0","path":"/docs/api/v1/reference/reports/get-usage","distance":0.1868},{"site":"v0","path":"/docs/api/v1/reference/reports/get-user-activity","distance":0.2098},{"site":"v0","path":"/docs/api/v2/reference/usage/list-usage-events","distance":0.2116},{"site":"v0","path":"/docs/usage-dashboard","distance":0.2476}],"related":[{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-summary","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/activity","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/reports/get-usage","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/reports/get-user-activity","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/usage/list-usage-events","via":"neighbor"},{"site":"v0","path":"/docs/usage-dashboard","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-summary","title":"Get Usage Summary","summary":"Returns credit usage for the active billing scope. Team owners and billing members receive team-wide usage by default; other team members receive their own usage.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/reports/get-usage","distance":0.1522},{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-activity","distance":0.1554},{"site":"v0","path":"/docs/api/v2/reference/usage/list-usage-events","distance":0.1614},{"site":"v0","path":"/docs/api/v1/reference/user/get-billing","distance":0.2151},{"site":"v0","path":"/docs/api/v1/reference/reports/get-user-activity","distance":0.2645}],"related":[{"site":"vercel-docs","path":"/docs/cli/usage","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/reports/get-usage","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-activity","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/usage/list-usage-events","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/usage","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/user/get-billing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/custom-reporting","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/reports/get-user-activity","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/usage/list-usage-events","title":"List Usage Events","summary":"Lists individual credit usage events. Each event includes the credits charged and, when available, associated token counts.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-summary","distance":0.1614},{"site":"v0","path":"/docs/api/v1/reference/reports/get-usage","distance":0.1896},{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-activity","distance":0.2116},{"site":"v0","path":"/docs/usage-dashboard","distance":0.2893},{"site":"v0","path":"/docs/api/v1/reference/user/get-billing","distance":0.3298}],"related":[{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-summary","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/reports/get-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/aggregates-custom-events","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-activity","via":"neighbor"},{"site":"v0","path":"/docs/usage-dashboard","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/user/get-billing","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/webhooks/create-webhook","title":"Create Webhook","summary":"Creates a new webhook that listens for specific events. Supports optional association with a chat.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/hooks/create","distance":0.094},{"site":"v0","path":"/docs/api/v2/reference/webhooks/get-webhook","distance":0.168},{"site":"v0","path":"/docs/api/v2/reference/webhooks/update-webhook","distance":0.1903},{"site":"v0","path":"/docs/api/v2/reference/webhooks/list-webhooks","distance":0.2288},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/creates-a-webhook","distance":0.2317}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/webhooks/creates-a-webhook","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/hooks/create","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow/create-webhook","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/get-a-webhook","via":"neighbor"},{"site":"vercel-docs","path":"/docs/webhooks","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/webhooks/get-webhook","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/webhooks/update-webhook","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/hooks/get-by-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/hooks/update","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/webhooks/delete-webhook","title":"Delete Webhook","summary":"Deletes a webhook. This action is irreversible.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/hooks/delete","distance":0.0773},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/deletes-a-webhook","distance":0.2424},{"site":"v0","path":"/docs/api/v2/reference/webhooks/get-webhook","distance":0.2567},{"site":"v0","path":"/docs/api/v2/reference/webhooks/create-webhook","distance":0.2673},{"site":"v0","path":"/docs/api/v2/reference/webhooks/update-webhook","distance":0.2742}],"related":[{"site":"v0","path":"/docs/api/v1/reference/hooks/delete","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/deletes-a-webhook","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow/create-webhook","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/webhooks/get-webhook","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/webhooks/create-webhook","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/webhooks/update-webhook","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/webhooks/list-webhooks","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/webhooks/get-webhook","title":"Get Webhook","summary":"Retrieves the details of a specific webhook using its ID.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/hooks/get-by-id","distance":0.0747},{"site":"v0","path":"/docs/api/v2/reference/webhooks/list-webhooks","distance":0.1554},{"site":"v0","path":"/docs/api/v2/reference/webhooks/create-webhook","distance":0.168},{"site":"v0","path":"/docs/api/v2/reference/webhooks/update-webhook","distance":0.2005},{"site":"v0","path":"/docs/api/v1/reference/hooks/find","distance":0.2105}],"related":[{"site":"v0","path":"/docs/api/v1/reference/hooks/get-by-id","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/get-a-webhook","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/get-a-list-of-webhooks","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/webhooks/list-webhooks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/creates-a-webhook","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/webhooks/create-webhook","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow/create-webhook","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/webhooks/update-webhook","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/hooks/find","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/webhooks/list-webhooks","title":"List Webhooks","summary":"Retrieves a list of all webhooks in your workspace.","outbound":[],"inbound":[{"site":"v0","path":"/docs/api/v2/guides/migrating-from-v1-to-v2"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/webhooks/get-webhook","distance":0.1554},{"site":"v0","path":"/docs/api/v1/reference/hooks/find","distance":0.1852},{"site":"v0","path":"/docs/api/v2/reference/webhooks/create-webhook","distance":0.2288},{"site":"v0","path":"/docs/api/v1/reference/hooks/get-by-id","distance":0.2407},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/get-a-list-of-webhooks","distance":0.2558}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/webhooks/get-a-list-of-webhooks","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/webhooks/get-webhook","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/get-a-webhook","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/hooks/find","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/creates-a-webhook","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow/create-webhook","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/hooks","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/webhooks/create-webhook","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/hooks/get-by-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/webhooks/update-webhook","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/webhooks/update-webhook","title":"Update Webhook","summary":"Updates the configuration of an existing webhook, including its name, event subscriptions, or target URL.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/hooks/update","distance":0.0645},{"site":"v0","path":"/docs/api/v2/reference/webhooks/create-webhook","distance":0.1903},{"site":"v0","path":"/docs/api/v2/reference/webhooks/get-webhook","distance":0.2005},{"site":"v0","path":"/docs/api/v1/reference/hooks/create","distance":0.2385},{"site":"v0","path":"/docs/api/v1/reference/hooks/get-by-id","distance":0.2554}],"related":[{"site":"v0","path":"/docs/api/v1/reference/hooks/update","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/webhooks/create-webhook","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow/create-webhook","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/webhooks/get-webhook","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/creates-a-webhook","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/hooks","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/hooks/create","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/hooks/get-by-id","via":"neighbor"}]},{"site":"v0","path":"/docs/code-editing","title":"Code editing","summary":"Edit v0's code output directly in the browser.","outbound":[],"inbound":[{"site":"v0","path":"/docs/projects"},{"site":"v0","path":"/docs/text-prompting"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/design-mode","distance":0.2765},{"site":"v0","path":"/docs/quickstart","distance":0.3189},{"site":"v0","path":"/docs/agentic-features","distance":0.3236},{"site":"v0","path":"/docs/text-prompting","distance":0.3325},{"site":"v0","path":"/docs","distance":0.3414}],"related":[{"site":"vercel-docs","path":"/docs/edit-mode","via":"neighbor"},{"site":"v0","path":"/docs/design-mode","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/agentic-features","via":"neighbor"},{"site":"v0","path":"/docs/text-prompting","via":"neighbor"},{"site":"v0","path":"/docs/full-stack-apps","via":"neighbor"}]},{"site":"v0","path":"/docs/compare/v0-vs-base44","title":"v0 vs Base44","summary":"A source-backed comparison of v0 and Base44.","outbound":[{"site":"v0","path":"/docs/deployments"},{"site":"v0","path":"/docs/full-stack-apps"},{"site":"v0","path":"/docs/github"},{"site":"vercel-docs","path":"/docs/security/compliance"}],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/compare/v0-vs-bolt","distance":0.1624},{"site":"v0","path":"/docs/compare/v0-vs-replit","distance":0.1987},{"site":"v0","path":"/docs","distance":0.214},{"site":"v0","path":"/docs/compare/v0-vs-figma-make","distance":0.2235},{"site":"v0","path":"/docs/faqs","distance":0.2477}],"related":[{"site":"v0","path":"/docs/compare/v0-vs-bolt","via":"neighbor"},{"site":"v0","path":"/docs/compare/v0-vs-replit","via":"neighbor"},{"site":"v0","path":"/docs/compare/v0-vs-figma-make","via":"neighbor"},{"site":"v0","path":"/docs/faqs","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"}]},{"site":"v0","path":"/docs/compare/v0-vs-bolt","title":"v0 vs Bolt","summary":"A source-backed comparison of v0 and Bolt.","outbound":[{"site":"v0","path":"/docs/deployments"},{"site":"v0","path":"/docs/full-stack-apps"},{"site":"v0","path":"/docs/github"},{"site":"vercel-docs","path":"/docs/security/compliance"}],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/compare/v0-vs-base44","distance":0.1624},{"site":"v0","path":"/docs/compare/v0-vs-replit","distance":0.1964},{"site":"v0","path":"/docs/compare/v0-vs-figma-make","distance":0.2508},{"site":"v0","path":"/docs","distance":0.2612},{"site":"v0","path":"/docs/faqs","distance":0.2795}],"related":[{"site":"vercel-kb","path":"/kb/guide/bolt-vercel-drop","via":"neighbor"},{"site":"v0","path":"/docs/compare/v0-vs-base44","via":"neighbor"},{"site":"v0","path":"/docs/compare/v0-vs-replit","via":"neighbor"},{"site":"v0","path":"/docs/compare/v0-vs-figma-make","via":"neighbor"},{"site":"v0","path":"/docs/faqs","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"}]},{"site":"v0","path":"/docs/compare/v0-vs-figma-make","title":"v0 vs Figma Make","summary":"A source-backed comparison of v0 and Figma Make.","outbound":[{"site":"v0","path":"/docs/deployments"},{"site":"v0","path":"/docs/figma"},{"site":"v0","path":"/docs/full-stack-apps"},{"site":"v0","path":"/docs/github"},{"site":"vercel-docs","path":"/docs/security/compliance"}],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/figma","distance":0.213},{"site":"v0","path":"/docs/compare/v0-vs-base44","distance":0.2235},{"site":"v0","path":"/docs","distance":0.2249},{"site":"v0","path":"/docs/compare/v0-vs-replit","distance":0.2475},{"site":"v0","path":"/docs/compare/v0-vs-bolt","distance":0.2508}],"related":[{"site":"v0","path":"/docs/compare/v0-vs-base44","via":"neighbor"},{"site":"v0","path":"/docs/compare/v0-vs-replit","via":"neighbor"},{"site":"v0","path":"/docs/compare/v0-vs-bolt","via":"neighbor"},{"site":"v0","path":"/docs/faqs","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"}]},{"site":"v0","path":"/docs/compare/v0-vs-replit","title":"v0 vs Replit","summary":"A source-backed comparison of v0 and Replit.","outbound":[{"site":"v0","path":"/docs/deployments"},{"site":"v0","path":"/docs/full-stack-apps"},{"site":"v0","path":"/docs/github"},{"site":"v0","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/security/compliance"}],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/compare/v0-vs-bolt","distance":0.1964},{"site":"v0","path":"/docs/compare/v0-vs-base44","distance":0.1987},{"site":"v0","path":"/docs","distance":0.2245},{"site":"v0","path":"/docs/faqs","distance":0.2422},{"site":"v0","path":"/docs/quickstart","distance":0.2435}],"related":[{"site":"v0","path":"/docs/compare/v0-vs-bolt","via":"neighbor"},{"site":"v0","path":"/docs/compare/v0-vs-base44","via":"neighbor"},{"site":"v0","path":"/docs/faqs","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/compare/v0-vs-figma-make","via":"neighbor"}]},{"site":"v0","path":"/docs/custom-domains","title":"Custom domain","summary":"Add custom domains to your v0 deployments to give your applications a professional, branded URL.","outbound":[{"site":"v0","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/domains"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain"}],"inbound":[{"site":"v0","path":"/docs/deployments"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","distance":0.1758},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","distance":0.2068},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","distance":0.2361},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting","distance":0.2441},{"site":"vercel-kb","path":"/kb/guide/why-do-my-vercel-deployments-have-multiple-domains","distance":0.2458}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-do-my-vercel-deployments-have-multiple-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/actions/add-custom-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain-to-environment","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-brunch-with-vercel","via":"neighbor"}]},{"site":"v0","path":"/docs/databases","title":"Databases","summary":"Build full-stack applications with v0's database integrations.","outbound":[{"site":"v0","path":"/docs/ai-models"},{"site":"v0","path":"/docs/snowflake"},{"site":"vercel-docs","path":"/docs/vercel-blob"}],"inbound":[{"site":"v0","path":"/docs/full-stack-apps"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/snowflake","distance":0.2619},{"site":"v0","path":"/docs/full-stack-apps","distance":0.2624},{"site":"vercel-docs","path":"/docs/marketplace-storage","distance":0.2795},{"site":"v0","path":"/docs/quickstart","distance":0.2823},{"site":"v0","path":"/docs/ai-models","distance":0.2876}],"related":[{"site":"vercel-docs","path":"/docs/marketplace-storage","via":"neighbor"},{"site":"v0","path":"/docs/full-stack-apps","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/MCP","via":"neighbor"},{"site":"v0","path":"/docs/vercel-integration","via":"neighbor"},{"site":"v0","path":"/docs/vercel-connect","via":"neighbor"}]},{"site":"v0","path":"/docs/deployments","title":"Deployments","summary":"Deploy your v0 chats to Vercel with one click and manage production deployments.","outbound":[{"site":"v0","path":"/docs/agentic-features"},{"site":"v0","path":"/docs/custom-domains"},{"site":"v0","path":"/docs/github"},{"site":"v0","path":"/docs/projects"},{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/deployments/deployment-policy"},{"site":"vercel-docs","path":"/docs/environment-variables"}],"inbound":[{"site":"v0","path":"/docs/agentic-features"},{"site":"v0","path":"/docs/compare/v0-vs-base44"},{"site":"v0","path":"/docs/compare/v0-vs-bolt"},{"site":"v0","path":"/docs/compare/v0-vs-figma-make"},{"site":"v0","path":"/docs/compare/v0-vs-replit"},{"site":"v0","path":"/docs/custom-domains"},{"site":"v0","path":"/docs/text-prompting"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/quickstart","distance":0.1495},{"site":"v0","path":"/docs/faqs","distance":0.1514},{"site":"v0","path":"/docs/vercel-integration","distance":0.1579},{"site":"vercel-docs","path":"/docs/deployments","distance":0.1678},{"site":"v0","path":"/docs/teams","distance":0.19}],"related":[{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/faqs","via":"neighbor"},{"site":"v0","path":"/docs/vercel-integration","via":"neighbor"},{"site":"v0","path":"/docs/teams","via":"neighbor"},{"site":"v0","path":"/docs/slack","via":"neighbor"}]},{"site":"v0","path":"/docs/design-mode","title":"Design mode","summary":"Visually edit your app by selecting elements, tweaking styles, and applying the results back to your code.","outbound":[],"inbound":[{"site":"v0","path":"/docs/text-prompting"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/design-systems-2","distance":0.2698},{"site":"v0","path":"/docs/quickstart","distance":0.2759},{"site":"v0","path":"/docs/code-editing","distance":0.2765},{"site":"v0","path":"/docs/text-prompting","distance":0.2805},{"site":"v0","path":"/docs/screenshots","distance":0.2856}],"related":[{"site":"v0","path":"/docs/design-systems-2","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/code-editing","via":"neighbor"},{"site":"v0","path":"/docs/text-prompting","via":"neighbor"},{"site":"v0","path":"/docs/screenshots","via":"neighbor"}]},{"site":"v0","path":"/docs/design-systems-2","title":"Design Systems 2.0","summary":"Teach v0 to build with your team's components, tokens, and design system conventions.","outbound":[{"site":"vercel-docs","path":"/docs/environment-variables/shared-environment-variables"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"}],"inbound":[{"site":"v0","path":"/docs/api/v2/guides/design-systems"},{"site":"v0","path":"/docs/design-systems-legacy"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/guides/design-systems","distance":0.1264},{"site":"v0","path":"/docs/quickstart","distance":0.2344},{"site":"v0","path":"/docs/teams","distance":0.241},{"site":"v0","path":"/docs/faqs","distance":0.2413},{"site":"v0","path":"/docs/text-prompting","distance":0.2509}],"related":[{"site":"v0","path":"/docs/api/v2/guides/design-systems","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/ai-agents","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/teams","via":"neighbor"},{"site":"v0","path":"/docs/faqs","via":"neighbor"},{"site":"v0","path":"/docs/text-prompting","via":"neighbor"}]},{"site":"v0","path":"/docs/design-systems-legacy","title":"Design systems","summary":"Create a custom registry to use your design system with v0 and Shadcn.","outbound":[{"site":"nextjs","path":"/docs/app/getting-started/fonts"},{"site":"v0","path":"/docs/design-systems-2"}],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/design-systems-2","distance":0.3147},{"site":"v0","path":"/docs","distance":0.3265},{"site":"v0","path":"/docs/quickstart","distance":0.3388},{"site":"v0","path":"/docs/text-prompting","distance":0.3401},{"site":"v0","path":"/docs/api/v1/examples/classic-v0","distance":0.3428}],"related":[{"site":"turborepo","path":"/docs/guides/tools/shadcn-ui","via":"neighbor"},{"site":"eve","path":"/docs/install-integrations","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/text-prompting","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/examples/classic-v0","via":"neighbor"},{"site":"v0","path":"/docs/api/v1","via":"neighbor"},{"site":"v0","path":"/docs/faqs","via":"neighbor"}]},{"site":"v0","path":"/docs/enterprise","title":"Enterprise","summary":"Learn how to manage v0 seats, access, and more in your Vercel Enterprise account.","outbound":[{"site":"v0","path":"/docs/sharing"},{"site":"vercel-docs","path":"/docs/directory-sync"},{"site":"vercel-docs","path":"/docs/rbac/access-groups"}],"inbound":[{"site":"v0","path":"/docs/teams"}],"requires":[{"site":"v0","path":"/docs"}],"neighbors":[{"site":"v0","path":"/docs/teams","distance":0.1341},{"site":"v0","path":"/docs/vercel-integration","distance":0.177},{"site":"v0","path":"/docs/security","distance":0.2044},{"site":"v0","path":"/docs/deployments","distance":0.2297},{"site":"v0","path":"/docs/api/v2/guides/organizations","distance":0.2332}],"related":[{"site":"vercel-docs","path":"/docs/plans/enterprise","via":"neighbor"},{"site":"v0","path":"/docs/teams","via":"neighbor"},{"site":"v0","path":"/docs/vercel-integration","via":"neighbor"},{"site":"v0","path":"/docs/security","via":"neighbor"},{"site":"v0","path":"/docs/deployments","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/organizations","via":"neighbor"}]},{"site":"v0","path":"/docs/external-apis","title":"External APIs","summary":"Build full-stack applications by calling external APIs with environment variables.","outbound":[],"inbound":[{"site":"v0","path":"/docs/vercel-connect"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/guides/environment-variables","distance":0.2654},{"site":"v0","path":"/docs/api/v2/guides/environment-variables","distance":0.2704},{"site":"v0","path":"/docs/vercel-connect","distance":0.3071},{"site":"v0","path":"/docs/ai-models","distance":0.3199},{"site":"v0","path":"/docs/api/v2","distance":0.3216}],"related":[{"site":"vercel-docs","path":"/docs/environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/manage-across-environments","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/guides/environment-variables","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/environment-variables","via":"neighbor"},{"site":"v0","path":"/docs/vercel-connect","via":"neighbor"},{"site":"v0","path":"/docs/ai-models","via":"neighbor"},{"site":"v0","path":"/docs/api/v2","via":"neighbor"}]},{"site":"v0","path":"/docs/faqs","title":"FAQs","summary":"Common questions about what v0 is, how it works, and how to build with it.","outbound":[{"site":"v0","path":"/docs/github"},{"site":"v0","path":"/docs/quickstart"}],"inbound":[],"requires":[{"site":"v0","path":"/docs"}],"neighbors":[{"site":"v0","path":"/docs/quickstart","distance":0.1075},{"site":"v0","path":"/docs","distance":0.1338},{"site":"v0","path":"/docs/deployments","distance":0.1514},{"site":"v0","path":"/docs/vercel-integration","distance":0.1549},{"site":"v0","path":"/docs/api/v1","distance":0.1615}],"related":[{"site":"v0","path":"/docs/deployments","via":"neighbor"},{"site":"v0","path":"/docs/vercel-integration","via":"neighbor"},{"site":"v0","path":"/docs/api/v1","via":"neighbor"},{"site":"v0","path":"/docs/teams","via":"neighbor"},{"site":"v0","path":"/docs/text-prompting","via":"neighbor"}]},{"site":"v0","path":"/docs/figma","title":"Figma","summary":"Turn a Figma file into a working app.","outbound":[],"inbound":[{"site":"v0","path":"/docs/compare/v0-vs-figma-make"},{"site":"v0","path":"/docs/screenshots"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/compare/v0-vs-figma-make","distance":0.213},{"site":"v0","path":"/docs/screenshots","distance":0.2604},{"site":"v0","path":"/docs/quickstart","distance":0.301},{"site":"v0","path":"/docs/paper","distance":0.3034},{"site":"v0","path":"/docs/full-stack-apps","distance":0.3101}],"related":[{"site":"v0","path":"/docs/compare/v0-vs-figma-make","via":"neighbor"},{"site":"v0","path":"/docs/screenshots","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/paper","via":"neighbor"},{"site":"v0","path":"/docs/full-stack-apps","via":"neighbor"}]},{"site":"v0","path":"/docs/full-stack-apps","title":"Full-stack apps","summary":"Build full-stack apps with v0.","outbound":[{"site":"v0","path":"/docs/ai-models"},{"site":"v0","path":"/docs/databases"}],"inbound":[{"site":"v0","path":"/docs/compare/v0-vs-base44"},{"site":"v0","path":"/docs/compare/v0-vs-bolt"},{"site":"v0","path":"/docs/compare/v0-vs-figma-make"},{"site":"v0","path":"/docs/compare/v0-vs-replit"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/text-prompting","distance":0.1325},{"site":"v0","path":"/docs","distance":0.1446},{"site":"v0","path":"/docs/quickstart","distance":0.1519},{"site":"v0","path":"/docs/api/v2/quickstart","distance":0.1627},{"site":"v0","path":"/docs/api/v2","distance":0.1749}],"related":[{"site":"v0","path":"/docs/text-prompting","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/api/v2","via":"neighbor"},{"site":"v0","path":"/docs/api/v1","via":"neighbor"}]},{"site":"v0","path":"/docs/git-import","title":"Git Import","summary":"Import existing GitHub repositories into v0 to work on your actual codebase.","outbound":[],"inbound":[{"site":"v0","path":"/docs/github"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/github","distance":0.1337},{"site":"v0","path":"/docs/slack","distance":0.2409},{"site":"v0","path":"/docs/faqs","distance":0.2641},{"site":"v0","path":"/docs/vercel-integration","distance":0.2793},{"site":"vercel-kb","path":"/kb/guide/unable-to-find-github-repository","distance":0.2796}],"related":[{"site":"vercel-kb","path":"/kb/guide/unable-to-find-github-repository","via":"neighbor"},{"site":"v0","path":"/docs/github","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket","via":"neighbor"},{"site":"v0","path":"/docs/slack","via":"neighbor"},{"site":"v0","path":"/docs/faqs","via":"neighbor"},{"site":"v0","path":"/docs/vercel-integration","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"}]},{"site":"v0","path":"/docs/github","title":"GitHub","summary":"Connect your GitHub repositories to v0 to automatically create projects and track changes.","outbound":[{"site":"v0","path":"/docs/git-import"}],"inbound":[{"site":"v0","path":"/docs/compare/v0-vs-base44"},{"site":"v0","path":"/docs/compare/v0-vs-bolt"},{"site":"v0","path":"/docs/compare/v0-vs-figma-make"},{"site":"v0","path":"/docs/compare/v0-vs-replit"},{"site":"v0","path":"/docs/deployments"},{"site":"v0","path":"/docs/faqs"},{"site":"v0","path":"/docs/vercel-integration"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/git-import","distance":0.1337},{"site":"v0","path":"/docs/slack","distance":0.1881},{"site":"v0","path":"/docs/projects","distance":0.2243},{"site":"v0","path":"/docs/teams","distance":0.2324},{"site":"v0","path":"/docs/faqs","distance":0.2377}],"related":[{"site":"vercel-docs","path":"/docs/git/vercel-for-github","via":"neighbor"},{"site":"eve","path":"/docs/channels/github","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git","via":"neighbor"},{"site":"v0","path":"/docs/slack","via":"neighbor"},{"site":"v0","path":"/docs/projects","via":"neighbor"},{"site":"v0","path":"/docs/teams","via":"neighbor"},{"site":"v0","path":"/docs/faqs","via":"neighbor"},{"site":"v0","path":"/docs/vercel-integration","via":"neighbor"}]},{"site":"v0","path":"/docs/images-and-videos","title":"Images, videos, and file uploads","summary":"Attach media, documents, code, and other supported assets to give v0 context or add them to your application.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/screenshots","distance":0.2141},{"site":"v0","path":"/docs/quickstart","distance":0.2717},{"site":"chat-sdk","path":"/docs/files","distance":0.2808},{"site":"v0","path":"/docs/api/v1","distance":0.2949},{"site":"v0","path":"/docs/full-stack-apps","distance":0.3007}],"related":[{"site":"chat-sdk","path":"/docs/files","via":"neighbor"},{"site":"v0","path":"/docs/screenshots","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/api/v1","via":"neighbor"},{"site":"v0","path":"/docs/full-stack-apps","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/guides/start-from-existing-code","via":"neighbor"}]},{"site":"v0","path":"/docs/instructions","title":"Instructions","summary":"Create and apply custom instructions to guide v0's responses","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/instructions","distance":0.2548},{"site":"v0","path":"/docs/text-prompting","distance":0.3123},{"site":"v0","path":"/docs/quickstart","distance":0.3167},{"site":"v0","path":"/docs/full-stack-apps","distance":0.328},{"site":"eve","path":"/docs/concepts/context-control","distance":0.3573}],"related":[{"site":"eve","path":"/docs/instructions","via":"neighbor"},{"site":"eve","path":"/docs/concepts/context-control","via":"neighbor"},{"site":"v0","path":"/docs/text-prompting","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/full-stack-apps","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/design-mode","via":"neighbor"}]},{"site":"v0","path":"/docs/paper","title":"Paper","summary":"Turn a Paper design into a working app.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/figma","distance":0.3034},{"site":"v0","path":"/docs/prototyping","distance":0.3537},{"site":"v0","path":"/docs/screenshots","distance":0.3576},{"site":"v0","path":"/docs/design-mode","distance":0.3659},{"site":"v0","path":"/docs/full-stack-apps","distance":0.3769}],"related":[{"site":"v0","path":"/docs/figma","via":"neighbor"},{"site":"v0","path":"/docs/prototyping","via":"neighbor"},{"site":"v0","path":"/docs/screenshots","via":"neighbor"},{"site":"v0","path":"/docs/design-mode","via":"neighbor"},{"site":"v0","path":"/docs/full-stack-apps","via":"neighbor"}]},{"site":"v0","path":"/docs/prd-design","title":"PRD design","summary":"Create a Product Requirements Document (PRD) with v0.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/prototyping","distance":0.2543},{"site":"v0","path":"/docs/text-prompting","distance":0.3183},{"site":"v0","path":"/docs/full-stack-apps","distance":0.3285},{"site":"v0","path":"/docs","distance":0.3326},{"site":"v0","path":"/docs/quickstart","distance":0.3431}],"related":[{"site":"vercel-shop","path":"/docs/anatomy/pages/pdp","via":"neighbor"},{"site":"vercel-shop","path":"/docs/shopify/pdp","via":"neighbor"},{"site":"v0","path":"/docs/prototyping","via":"neighbor"},{"site":"v0","path":"/docs/text-prompting","via":"neighbor"},{"site":"v0","path":"/docs/full-stack-apps","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/api/v1","via":"neighbor"}]},{"site":"v0","path":"/docs/pre-installed-agents","title":"Pre-installed Agents","summary":"Use pre-installed coding agents like Claude Code directly in the v0 terminal.","outbound":[],"inbound":[{"site":"v0","path":"/docs/sandbox"}],"requires":[{"site":"v0","path":"/docs"}],"neighbors":[{"site":"v0","path":"/docs/agentic-features","distance":0.2189},{"site":"v0","path":"/docs/terminal-commands","distance":0.2547},{"site":"vercel-docs","path":"/docs/agent","distance":0.2695},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents","distance":0.2773},{"site":"vercel-docs","path":"/docs/agent-resources","distance":0.2845}],"related":[{"site":"vercel-docs","path":"/docs/agent","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-agent","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/claude-code","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"v0","path":"/docs/agentic-features","via":"neighbor"},{"site":"v0","path":"/docs/terminal-commands","via":"neighbor"},{"site":"v0","path":"/docs/faqs","via":"neighbor"}]},{"site":"v0","path":"/docs/pricing","title":"Pricing","summary":"Understand the v0 plans, pricing, and usage limits.","outbound":[],"inbound":[{"site":"v0","path":"/docs/teams"}],"requires":[{"site":"v0","path":"/docs"}],"neighbors":[{"site":"v0","path":"/docs/usage-dashboard","distance":0.1726},{"site":"v0","path":"/docs/teams","distance":0.1918},{"site":"v0","path":"/docs/faqs","distance":0.1971},{"site":"v0","path":"/docs/quickstart","distance":0.2213},{"site":"vercel-docs","path":"/docs/pricing","distance":0.224}],"related":[{"site":"vercel-docs","path":"/docs/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/billing","via":"neighbor"},{"site":"v0","path":"/docs/usage-dashboard","via":"neighbor"},{"site":"v0","path":"/docs/teams","via":"neighbor"},{"site":"v0","path":"/docs/faqs","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/text-prompting","via":"neighbor"}]},{"site":"v0","path":"/docs/projects","title":"Projects","summary":"Projects in v0 are one app that is shared between many chats.","outbound":[{"site":"v0","path":"/docs/code-editing"}],"inbound":[{"site":"v0","path":"/docs/deployments"},{"site":"v0","path":"/docs/vercel-integration"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/projects/create","distance":0.1665},{"site":"v0","path":"/docs/quickstart","distance":0.1872},{"site":"v0","path":"/docs/vercel-integration","distance":0.1911},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-chat-id","distance":0.1931},{"site":"v0","path":"/docs/deployments","distance":0.1946}],"related":[{"site":"vercel-docs","path":"/docs/projects","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/create","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/vercel-integration","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-chat-id","via":"neighbor"},{"site":"v0","path":"/docs/deployments","via":"neighbor"}]},{"site":"v0","path":"/docs/prototyping","title":"Prototyping","summary":"Accelerate your product development lifecycle with interactive prototypes.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs","distance":0.2117},{"site":"v0","path":"/docs/full-stack-apps","distance":0.2291},{"site":"v0","path":"/docs/text-prompting","distance":0.252},{"site":"v0","path":"/docs/prd-design","distance":0.2543},{"site":"v0","path":"/docs/quickstart","distance":0.2582}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-evaluate-a-rapid-ai-prototyping-tool","via":"neighbor"},{"site":"v0","path":"/docs/full-stack-apps","via":"neighbor"},{"site":"v0","path":"/docs/text-prompting","via":"neighbor"},{"site":"v0","path":"/docs/prd-design","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/api/v1","via":"neighbor"}]},{"site":"v0","path":"/docs/quickstart","title":"Quickstart","summary":"An overview of v0's features and workflows","outbound":[],"inbound":[{"site":"v0","path":"/docs/faqs"}],"requires":[{"site":"v0","path":"/docs"}],"neighbors":[{"site":"v0","path":"/docs/faqs","distance":0.1075},{"site":"v0","path":"/docs/text-prompting","distance":0.1276},{"site":"v0","path":"/docs/api/v2","distance":0.1303},{"site":"v0","path":"/docs/api/v1","distance":0.1312},{"site":"v0","path":"/docs/api/v2/quickstart","distance":0.1352}],"related":[{"site":"v0","path":"/docs/faqs","via":"neighbor"},{"site":"v0","path":"/docs/text-prompting","via":"neighbor"},{"site":"v0","path":"/docs/api/v2","via":"neighbor"},{"site":"v0","path":"/docs/api/v1","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/quickstart","via":"neighbor"}]},{"site":"v0","path":"/docs/sandbox","title":"Sandbox","summary":"VM-backed chats run your project inside an isolated Vercel Sandbox that hosts your code, dev server, terminal, and agent tools.","outbound":[{"site":"v0","path":"/docs/pre-installed-agents"},{"site":"v0","path":"/docs/sharing"},{"site":"v0","path":"/docs/terminal-commands"}],"inbound":[{"site":"v0","path":"/docs/agentic-features"},{"site":"v0","path":"/docs/compare/v0-vs-replit"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/sandbox","distance":0.178},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","distance":0.1827},{"site":"vercel-docs","path":"/docs/sandbox/concepts","distance":0.1969},{"site":"vercel-docs","path":"/docs/sandbox/run-commands-in-sandbox","distance":0.2178},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes","distance":0.2276}],"related":[{"site":"vercel-docs","path":"/docs/sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/run-commands-in-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-on-demand-voice-agent-with-vercel-sandbox","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/projects","via":"neighbor"},{"site":"v0","path":"/docs/agentic-features","via":"inbound"},{"site":"v0","path":"/docs/compare/v0-vs-replit","via":"inbound"}]},{"site":"v0","path":"/docs/screenshots","title":"Screenshots and Files","summary":"Turn your mockups or wireframes into high-fidelity designs.","outbound":[{"site":"v0","path":"/docs/figma"}],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/images-and-videos","distance":0.2141},{"site":"v0","path":"/docs/figma","distance":0.2604},{"site":"v0","path":"/docs/design-mode","distance":0.2856},{"site":"v0","path":"/docs/prototyping","distance":0.2929},{"site":"v0","path":"/docs","distance":0.3075}],"related":[{"site":"v0","path":"/docs/images-and-videos","via":"neighbor"},{"site":"v0","path":"/docs/design-mode","via":"neighbor"},{"site":"v0","path":"/docs/prototyping","via":"neighbor"},{"site":"v0","path":"/docs/compare/v0-vs-figma-make","via":"neighbor"},{"site":"v0","path":"/docs/full-stack-apps","via":"neighbor"}]},{"site":"v0","path":"/docs/security","title":"Security","summary":"Learn about v0's security practices, threat modeling, and enterprise security features.","outbound":[{"site":"v0","path":"/docs/teams"}],"inbound":[],"requires":[{"site":"v0","path":"/docs"}],"neighbors":[{"site":"v0","path":"/docs/enterprise","distance":0.2044},{"site":"v0","path":"/docs/faqs","distance":0.2219},{"site":"vercel-docs","path":"/docs/security","distance":0.2252},{"site":"v0","path":"/docs/deployments","distance":0.2591},{"site":"v0","path":"/docs","distance":0.2604}],"related":[{"site":"vercel-docs","path":"/docs/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/compliance","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/complete-guide-authentication-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/security-settings","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ensuring-safe-and-effective-infrastructure-testing","via":"neighbor"},{"site":"v0","path":"/docs/enterprise","via":"neighbor"},{"site":"v0","path":"/docs/faqs","via":"neighbor"},{"site":"v0","path":"/docs/deployments","via":"neighbor"},{"site":"v0","path":"/docs/vercel-integration","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"}]},{"site":"v0","path":"/docs/sharing","title":"Sharing","summary":"Share your v0 chat with others to showcase your prompt history or to collaborate on generating components. This allows for seamless teamwork and feedback.","outbound":[],"inbound":[{"site":"v0","path":"/docs/enterprise"},{"site":"v0","path":"/docs/sandbox"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/teams","distance":0.2421},{"site":"v0","path":"/docs/templates","distance":0.2734},{"site":"v0","path":"/docs/projects","distance":0.2739},{"site":"v0","path":"/docs/quickstart","distance":0.2832},{"site":"v0","path":"/docs/slack","distance":0.3079}],"related":[{"site":"vercel-docs","path":"/docs/deployments/sharing-deployments","via":"neighbor"},{"site":"v0","path":"/docs/teams","via":"neighbor"},{"site":"v0","path":"/docs/templates","via":"neighbor"},{"site":"v0","path":"/docs/projects","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/slack","via":"neighbor"}]},{"site":"v0","path":"/docs/shopify","title":"Shopify","summary":"Connect a Shopify store to v0 and build storefronts that read live products, prices, and inventory from the Shopify Storefront and Admin APIs.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-shop","path":"/docs/getting-started/shopify-setup","distance":0.1982},{"site":"vercel-shop","path":"/docs","distance":0.2051},{"site":"vercel-shop","path":"/docs/getting-started","distance":0.2109},{"site":"vercel-shop","path":"/docs/reference/troubleshooting","distance":0.2304},{"site":"v0","path":"/docs/quickstart","distance":0.2419}],"related":[{"site":"vercel-shop","path":"/docs/getting-started/shopify-setup","via":"neighbor"},{"site":"vercel-shop","path":"/docs","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/troubleshooting","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-shopify-app-to-vercel","via":"neighbor"},{"site":"vercel-shop","path":"/docs/shopify","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-shopify-storefront-with-vercel","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/faqs","via":"neighbor"},{"site":"v0","path":"/docs/slack","via":"neighbor"},{"site":"v0","path":"/docs/full-stack-apps","via":"neighbor"}]},{"site":"v0","path":"/docs/slack","title":"Slack","summary":"Add v0 to your Slack workspace so your whole team can contribute to production.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/github","distance":0.1881},{"site":"v0","path":"/docs/faqs","distance":0.1933},{"site":"v0","path":"/docs/quickstart","distance":0.1998},{"site":"v0","path":"/docs/teams","distance":0.2044},{"site":"v0","path":"/docs/deployments","distance":0.2084}],"related":[{"site":"vercel-docs","path":"/docs/comments/integrations","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/run-and-track-deploys-from-slack","via":"neighbor"},{"site":"v0","path":"/docs/github","via":"neighbor"},{"site":"v0","path":"/docs/faqs","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/teams","via":"neighbor"},{"site":"v0","path":"/docs/deployments","via":"neighbor"}]},{"site":"v0","path":"/docs/snowflake","title":"Snowflake","summary":"Connect v0 to Snowflake to build apps and dashboards with your warehouse data, query Snowflake, and deploy apps to Snowflake.","outbound":[],"inbound":[{"site":"v0","path":"/docs/databases"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/quickstart","distance":0.2594},{"site":"v0","path":"/docs/databases","distance":0.2619},{"site":"v0","path":"/docs/vercel-integration","distance":0.2738},{"site":"v0","path":"/docs/teams","distance":0.277},{"site":"v0","path":"/docs/deployments","distance":0.2833}],"related":[{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/databases","via":"neighbor"},{"site":"v0","path":"/docs/vercel-integration","via":"neighbor"},{"site":"v0","path":"/docs/teams","via":"neighbor"},{"site":"v0","path":"/docs/deployments","via":"neighbor"}]},{"site":"v0","path":"/docs/teams","title":"Teams","summary":"Collaborate with your team on projects with shared resources.","outbound":[{"site":"v0","path":"/docs/enterprise"},{"site":"v0","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"}],"inbound":[{"site":"v0","path":"/docs/security"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/enterprise","distance":0.1341},{"site":"v0","path":"/docs/vercel-integration","distance":0.1523},{"site":"v0","path":"/docs/faqs","distance":0.1637},{"site":"v0","path":"/docs/quickstart","distance":0.1739},{"site":"v0","path":"/docs/usage-dashboard","distance":0.1763}],"related":[{"site":"vercel-docs","path":"/docs/accounts","via":"neighbor"},{"site":"v0","path":"/docs/vercel-integration","via":"neighbor"},{"site":"v0","path":"/docs/faqs","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/usage-dashboard","via":"neighbor"},{"site":"v0","path":"/docs/deployments","via":"neighbor"}]},{"site":"v0","path":"/docs/templates","title":"Templates","summary":"Share your v0 creations with the community by publishing them as templates. Templates appear in your public profile and can be forked by other users.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/quickstart","distance":0.2434},{"site":"v0","path":"/docs/api/v1","distance":0.2721},{"site":"v0","path":"/docs/sharing","distance":0.2734},{"site":"v0","path":"/docs/projects","distance":0.2866},{"site":"v0","path":"/docs/teams","distance":0.2949}],"related":[{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/api/v1","via":"neighbor"},{"site":"v0","path":"/docs/sharing","via":"neighbor"},{"site":"v0","path":"/docs/projects","via":"neighbor"},{"site":"v0","path":"/docs/teams","via":"neighbor"}]},{"site":"v0","path":"/docs/terminal-commands","title":"Terminal commands","summary":"v0 can run bash commands in your project sandbox to test, debug, and use platform CLIs. Control its autonomy with three permission modes (Ask, Auto, Full).","outbound":[{"site":"vercel-docs","path":"/docs/cli"}],"inbound":[{"site":"v0","path":"/docs/MCP"},{"site":"v0","path":"/docs/agentic-features"},{"site":"v0","path":"/docs/sandbox"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/agentic-features","distance":0.1904},{"site":"v0","path":"/docs/pre-installed-agents","distance":0.2547},{"site":"v0","path":"/docs/sandbox","distance":0.2639},{"site":"v0","path":"/docs/slack","distance":0.2666},{"site":"v0","path":"/docs/faqs","distance":0.2674}],"related":[{"site":"eve","path":"/docs/guides/dev-tui","via":"neighbor"},{"site":"v0","path":"/docs/agentic-features","via":"neighbor"},{"site":"v0","path":"/docs/pre-installed-agents","via":"neighbor"},{"site":"v0","path":"/docs/sandbox","via":"neighbor"},{"site":"v0","path":"/docs/slack","via":"neighbor"},{"site":"v0","path":"/docs/faqs","via":"neighbor"}]},{"site":"v0","path":"/docs/text-prompting","title":"Text Prompting","summary":"Use text prompting to create initial UIs and ask technical questions with natural language.","outbound":[{"site":"v0","path":"/docs/code-editing"},{"site":"v0","path":"/docs/deployments"},{"site":"v0","path":"/docs/design-mode"}],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/quickstart","distance":0.1276},{"site":"v0","path":"/docs/full-stack-apps","distance":0.1325},{"site":"v0","path":"/docs","distance":0.1651},{"site":"v0","path":"/docs/faqs","distance":0.1653},{"site":"v0","path":"/docs/agentic-features","distance":0.2049}],"related":[{"site":"nextjs","path":"/docs/app/guides/ai-agents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/full-stack-apps","via":"neighbor"},{"site":"v0","path":"/docs/faqs","via":"neighbor"},{"site":"v0","path":"/docs/agentic-features","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/quickstart","via":"neighbor"}]},{"site":"v0","path":"/docs/usage-dashboard","title":"Usage & Activity","summary":"Track your credit consumption and activity, or review usage across your team.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/pricing","distance":0.1726},{"site":"v0","path":"/docs/teams","distance":0.1763},{"site":"v0","path":"/docs/account","distance":0.2427},{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-activity","distance":0.2476},{"site":"v0","path":"/docs/quickstart","distance":0.2535}],"related":[{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/billing","via":"neighbor"},{"site":"v0","path":"/docs/pricing","via":"neighbor"},{"site":"v0","path":"/docs/teams","via":"neighbor"},{"site":"v0","path":"/docs/account","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-activity","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"}]},{"site":"v0","path":"/docs/vercel-connect","title":"Vercel Connect","summary":"Connect your v0 apps and agents to third-party services – no API keys required.","outbound":[{"site":"v0","path":"/docs/external-apis"},{"site":"vercel-docs","path":"/docs/connect"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/connect","distance":0.1536},{"site":"vercel-kb","path":"/kb/guide/vercel-connect","distance":0.1727},{"site":"chat-sdk","path":"/docs/vercel-connect","distance":0.1773},{"site":"v0","path":"/docs/vercel-integration","distance":0.2023},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","distance":0.2057}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-connect","via":"neighbor"},{"site":"chat-sdk","path":"/docs/vercel-connect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/connectors","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/nuxt-and-vercel-connect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/ts-sdk-reference","via":"neighbor"},{"site":"v0","path":"/docs/vercel-integration","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/slack","via":"neighbor"},{"site":"v0","path":"/docs/teams","via":"neighbor"},{"site":"v0","path":"/docs/faqs","via":"neighbor"}]},{"site":"v0","path":"/docs/vercel-integration","title":"Vercel Integration","summary":"How v0 and Vercel work in tandem.","outbound":[{"site":"v0","path":"/docs/github"},{"site":"v0","path":"/docs/projects"},{"site":"vercel-docs","path":"/docs/environment-variables/sensitive-environment-variables"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"}],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/teams","distance":0.1523},{"site":"v0","path":"/docs/faqs","distance":0.1549},{"site":"v0","path":"/docs/deployments","distance":0.1579},{"site":"v0","path":"/docs/enterprise","distance":0.177},{"site":"v0","path":"/docs/quickstart","distance":0.1814}],"related":[{"site":"v0","path":"/docs/teams","via":"neighbor"},{"site":"v0","path":"/docs/faqs","via":"neighbor"},{"site":"v0","path":"/docs/deployments","via":"neighbor"},{"site":"v0","path":"/docs/enterprise","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"}]},{"site":"v0","path":"/docs/versions","title":"Versions","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/chats/get-version","distance":0.3465},{"site":"v0","path":"/docs/api/v1/reference/chats/find-versions","distance":0.3526},{"site":"v0","path":"/docs/api/v1/reference/chats/update-version","distance":0.3611},{"site":"v0","path":"/docs/code-editing","distance":0.3671},{"site":"v0","path":"/docs/prototyping","distance":0.3709}],"related":[{"site":"v0","path":"/docs/api/v1/reference/chats/get-version","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/find-versions","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/update-version","via":"neighbor"},{"site":"v0","path":"/docs/code-editing","via":"neighbor"},{"site":"v0","path":"/docs/prototyping","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/accounts","title":"Account Management","summary":"Learn how to manage your Vercel account and team members.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/comments"},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket"},{"site":"vercel-docs","path":"/docs/git/vercel-for-github"},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/plans/hobby"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/trials"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"},{"site":"vercel-docs","path":"/docs/rbac/access-roles/team-level-roles"},{"site":"vercel-docs","path":"/docs/rbac/managing-team-members"},{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-docs","path":"/docs/rest-api/teams/list-all-teams"},{"site":"vercel-docs","path":"/docs/saml"}],"inbound":[{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci"},{"site":"vercel-docs","path":"/docs/accounts/access-tokens"},{"site":"vercel-docs","path":"/docs/activity-log"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools"},{"site":"vercel-docs","path":"/docs/analytics/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/audit-log"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge"},{"site":"vercel-docs","path":"/docs/cli/teams"},{"site":"vercel-docs","path":"/docs/comments/how-comments-work"},{"site":"vercel-docs","path":"/docs/deployments/generated-urls"},{"site":"vercel-docs","path":"/docs/deployments/sharing-deployments"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-project-collaboration"},{"site":"vercel-docs","path":"/docs/domains/troubleshooting"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-s3"},{"site":"vercel-docs","path":"/docs/environment-variables/shared-environment-variables"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-dashboard"},{"site":"vercel-docs","path":"/docs/global-config/vercel-api"},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes"},{"site":"vercel-docs","path":"/docs/monorepos/nx"},{"site":"vercel-docs","path":"/docs/notifications"},{"site":"vercel-docs","path":"/docs/plans/enterprise/billing"},{"site":"vercel-docs","path":"/docs/project-configuration/global-configuration"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/projects/managing-projects"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/authentication"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/firewall"},{"site":"vercel-docs","path":"/docs/two-factor-authentication"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-observability"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost/add-to-localhost"},{"site":"vercel-kb","path":"/kb/guide/firewall-terraform-configuration"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-ownership-of-a-vercel-team"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-project-collaboration","distance":0.2139},{"site":"vercel-docs","path":"/docs/security/enterprise-managed-users-account-update","distance":0.221},{"site":"vercel-docs","path":"/docs/rbac/managing-team-members","distance":0.2222},{"site":"v0","path":"/docs/teams","distance":0.2248},{"site":"vercel-docs","path":"/docs/plans/pro-plan","distance":0.2403}],"related":[{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/firewall-terraform-configuration","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-ownership-of-a-vercel-team","via":"inbound"},{"site":"v0","path":"/docs/teams","via":"neighbor"},{"site":"v0","path":"/docs/account","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-project-collaboration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/enterprise-managed-users-account-update","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/billing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/manage-from-dashboard","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/accounts/access-tokens","title":"Access tokens","summary":"Create and scope Vercel access tokens to your full account, a team, or a single project, then use them to authenticate API and CLI requests.","outbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/cli/tokens"},{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-docs","path":"/docs/rest-api/authentication/create-an-auth-token"}],"inbound":[{"site":"vercel-docs","path":"/docs/security/security-dashboard"}],"requires":[{"site":"vercel-docs","path":"/docs/accounts"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-a-vercel-api-access-token","distance":0.1783},{"site":"vercel-docs","path":"/docs/cli/tokens","distance":0.2115},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/tokens","distance":0.2404},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/scopes-and-permissions","distance":0.2419},{"site":"vercel-docs","path":"/docs/rest-api/authentication/create-an-auth-token","distance":0.2431}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-a-vercel-api-access-token","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/tokens","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/scopes-and-permissions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/vercel-api-integrations","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/tokens","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/activity-log","title":"Activity Log","summary":"Learn how to use the Activity Log, which provides a list of all events on a team, chronologically organized since its creation.","outbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/audit-log"},{"site":"vercel-docs","path":"/docs/cli/activity"}],"inbound":[{"site":"vercel-docs","path":"/docs/audit-log/migrating-to-drains"},{"site":"vercel-docs","path":"/docs/cli/activity"},{"site":"vercel-docs","path":"/docs/connect/observability"},{"site":"vercel-docs","path":"/docs/deployments/logs"},{"site":"vercel-docs","path":"/docs/drains/reference/audit-logs"},{"site":"vercel-docs","path":"/docs/environment-variables/sensitive-environment-variables"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/create-react-app"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/logs"},{"site":"vercel-docs","path":"/docs/plans/hobby"},{"site":"vercel-docs","path":"/docs/spend-management"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/user/list-user-events","distance":0.2147},{"site":"vercel-docs","path":"/docs/rest-api/user/list-event-types","distance":0.2285},{"site":"vercel-docs","path":"/docs/audit-log","distance":0.2866},{"site":"vercel-docs","path":"/docs/rest-api/sdk","distance":0.3111},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-a-new-project","distance":0.3132}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/user/list-user-events","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/user/list-event-types","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-a-new-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent","title":"Vercel Agent","summary":"Use Vercel Agent to investigate production issues, review code, and take approved actions.","outbound":[{"site":"vercel-docs","path":"/docs/agent/installation"},{"site":"vercel-docs","path":"/docs/agent/investigation"},{"site":"vercel-docs","path":"/docs/agent/pr-review"},{"site":"vercel-docs","path":"/docs/agent/pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools"},{"site":"vercel-docs","path":"/docs/agent/pr-review"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/products"},{"site":"vercel-kb","path":"/kb/guide/vercel-agent-code-review"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-render"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-agent","distance":0.1228},{"site":"vercel-docs","path":"/docs/agent/pricing","distance":0.1727},{"site":"vercel-docs","path":"/docs/agent/installation","distance":0.1764},{"site":"vercel-kb","path":"/kb/guide/vercel-agent-code-review","distance":0.1875},{"site":"vercel-docs","path":"/docs/agent/pr-review","distance":0.1931}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-agent-code-review","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify","via":"inbound"},{"site":"eve","path":"/docs/guides/deployment/vercel","via":"neighbor"},{"site":"v0","path":"/docs/pre-installed-agents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-agents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/agent-tools","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/agent-resources","title":"Agent Resources","summary":"Resources for building with AI on Vercel, including documentation access, MCP servers, and agent skills.","outbound":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-agents"},{"site":"vercel-docs","path":"/docs/agent-resources/markdown-access"},{"site":"vercel-docs","path":"/docs/agent-resources/skills"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp"},{"site":"vercel-docs","path":"/docs/agent-resources/workflows"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"},{"site":"vercel-docs","path":"/docs/deployments/rollback-production-deployment"},{"site":"vercel-docs","path":"/docs/functions/debug-slow-functions"},{"site":"vercel-docs","path":"/docs/observability/debug-production-errors"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli"},{"site":"vercel-kb","path":"/kb/guide/agent-plugins"}],"inbound":[{"site":"vercel-docs","path":"/docs/getting-started-with-vercel"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/make-your-documentation-readable-by-ai-agents","distance":0.1795},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","distance":0.1988},{"site":"vercel-kb","path":"/kb/guide/agent-readability-spec","distance":0.2216},{"site":"vercel-docs","path":"/docs/agent-resources/markdown-access","distance":0.2217},{"site":"vercel-docs","path":"/docs/agent-resources/skills","distance":0.2226}],"related":[{"site":"vercel-kb","path":"/kb/guide/make-your-documentation-readable-by-ai-agents","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/agent-readability-spec","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/ai-agents","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started/extending-with-agents","via":"neighbor"},{"site":"v0","path":"/docs/agentic-features","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-agents","title":"Integrations for Agents","summary":"Install AI agents and services through the Vercel Marketplace to automate workflows and build custom AI systems.","outbound":[{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/create-integration"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-product"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/product-integration"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","distance":0.134},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-provider","distance":0.1886},{"site":"vercel-docs","path":"/docs/integrations","distance":0.2064},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","distance":0.2154},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/xai","distance":0.2155}],"related":[{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-agents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-provider","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/xai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","title":"Integrations for Models","summary":"Integrate powerful AI services and models seamlessly into your Vercel projects.","outbound":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-provider"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/deepinfra"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/elevenlabs"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/fal"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/groq"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/lmnt"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/perplexity"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/pinecone"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/replicate"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/togetherai"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/xai"}],"inbound":[{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/products"}],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model","distance":0.1},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-provider","distance":0.1248},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-agents","distance":0.134},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","distance":0.1414},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/xai","distance":0.1637}],"related":[{"site":"v0","path":"/docs/ai-models","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-agents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/pydantic-ai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/products","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model","title":"Adding a Model","summary":"Learn how to add a new AI model to your Vercel projects","outbound":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/deepinfra"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/elevenlabs"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/fal"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/groq"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/lmnt"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/perplexity"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/replicate"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/togetherai"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/xai"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models"},{"site":"vercel-docs","path":"/docs/integrations"}],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","distance":0.1},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-provider","distance":0.1111},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","distance":0.1831},{"site":"v0","path":"/docs/ai-models","distance":0.2019},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/togetherai","distance":0.2075}],"related":[{"site":"v0","path":"/docs/ai-models","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-provider","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-agents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/pydantic-ai","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-provider","title":"Adding a Provider","summary":"Learn how to add a new AI provider to your Vercel projects.","outbound":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/deepinfra"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/fal"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/groq"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/xai"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/product-integration"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models"},{"site":"vercel-docs","path":"/docs/integrations"}],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model","distance":0.1111},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","distance":0.1248},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-agents","distance":0.1886},{"site":"vercel-docs","path":"/docs/integrations","distance":0.2032},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/xai","distance":0.2164}],"related":[{"site":"v0","path":"/docs/ai-models","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-agents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/deepinfra","title":"Deep Infra","summary":"Learn how to add the Deep Infra native integration with Vercel.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-provider"}],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/xai","distance":0.1849},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/fal","distance":0.2022},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","distance":0.2118},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","distance":0.2121},{"site":"vercel-docs","path":"/docs/integrations","distance":0.2152}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/xai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/fal","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/groq","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/elevenlabs","title":"ElevenLabs","summary":"Learn how to add the ElevenLabs connectable account integration with Vercel.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model"}],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/xai","distance":0.2026},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/lmnt","distance":0.2188},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/togetherai","distance":0.2216},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/fal","distance":0.2326},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/deepinfra","distance":0.237}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/xai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/lmnt","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/togetherai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/fal","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/deepinfra","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/fal","title":"fal","summary":"Learn how to add the fal native integration with Vercel.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-provider"}],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/deepinfra","distance":0.2022},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/xai","distance":0.2204},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","distance":0.2277},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/elevenlabs","distance":0.2326},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/togetherai","distance":0.2366}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/deepinfra","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/xai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/elevenlabs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/togetherai","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/groq","title":"Groq","summary":"Learn how to add the Groq native integration with Vercel.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-provider"}],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/deepinfra","distance":0.2156},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/xai","distance":0.2229},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model","distance":0.235},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","distance":0.2496},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-provider","distance":0.2511}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/deepinfra","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/xai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-provider","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/elevenlabs","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/lmnt","title":"LMNT","summary":"Learn how to add LMNT connectable account integration with Vercel.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model"}],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/elevenlabs","distance":0.2188},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/deepinfra","distance":0.2557},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/xai","distance":0.2693},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/litellm","distance":0.2711},{"site":"vercel-docs","path":"/docs/integrations","distance":0.274}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/elevenlabs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/deepinfra","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/xai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/litellm","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","title":"OpenAI","summary":"Integrate your Vercel project with OpenAI's powerful suite of models.","outbound":[{"site":"vercel-docs","path":"/docs/environment-variables"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model"}],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","distance":0.1414},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/xai","distance":0.1655},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model","distance":0.1831},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/togetherai","distance":0.1864},{"site":"vercel-docs","path":"/docs/ai-sdk","distance":0.2072}],"related":[{"site":"v0","path":"/docs/ai-models","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/xai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/togetherai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/deepinfra","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/perplexity","title":"Perplexity","summary":"Learn how to add Perplexity connectable account integration with Vercel.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model"}],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model","distance":0.257},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","distance":0.2629},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/deepinfra","distance":0.2724},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/elevenlabs","distance":0.2739},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/xai","distance":0.2772}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/perplexity","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/deepinfra","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/elevenlabs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/xai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/togetherai","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/pinecone","title":"Pinecone","summary":"Learn how to add Pinecone connectable account integration with Vercel.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models"}],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/deepinfra","distance":0.2505},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/replicate","distance":0.2565},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","distance":0.2585},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","distance":0.2746},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/xai","distance":0.2793}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/deepinfra","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/replicate","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/xai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/replicate","title":"Replicate","summary":"Learn how to add Replicate connectable account integration with Vercel.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model"}],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","distance":0.2273},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/deepinfra","distance":0.2313},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model","distance":0.2321},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/xai","distance":0.2335},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/togetherai","distance":0.2379}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/deepinfra","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/xai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/elevenlabs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/togetherai","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/togetherai","title":"Together AI","summary":"Learn how to add Together AI connectable account integration with Vercel.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model"}],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/xai","distance":0.1712},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","distance":0.1801},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","distance":0.1864},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model","distance":0.2075},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/deepinfra","distance":0.2162}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/xai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/deepinfra","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/elevenlabs","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/xai","title":"xAI","summary":"Learn how to add the xAI native integration with Vercel.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-provider"}],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","distance":0.1637},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","distance":0.1655},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/togetherai","distance":0.1712},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/deepinfra","distance":0.1849},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/elevenlabs","distance":0.2026}],"related":[{"site":"v0","path":"/docs/ai-models","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/togetherai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/deepinfra","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/elevenlabs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/markdown-access","title":"Markdown & Agent Discovery","summary":"Access Vercel documentation as markdown using .md endpoints or the copy button.","outbound":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/make-your-documentation-readable-by-ai-agents","distance":0.1656},{"site":"vercel-kb","path":"/kb/guide/how-to-serve-documentation-for-agents","distance":0.1981},{"site":"vercel-docs","path":"/docs/agent-resources","distance":0.2217},{"site":"vercel-kb","path":"/kb/guide/agent-readability-spec","distance":0.2578},{"site":"vercel-shop","path":"/docs/anatomy/aeo-geo","distance":0.2732}],"related":[{"site":"vercel-kb","path":"/kb/guide/make-your-documentation-readable-by-ai-agents","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-serve-documentation-for-agents","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/agent-readability-spec","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/aeo-geo","via":"neighbor"},{"site":"nextjs","path":"/docs/community/contribution-guide","via":"neighbor"},{"site":"vercel-shop","path":"/docs","via":"neighbor"},{"site":"v0","path":"/docs/text-prompting","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/mdx","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started/extending-with-agents","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/agent","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/skills","title":"Skills","summary":"Install skills to enhance AI coding agents with specialized capabilities for React, Next.js, deployment, and more.","outbound":[{"site":"vercel-docs","path":"/docs/eve"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-skills"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources"},{"site":"vercel-docs","path":"/docs/eve/concepts"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel"}],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/skills","distance":0.1658},{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","distance":0.1677},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-skills","distance":0.1813},{"site":"vercel-docs","path":"/docs/agent-resources","distance":0.2226},{"site":"eve","path":"/docs/skills","distance":0.224}],"related":[{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","via":"neighbor"},{"site":"eve","path":"/docs/skills","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started/extending-with-agents","via":"neighbor"},{"site":"vercel-shop","path":"/docs/skills","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/agent-skills","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/ai-agents","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-skill-uploads","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp","title":"Vercel MCP server","summary":"Vercel MCP has tools available for searching docs, managing teams, projects, and deployments, and querying Web Analytics.","outbound":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel"},{"site":"vercel-docs","path":"/docs/mcp"},{"site":"vercel-kb","path":"/kb/guide/cls-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/mcp-server-chatgpt-connector"}],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","distance":0.1504},{"site":"vercel-docs","path":"/docs/mcp","distance":0.2016},{"site":"v0","path":"/docs/MCP","distance":0.2138},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-mcp-server-with-nuxt","distance":0.2187},{"site":"vercel-kb","path":"/kb/guide/ai-agents","distance":0.2277}],"related":[{"site":"vercel-kb","path":"/kb/guide/cls-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/mcp-server-chatgpt-connector","via":"inbound"},{"site":"v0","path":"/docs/MCP","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-mcp-server-with-nuxt","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-agents","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/adapters/mcp-server","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/mcp-server-with-weather-tool-express","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/mcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools","title":"Tools","summary":"Available tools in Vercel MCP for searching docs, managing teams, projects, deployments, Web Analytics, runtime logs and errors, Agent Runs, design imports, and purchases.","outbound":[{"site":"eve","path":"/docs/guides/deployment/vercel"},{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/agent"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/analytics/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/analytics/web-analytics-api"},{"site":"vercel-docs","path":"/docs/comments"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/sharable-links"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication"},{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/domains"},{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/projects"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp"}],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp"}],"neighbors":[{"site":"vercel-docs","path":"/docs/analytics/web-analytics-api","distance":0.2228},{"site":"vercel-docs","path":"/docs/analytics/using-web-analytics","distance":0.2658},{"site":"vercel-docs","path":"/docs/analytics/accessing-metrics-with-vercel-cli","distance":0.2736},{"site":"vercel-docs","path":"/docs/analytics/quickstart","distance":0.2865},{"site":"vercel-docs","path":"/docs/cli/metrics","distance":0.2893}],"related":[{"site":"vercel-docs","path":"/docs/analytics/using-web-analytics","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/accessing-metrics-with-vercel-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/metrics","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/aggregates-page-views","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin","title":"Vercel Plugin","summary":"Install the Vercel plugin to give supported AI coding tools Vercel context, skills, specialist agents, slash commands, and lightweight session-start activation.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/markdown-access"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel"},{"site":"vercel-kb","path":"/kb/guide/build-a-browser-agent"},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/daily-digest-bot-with-chat-sdk-and-workflow-sdk"},{"site":"vercel-kb","path":"/kb/guide/durable-web-research-agent-with-workflow-sdk"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent"},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot"},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter"},{"site":"vercel-kb","path":"/kb/guide/eve-typefully-social-media-agent"},{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk"},{"site":"vercel-kb","path":"/kb/guide/linear-agent-vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/marketing-team-eve"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-an-astro-app-from-webflow-cloud-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/nuxt-and-vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute"},{"site":"vercel-kb","path":"/kb/guide/real-time-board-nextjs-fastapi"},{"site":"vercel-kb","path":"/kb/guide/real-time-chat-websockets"},{"site":"vercel-kb","path":"/kb/guide/real-time-presence-hono-react"},{"site":"vercel-kb","path":"/kb/guide/run-and-track-deploys-from-slack"},{"site":"vercel-kb","path":"/kb/guide/sandboxed-coding-agent-with-harnessagent"},{"site":"vercel-kb","path":"/kb/guide/triage-form-submissions-with-chat-sdk"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nuxt-imgur-clone"},{"site":"vercel-kb","path":"/kb/guide/vercel-docker-python-apps"}],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","distance":0.2234},{"site":"vercel-docs","path":"/docs/agent-resources","distance":0.2406},{"site":"vercel-docs","path":"/docs/agent/installation","distance":0.2649},{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","distance":0.2664},{"site":"vercel-docs","path":"/docs/agent","distance":0.2708}],"related":[{"site":"vercel-kb","path":"/kb/guide/build-a-browser-agent","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/daily-digest-bot-with-chat-sdk-and-workflow-sdk","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/durable-web-research-agent-with-workflow-sdk","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"inbound"},{"site":"vercel-shop","path":"/docs/getting-started/extending-with-agents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent/installation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/skills","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/markdown-access","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/agent-resources/workflows","title":"CLI Workflows","summary":"End-to-end workflows that show how to compose Vercel CLI commands into complete debugging, deployment, and recovery sessions.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/debug-cache-issues"},{"site":"vercel-docs","path":"/docs/deployments/promote-preview-to-production"},{"site":"vercel-docs","path":"/docs/deployments/rollback-production-deployment"},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain"},{"site":"vercel-docs","path":"/docs/environment-variables/manage-across-environments"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/clean-up-after-rollout"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/roll-out-feature"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/run-ab-test"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/set-up-flags-explorer"},{"site":"vercel-docs","path":"/docs/functions/debug-slow-functions"},{"site":"vercel-docs","path":"/docs/observability/debug-production-errors"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli"},{"site":"vercel-docs","path":"/docs/rolling-releases/rolling-release-deployment"},{"site":"vercel-docs","path":"/docs/routing-middleware/getting-started"},{"site":"vercel-docs","path":"/docs/routing/redirects/manage-redirects-at-scale"},{"site":"vercel-docs","path":"/docs/sandbox/run-commands-in-sandbox"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/getting-started"},{"site":"vercel-docs","path":"/docs/vercel-blob/manage-blob-storage"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/workflows","distance":0.1957},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel","distance":0.2086},{"site":"vercel-kb","path":"/kb/guide/using-vercel-cli-for-custom-workflows","distance":0.2403},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","distance":0.2491},{"site":"workflow","path":"/docs/observability","distance":0.2526}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-vercel-cli-for-custom-workflows","via":"neighbor"},{"site":"workflow","path":"/docs/observability","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/stateful-slack-bots-with-vercel-workflow","via":"neighbor"},{"site":"workflow","path":"/docs/ai","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/python","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","via":"neighbor"},{"site":"workflow","path":"/docs/testing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows/python","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent/installation","title":"Installation","summary":"Let AI automatically install Web Analytics and Speed Insights in your app","outbound":[{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/analytics/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/speed-insights"},{"site":"vercel-docs","path":"/docs/speed-insights/limits-and-pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent"},{"site":"vercel-docs","path":"/docs/agent/pricing"},{"site":"vercel-kb","path":"/kb/guide/vercel-agent"}],"requires":[{"site":"vercel-docs","path":"/docs/agent"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent","distance":0.1764},{"site":"vercel-kb","path":"/kb/guide/vercel-agent","distance":0.1997},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","distance":0.2177},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-agents","distance":0.2376},{"site":"vercel-docs","path":"/docs/agent/pricing","distance":0.249}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-agent","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-agents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/agent-tools","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent/investigation","title":"Investigation","summary":"Let AI investigate your error alerts to help you debug faster","outbound":[{"site":"vercel-docs","path":"/docs/agent/pricing"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent"},{"site":"vercel-docs","path":"/docs/agent/pricing"},{"site":"vercel-docs","path":"/docs/alerts"},{"site":"vercel-docs","path":"/docs/cli/alerts"},{"site":"vercel-kb","path":"/kb/guide/monitor-uptime-for-ai-native-apps-with-vercel-alerts"},{"site":"vercel-kb","path":"/kb/guide/vercel-agent"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-render"}],"requires":[{"site":"vercel-docs","path":"/docs/agent"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent","distance":0.2014},{"site":"vercel-kb","path":"/kb/guide/vercel-agent","distance":0.2283},{"site":"vercel-kb","path":"/kb/guide/monitor-uptime-for-ai-native-apps-with-vercel-alerts","distance":0.23},{"site":"vercel-docs","path":"/docs/agent/pricing","distance":0.2388},{"site":"vercel-docs","path":"/docs/agent/installation","distance":0.2913}],"related":[{"site":"vercel-kb","path":"/kb/guide/monitor-uptime-for-ai-native-apps-with-vercel-alerts","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-agent","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify","via":"inbound"},{"site":"vercel-docs","path":"/docs/agent/installation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/alerts/configure-alerts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent/pr-review/usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent/pr-review","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent/pr-review","title":"Code Review","summary":"Get automatic AI-powered code reviews on your pull requests","outbound":[{"site":"vercel-docs","path":"/docs/agent"},{"site":"vercel-docs","path":"/docs/agent/pr-review/usage"},{"site":"vercel-docs","path":"/docs/agent/pricing"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/sandbox"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent"},{"site":"vercel-docs","path":"/docs/agent/pr-review/usage"},{"site":"vercel-docs","path":"/docs/agent/pricing"},{"site":"vercel-kb","path":"/kb/guide/vercel-agent"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-render"}],"requires":[{"site":"vercel-docs","path":"/docs/agent"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-agent-code-review","distance":0.0643},{"site":"vercel-docs","path":"/docs/agent/pr-review/usage","distance":0.1191},{"site":"vercel-kb","path":"/kb/guide/vercel-agent","distance":0.1889},{"site":"vercel-docs","path":"/docs/agent","distance":0.1931},{"site":"vercel-docs","path":"/docs/agent/pricing","distance":0.2768}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-agent-code-review","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-agent","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify","via":"inbound"},{"site":"vercel-docs","path":"/docs/agent/installation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent/investigation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent/pr-review/usage","title":"Managing Reviews","summary":"Customize which repositories get reviewed and track your review metrics and spending.","outbound":[{"site":"vercel-docs","path":"/docs/agent/pr-review"},{"site":"vercel-docs","path":"/docs/agent/pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent/pr-review"},{"site":"vercel-docs","path":"/docs/agent/pricing"},{"site":"vercel-kb","path":"/kb/guide/vercel-agent-code-review"}],"requires":[{"site":"vercel-docs","path":"/docs/agent"},{"site":"vercel-docs","path":"/docs/agent/pr-review"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-agent-code-review","distance":0.109},{"site":"vercel-docs","path":"/docs/agent/pr-review","distance":0.1191},{"site":"vercel-kb","path":"/kb/guide/vercel-agent","distance":0.1978},{"site":"vercel-docs","path":"/docs/agent","distance":0.2274},{"site":"vercel-docs","path":"/docs/agent/pricing","distance":0.253}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-agent-code-review","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-github-code-review-bot-with-hono-and-redis","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent/installation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent/investigation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent/pricing","title":"Pricing","summary":"Understand Vercel Agent pricing and how to track costs","outbound":[{"site":"vercel-docs","path":"/docs/agent/installation"},{"site":"vercel-docs","path":"/docs/agent/investigation"},{"site":"vercel-docs","path":"/docs/agent/pr-review"},{"site":"vercel-docs","path":"/docs/agent/pr-review/usage"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent"},{"site":"vercel-docs","path":"/docs/agent/investigation"},{"site":"vercel-docs","path":"/docs/agent/pr-review"},{"site":"vercel-docs","path":"/docs/agent/pr-review/usage"},{"site":"vercel-kb","path":"/kb/guide/vercel-agent"},{"site":"vercel-kb","path":"/kb/guide/vercel-agent-code-review"}],"requires":[{"site":"vercel-docs","path":"/docs/agent"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-agent","distance":0.138},{"site":"vercel-docs","path":"/docs/agent","distance":0.1727},{"site":"vercel-docs","path":"/docs/pricing","distance":0.2209},{"site":"vercel-docs","path":"/docs/eve/pricing","distance":0.2272},{"site":"vercel-docs","path":"/docs/agent/investigation","distance":0.2388}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-agent-code-review","via":"inbound"},{"site":"v0","path":"/docs/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway","title":"AI Gateway","summary":"AI Gateway provides a unified API to access hundreds of AI models through a single endpoint, with text, image, and video generation, embeddings, and built-in budgets, usage monitoring, and fallbacks.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/byok"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/app-attribution"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/web-search"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/observability"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/usage"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/disallow-prompt-training"}],"inbound":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway"},{"site":"eve","path":"/docs/agent-config"},{"site":"eve","path":"/docs/guides/deployment/overview"},{"site":"eve","path":"/docs/guides/deployment/vercel"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/langchain"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/langfuse"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/litellm"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/llamaindex"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/mastra"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/pydantic-ai"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/wordpress"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/routing-rules"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/ai-gateway"},{"site":"vercel-docs","path":"/docs/eve"},{"site":"vercel-docs","path":"/docs/eve/concepts"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/products"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/anthropic-sdk"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/langchain"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/openai-sdk"},{"site":"vercel-kb","path":"/kb/guide/agent-approval-workflow-stack-guide"},{"site":"vercel-kb","path":"/kb/guide/ai-evaluation-dashboard-architecture-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/build-ai-agent-weather-api"},{"site":"vercel-kb","path":"/kb/guide/build-an-agent-with-vercel-and-flue"},{"site":"vercel-kb","path":"/kb/guide/building-ai-chat-app-with-rag-and-citations-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/building-community-moderation-agents-using-ai-sdk"},{"site":"vercel-kb","path":"/kb/guide/cost-aware-model-routing-with-ai-gateway"},{"site":"vercel-kb","path":"/kb/guide/daily-digest-bot-with-chat-sdk-and-workflow-sdk"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent"},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot"},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter"},{"site":"vercel-kb","path":"/kb/guide/eve-typefully-social-media-agent"},{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/how-i-use-opencode-with-vercel-ai-gateway-to-build-features-fast"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-your-own-ai-model-router"},{"site":"vercel-kb","path":"/kb/guide/how-to-execute-ai-generated-code-safely"},{"site":"vercel-kb","path":"/kb/guide/how-to-run-a-multi-step-research-agent-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/linear-agent-vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/marketing-team-eve"},{"site":"vercel-kb","path":"/kb/guide/run-ai-prompts-in-your-github-actions-with-the-vercel-ai-action"},{"site":"vercel-kb","path":"/kb/guide/running-ai-generated-code-sandbox"},{"site":"vercel-kb","path":"/kb/guide/running-openclaw-in-vercel-sandbox"},{"site":"vercel-kb","path":"/kb/guide/running-opencode-securely-with-the-vercel-sandbox"},{"site":"vercel-kb","path":"/kb/guide/sandboxed-coding-agent-with-harnessagent"},{"site":"vercel-kb","path":"/kb/guide/slack-bot-vercel-blob"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-render"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis","distance":0.1704},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","distance":0.1819},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","distance":0.1938},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions","distance":0.1989},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","distance":0.2112}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway","via":"inbound"},{"site":"eve","path":"/docs/agent-config","via":"inbound"},{"site":"eve","path":"/docs/guides/deployment/overview","via":"inbound"},{"site":"eve","path":"/docs/guides/deployment/vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/agent-approval-workflow-stack-guide","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ai-evaluation-dashboard-architecture-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/build-ai-agent-weather-api","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/building-ai-chat-app-with-rag-and-citations-on-vercel","via":"inbound"},{"site":"ai-sdk","path":"/providers/community-providers/cloudflare-ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok","title":"Authentication & BYOK","summary":"Learn how to authenticate with the AI Gateway and configure your own provider keys.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/api-keys"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/byok"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/oidc"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/budgets"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/api-keys"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/grok-build"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openai-codex"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/metrics"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/model-filtering"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/uptime"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/trace-drains"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk-python"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/rest-api"},{"site":"vercel-docs","path":"/docs/cli/ai-gateway"},{"site":"vercel-kb","path":"/kb/guide/ai-evaluation-dashboard-architecture-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-your-own-ai-model-router"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/byok","distance":0.1308},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/oidc","distance":0.1972},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/api-keys","distance":0.2191},{"site":"vercel-docs","path":"/docs/ai-gateway","distance":0.2205},{"site":"vercel-kb","path":"/kb/guide/how-to-build-your-own-ai-model-router","distance":0.2583}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-evaluation-dashboard-architecture-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-your-own-ai-model-router","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/complete-guide-authentication-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/oidc","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk-python","via":"neighbor"},{"site":"vercel-docs","path":"/docs/kms/concepts/authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/api-keys","title":"API Keys","summary":"Create, view, and delete AI Gateway API keys from the dashboard, CLI, or API.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/oidc"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/budgets"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/wordpress"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/budgets"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/custom-reporting"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python"},{"site":"vercel-docs","path":"/docs/cli/ai-gateway"},{"site":"vercel-kb","path":"/kb/guide/ai-evaluation-dashboard-architecture-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/cost-aware-model-routing-with-ai-gateway"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/budgets","distance":0.2077},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok","distance":0.2191},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/byok","distance":0.2972},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend","distance":0.305},{"site":"vercel-docs","path":"/docs/rest-api/kms/revoke-a-signing-key","distance":0.307}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-evaluation-dashboard-architecture-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/cost-aware-model-routing-with-ai-gateway","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/byok","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/revoke-a-signing-key","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-an-sdk-key","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/delete-an-sdk-key","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/byok","title":"BYOK","summary":"Learn how to configure your own provider keys with the AI Gateway.","outbound":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/budgets"},{"site":"vercel-docs","path":"/docs/ai-gateway/pricing"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/regional-inference"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/google"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/budgets"},{"site":"vercel-docs","path":"/docs/ai-gateway/pricing"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/disallow-prompt-training"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/model-allowlist"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/provider-allowlist"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/regional-inference"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/zdr"},{"site":"vercel-kb","path":"/kb/guide/how-i-use-opencode-with-vercel-ai-gateway-to-build-features-fast"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-your-own-ai-model-router"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok","distance":0.1308},{"site":"vercel-kb","path":"/kb/guide/how-to-build-your-own-ai-model-router","distance":0.2312},{"site":"vercel-docs","path":"/docs/ai-gateway","distance":0.2389},{"site":"vercel-docs","path":"/docs/ai-gateway/pricing","distance":0.2416},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/advanced","distance":0.244}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-i-use-opencode-with-vercel-ai-gateway-to-build-features-fast","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-your-own-ai-model-router","via":"inbound"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/advanced","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/zdr","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/advanced","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/disallow-prompt-training","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/oidc","title":"OIDC","summary":"Authenticate AI Gateway requests with Vercel OIDC tokens, with no API key to manage.","outbound":[{"site":"vercel-docs","path":"/docs/oidc"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/api-keys"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/budgets"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk-python"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok"}],"neighbors":[{"site":"vercel-docs","path":"/docs/oidc","distance":0.183},{"site":"vercel-docs","path":"/docs/oidc/api","distance":0.1956},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok","distance":0.1972},{"site":"vercel-docs","path":"/docs/rest-api/projects/generate-a-project-oidc-token","distance":0.2536},{"site":"vercel-docs","path":"/docs/sandbox/concepts/authentication","distance":0.255}],"related":[{"site":"vercel-kb","path":"/kb/guide/complete-guide-authentication-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/oidc/api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/generate-a-project-oidc-token","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/kms/concepts/authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/oidc/azure","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms","title":"Chat Platforms","summary":"Configure AI chat platforms to use the AI Gateway for unified model access and spend monitoring.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/chatbox"},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/librechat"},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/open-webui"},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/openclaw"}],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/librechat","distance":0.1565},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/chatbox","distance":0.1839},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/openclaw","distance":0.1982},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openclaw","distance":0.2165},{"site":"vercel-docs","path":"/docs/ai-gateway","distance":0.237}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openclaw","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/chatbox","title":"Chatbox","summary":"Use Chatbox with the AI Gateway.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/observability"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/librechat","distance":0.17},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms","distance":0.1839},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/blackbox","distance":0.1951},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/openclaw","distance":0.2565},{"site":"vercel-docs","path":"/docs/ai-gateway","distance":0.2735}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/librechat","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/blackbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/openclaw","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/open-webui","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openclaw","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/librechat","title":"LibreChat","summary":"Use LibreChat with the AI Gateway.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/observability"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms","distance":0.1565},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/chatbox","distance":0.17},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/openclaw","distance":0.2526},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openclaw","distance":0.2718},{"site":"vercel-docs","path":"/docs/ai-gateway","distance":0.2745}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/chatbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/openclaw","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openclaw","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/open-webui","title":"Open WebUI","summary":"Use Open WebUI with the AI Gateway.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway","distance":0.2646},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/opencode","distance":0.265},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","distance":0.2664},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms","distance":0.2795},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/openclaw","distance":0.2917}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/opencode","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/librechat","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/openclaw","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/openclaw","title":"OpenClaw \\(Clawdbot\\)","summary":"Use OpenClaw \\(formerly Clawdbot\\) with AI Gateway.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/observability"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openclaw","distance":0.0974},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms","distance":0.1982},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/librechat","distance":0.2526},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/chatbox","distance":0.2565},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/blackbox","distance":0.2713}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openclaw","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/running-openclaw-in-vercel-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/librechat","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/chatbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/blackbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/cline","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents","title":"Coding Agents","summary":"Configure popular AI coding agents to use the AI Gateway for unified model access and spend monitoring.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/blackbox"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/claude-code"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/cline"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/conductor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/crush"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/cursor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/grok-build"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/hermes"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/kilo-code"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openai-codex"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openclaw"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/opencode"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/pi"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/roo-code"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/superset"},{"site":"vercel-docs","path":"/docs/cli/ai-gateway"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/cli/ai-gateway"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/claude-code","distance":0.1766},{"site":"vercel-docs","path":"/docs/cli/ai-gateway","distance":0.1789},{"site":"vercel-kb","path":"/kb/guide/how-i-use-opencode-with-vercel-ai-gateway-to-build-features-fast","distance":0.1959},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openclaw","distance":0.2103},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/opencode","distance":0.2191}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-i-use-opencode-with-vercel-ai-gateway-to-build-features-fast","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-an-agent-with-vercel-and-flue","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/blackbox","title":"Blackbox AI","summary":"Use the Blackbox AI CLI with the AI Gateway.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/observability"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/chatbox","distance":0.1951},{"site":"vercel-docs","path":"/docs/ai-gateway","distance":0.2618},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/opencode","distance":0.2679},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/openclaw","distance":0.2713},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/cline","distance":0.2862}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/chatbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/opencode","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/openclaw","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/cline","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/roo-code","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/claude-code","title":"Claude Code","summary":"Use Claude Code and the Claude Agent SDK with AI Gateway.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/fast-mode"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api"},{"site":"vercel-docs","path":"/docs/cli/ai-gateway"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/fast-mode"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api"},{"site":"vercel-docs","path":"/docs/cli/ai-gateway"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api","distance":0.1444},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents","distance":0.1766},{"site":"vercel-docs","path":"/docs/cli/ai-gateway","distance":0.2215},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agents-chat-sdk","distance":0.2403},{"site":"ai-sdk","path":"/providers/community-providers/claude-code","distance":0.2537}],"related":[{"site":"vercel-kb","path":"/kb/guide/claude-managed-agents-chat-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/claude-code","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/claude-4","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-an-agent-with-vercel-and-flue","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-vercel-sandbox-claude-agent-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-i-use-opencode-with-vercel-ai-gateway-to-build-features-fast","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/claude-code","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openclaw","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/opencode","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/cline","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/cline","title":"Cline","summary":"Use Cline with the AI Gateway.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/observability"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"},{"site":"vercel-docs","path":"/docs/cli/ai-gateway"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openclaw","distance":0.2357},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents","distance":0.2638},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/openclaw","distance":0.272},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/opencode","distance":0.2811},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/claude-code","distance":0.2849}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openclaw","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/openclaw","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/opencode","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/claude-code","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/blackbox","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/conductor","title":"Conductor","summary":"Use Conductor with the AI Gateway.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api"},{"site":"vercel-docs","path":"/docs/cli/ai-gateway"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/opencode","distance":0.2848},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/claude-code","distance":0.2873},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents","distance":0.2896},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/cline","distance":0.3139},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/superset","distance":0.3203}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/opencode","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/claude-code","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/cline","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/superset","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/blackbox","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/crush","title":"Crush","summary":"Use Crush with the AI Gateway.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/observability"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/openclaw","distance":0.2753},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openclaw","distance":0.2984},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/blackbox","distance":0.3269},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/librechat","distance":0.3287},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/cline","distance":0.3311}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/openclaw","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openclaw","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/blackbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/librechat","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/cline","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/cursor","title":"Cursor","summary":"Learn about cursor on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/budgets"},{"site":"vercel-docs","path":"/docs/cli/ai-gateway"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"},{"site":"vercel-docs","path":"/docs/cli/ai-gateway"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openclaw","distance":0.2801},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents","distance":0.2887},{"site":"vercel-docs","path":"/docs/cli/ai-gateway","distance":0.2935},{"site":"vercel-docs","path":"/docs/ai-gateway","distance":0.2941},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/opencode","distance":0.3096}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openclaw","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/opencode","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/librechat","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/hermes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/grok-build","title":"Grok Build","summary":"Use Grok Build with the AI Gateway.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok"},{"site":"vercel-docs","path":"/docs/cli/ai-gateway"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/groq","distance":0.2761},{"site":"vercel-docs","path":"/docs/ai-gateway","distance":0.3188},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model","distance":0.3204},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents","distance":0.3224},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openclaw","distance":0.3294}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/grok-build","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/groq","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openclaw","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/opencode","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/roo-code","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/hermes","title":"Hermes","summary":"Use the Hermes agent with the AI Gateway.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/budgets"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/observability"},{"site":"vercel-docs","path":"/docs/cli/ai-gateway"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"},{"site":"vercel-docs","path":"/docs/cli/ai-gateway"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/hermes"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"}],"neighbors":[{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/hermes","distance":0.1767},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents","distance":0.2623},{"site":"vercel-docs","path":"/docs/ai-gateway","distance":0.2742},{"site":"vercel-docs","path":"/docs/cli/ai-gateway","distance":0.2983},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/kilo-code","distance":0.3154}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-i-use-opencode-with-vercel-ai-gateway-to-build-features-fast","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-your-own-ai-model-router","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/hermes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/kilo-code","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/opencode","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/cursor","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/kilo-code","title":"Kilo Code","summary":"Learn about kilo code on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/budgets"},{"site":"vercel-docs","path":"/docs/cli/ai-gateway"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"},{"site":"vercel-docs","path":"/docs/cli/ai-gateway"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/opencode","distance":0.1855},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents","distance":0.2236},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/roo-code","distance":0.2477},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openclaw","distance":0.2671},{"site":"vercel-docs","path":"/docs/ai-gateway","distance":0.2695}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/opencode","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/roo-code","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openclaw","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/pi","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/pydantic-ai","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openai-codex","title":"OpenAI Codex","summary":"Use OpenAI Codex CLI with the AI Gateway.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/websockets"},{"site":"vercel-docs","path":"/docs/cli/ai-gateway"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"},{"site":"vercel-docs","path":"/docs/cli/ai-gateway"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/ai-gateway","distance":0.2365},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/opencode","distance":0.2463},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents","distance":0.258},{"site":"ai-sdk","path":"/providers/community-providers/codex-cli","distance":0.266},{"site":"ai-sdk","path":"/providers/community-providers/codex-app-server","distance":0.2843}],"related":[{"site":"ai-sdk","path":"/providers/community-providers/codex-cli","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/codex-app-server","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/codex","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-i-use-opencode-with-vercel-ai-gateway-to-build-features-fast","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/opencode","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/claude-code","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/kilo-code","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openclaw","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/superset","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openclaw","title":"OpenClaw","summary":"Learn about openclaw on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/budgets"},{"site":"vercel-docs","path":"/docs/cli/ai-gateway"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"},{"site":"vercel-docs","path":"/docs/cli/ai-gateway"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/openclaw","distance":0.0974},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents","distance":0.2103},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms","distance":0.2165},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/opencode","distance":0.2195},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/cline","distance":0.2357}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/openclaw","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/opencode","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/cline","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/kilo-code","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/opencode","title":"OpenCode","summary":"Use OpenCode with the AI Gateway.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/observability"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"},{"site":"vercel-docs","path":"/docs/cli/ai-gateway"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/kilo-code","distance":0.1855},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/roo-code","distance":0.195},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents","distance":0.2191},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openclaw","distance":0.2195},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","distance":0.2236}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-i-use-opencode-with-vercel-ai-gateway-to-build-features-fast","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/running-opencode-securely-with-the-vercel-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/kilo-code","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/roo-code","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openclaw","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openai-codex","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/pi","title":"Pi","summary":"Learn about pi on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/budgets"},{"site":"vercel-docs","path":"/docs/cli/ai-gateway"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"},{"site":"vercel-docs","path":"/docs/cli/ai-gateway"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/pydantic-ai","distance":0.2805},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/kilo-code","distance":0.2812},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents","distance":0.296},{"site":"vercel-docs","path":"/docs/ai-gateway","distance":0.3057},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/opencode","distance":0.3126}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/pydantic-ai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/kilo-code","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/opencode","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/blackbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openclaw","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/roo-code","title":"Roo Code","summary":"Use Roo Code with the AI Gateway.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/observability"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/opencode","distance":0.195},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/kilo-code","distance":0.2477},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/blackbox","distance":0.2868},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents","distance":0.2901},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/cline","distance":0.2928}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/opencode","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/kilo-code","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/blackbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/cline","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/superset","title":"Superset","summary":"Use Superset with the AI Gateway.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/observability"},{"site":"vercel-docs","path":"/docs/cli/ai-gateway"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents","distance":0.2665},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/opencode","distance":0.296},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/librechat","distance":0.3055},{"site":"vercel-docs","path":"/docs/ai-gateway","distance":0.3068},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/claude-code","distance":0.3104}],"related":[{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/opencode","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/librechat","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/claude-code","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/conductor","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem","title":"Ecosystem","summary":"Explore community framework integrations and ecosystem features for the AI Gateway.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/app-attribution"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/langchain"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/langfuse"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/litellm"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/llamaindex"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/mastra"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/pydantic-ai"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/stripe-billing"}],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations","distance":0.1609},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/langchain","distance":0.2193},{"site":"vercel-docs","path":"/docs/ai-gateway","distance":0.2304},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","distance":0.2496},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms","distance":0.2521}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/app-attribution","title":"App Attribution","summary":"Attribute your requests so Vercel can identify and feature your app on AI Gateway pages","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem"},{"site":"vercel-docs","path":"/docs/ai-gateway/leaderboards"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway","distance":0.3034},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","distance":0.3056},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem","distance":0.3095},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","distance":0.323},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/rest-api","distance":0.3237}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/rest-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/advanced","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations","title":"Framework Integrations","summary":"Explore available community framework integrations with Vercel AI Gateway","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/langchain"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/langfuse"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/litellm"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/llamaindex"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/mastra"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/pydantic-ai"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/wordpress"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/observability"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions"},{"site":"vercel-docs","path":"/docs/ai-sdk"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem","distance":0.1609},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","distance":0.2253},{"site":"vercel-docs","path":"/docs/ai-gateway","distance":0.2263},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","distance":0.2325},{"site":"vercel-docs","path":"/docs/integrations","distance":0.2395}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/xai","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/langchain","title":"LangChain","summary":"Learn how to integrate Vercel AI Gateway with LangChain to access multiple AI models through a unified interface","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem"}],"neighbors":[{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/langchain","distance":0.1448},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/langfuse","distance":0.1819},{"site":"vercel-kb","path":"/kb/guide/nextjs-langchain-vercel-ai","distance":0.1833},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem","distance":0.2193},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/litellm","distance":0.2625}],"related":[{"site":"vercel-kb","path":"/kb/guide/nextjs-langchain-vercel-ai","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/chained-openai-llm-calls-vercel-inngest","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/langchain","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/langdb","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/langfuse","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/litellm","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/opencode","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/langfuse","title":"LangFuse","summary":"Learn how to integrate Vercel AI Gateway with LangFuse to access multiple AI models through a unified interface","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/langchain","distance":0.1819},{"site":"ai-sdk","path":"/providers/observability/langfuse","distance":0.2424},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/litellm","distance":0.2739},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","distance":0.2849},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem","distance":0.2884}],"related":[{"site":"ai-sdk","path":"/providers/observability/langfuse","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/nextjs-langchain-vercel-ai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/langchain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/litellm","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/llamaindex","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/langchain","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/litellm","title":"LiteLLM","summary":"Learn how to integrate Vercel AI Gateway with LiteLLM to access multiple AI models through a unified interface","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/llamaindex","distance":0.1979},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/langchain","distance":0.2625},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/lmnt","distance":0.2711},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/langfuse","distance":0.2739},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem","distance":0.275}],"related":[{"site":"vercel-kb","path":"/kb/guide/what-is-a-large-language-model","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/chained-openai-llm-calls-vercel-inngest","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/llamaindex","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/langchain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/lmnt","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/langfuse","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/llamaindex","title":"LlamaIndex","summary":"Learn how to integrate Vercel AI Gateway with LlamaIndex to access multiple AI models through a unified interface","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/litellm","distance":0.1979},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem","distance":0.2596},{"site":"ai-sdk","path":"/providers/community-providers/llamagate","distance":0.2803},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/langchain","distance":0.283},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/langfuse","distance":0.2897}],"related":[{"site":"ai-sdk","path":"/providers/community-providers/llamagate","via":"neighbor"},{"site":"ai-sdk","path":"/providers/adapters/llamaindex","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-a-large-language-model","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/litellm","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/langchain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/langfuse","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/librechat","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/mastra","title":"Mastra","summary":"Learn how to integrate Vercel AI Gateway with Mastra to access multiple AI models through a unified interface","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-sdk"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem","distance":0.322},{"site":"vercel-docs","path":"/docs/ai-gateway","distance":0.3247},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model","distance":0.3403},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/pydantic-ai","distance":0.3411},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/langchain","distance":0.3497}],"related":[{"site":"v0","path":"/docs/ai-models","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/pydantic-ai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/langchain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/llamaindex","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/pydantic-ai","title":"Pydantic AI","summary":"Learn how to integrate Vercel AI Gateway with Pydantic AI to access multiple AI models through a unified interface","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk-python","distance":0.199},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","distance":0.2132},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","distance":0.2202},{"site":"vercel-docs","path":"/docs/ai-gateway","distance":0.2449},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model","distance":0.2523}],"related":[{"site":"v0","path":"/docs/ai-models","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk-python","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-agents","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/wordpress","title":"WordPress","summary":"Learn how to integrate Vercel AI Gateway with WordPress to let your plugins access multiple AI models","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/api-keys"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway","distance":0.2886},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation","distance":0.2985},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations","distance":0.2997},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","distance":0.3003},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model","distance":0.3089}],"related":[{"site":"vercel-kb","path":"/kb/guide/wordpress-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-provider","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/stripe-billing","title":"Stripe Billing","summary":"Add usage-based billing to your AI application with Stripe and AI Gateway.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/pricing","distance":0.2871},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem","distance":0.291},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/usage","distance":0.3029},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/service-tiers","distance":0.3162},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend","distance":0.3397}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-your-own-ai-model-router","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/service-tiers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started","title":"Getting Started","summary":"Get started with AI Gateway by generating text, images, video, speech, or transcriptions, or by building realtime voice agents.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/image"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/realtime"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/speech"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/text"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/video"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/workflows"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/speech","distance":0.181},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/text","distance":0.1893},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-generation","distance":0.1912},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-to-speech","distance":0.2155},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation","distance":0.2238}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-to-speech","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/text-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/image","title":"Image","summary":"Generate images from text prompts using AI Gateway.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/openai"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk","distance":0.124},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/openai","distance":0.1538},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation","distance":0.1808},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/video","distance":0.2169},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/image-generation","distance":0.2201}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/google-gemini-image-generation","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/image-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/video","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/image-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/text","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/images","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/image-to-video","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/realtime","title":"Realtime","summary":"Build a low-latency, speech-to-speech voice agent with AI Gateway and the AI SDK.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/realtime"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/speech"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/realtime"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/realtime","distance":0.0854},{"site":"ai-sdk","path":"/docs/ai-sdk-core/realtime","distance":0.214},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/speech","distance":0.2413},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-on-demand-voice-agent-with-vercel-sandbox","distance":0.2564},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/text","distance":0.2668}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/realtime","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-on-demand-voice-agent-with-vercel-sandbox","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-realtime","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-ai-agent-weather-api","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/multi-modal-chatbot","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/speech","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/text","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-to-speech","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/speech","title":"Speech","summary":"Generate speech from text and transcribe audio back to text with AI Gateway.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/realtime"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/speech-to-text"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-to-speech"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started","distance":0.181},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-to-speech","distance":0.1913},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/text","distance":0.1922},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/speech-to-text","distance":0.2397},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/realtime","distance":0.2413}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/realtime","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/text","title":"Text","summary":"Generate and stream text responses using AI Gateway.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-generation"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/text-generation","distance":0.1403},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-generation","distance":0.1493},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/text-generation","distance":0.1754},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","distance":0.1872},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started","distance":0.1893}],"related":[{"site":"ai-sdk","path":"/cookbook/guides/openai-responses","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/text-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/text-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/speech","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/video","title":"Video / Async Video","summary":"Generate videos from text prompts, images, or video input using AI Gateway, either over a single request or as a background job.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/image-to-video"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/motion-control"},{"site":"vercel-docs","path":"/docs/vercel-blob"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","distance":0.1537},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/motion-control","distance":0.1817},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation","distance":0.1909},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/image-to-video","distance":0.2012},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","distance":0.2085}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/image","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/text","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/openai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/video-editing","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/leaderboards","title":"Leaderboards","summary":"See which AI models, labs, apps, and providers are most used on AI Gateway, share a chart as an image, and download the underlying data.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/app-attribution"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"},{"site":"vercel-docs","path":"/docs/cli/ai-gateway"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/logs","distance":0.309},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/rest-api","distance":0.3184},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/uptime","distance":0.3229},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/metrics","distance":0.3257},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/observability","distance":0.3341}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/logs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/rest-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/uptime","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/metrics","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/observability","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities","title":"Modalities","summary":"The inputs and outputs AI Gateway models work with: text, image, and video generation, speech to text, text to speech, realtime voice, embeddings, and reranking, all through a unified API.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/embeddings"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/realtime"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/reranking"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/speech-to-text"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-generation"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-to-speech"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance"}],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-generation","distance":0.1808},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","distance":0.2139},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis","distance":0.2223},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/image-generation","distance":0.2235},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","distance":0.2396}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/image-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/text","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/embeddings","title":"Embeddings","summary":"Generate vector embeddings for semantic search, similarity matching, and retrieval-augmented generation \\(RAG\\) through Vercel AI Gateway.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/embeddings"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/embeddings"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/embeddings","distance":0.1608},{"site":"vercel-docs","path":"/docs/ai-gateway","distance":0.239},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation","distance":0.2601},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","distance":0.2678},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities","distance":0.2862}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation","title":"Image Generation","summary":"Generate and edit images using AI models through Vercel AI Gateway with support for multiple providers and modalities.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/openai"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/image"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/image","distance":0.1808},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/image-generation","distance":0.197},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/openai","distance":0.2115},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started","distance":0.2238},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities","distance":0.2455}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/image","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/image-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/embeddings","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk","title":"Using AI SDK","summary":"Generate and edit images using AI models through Vercel AI Gateway with the AI SDK.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/image-generation"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/image"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/openai","distance":0.0933},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/image","distance":0.124},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/image-generation","distance":0.2049},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","distance":0.2367},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/video","distance":0.2388}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/openai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/image","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/google-gemini-image-generation","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/azure","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/image-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/openai","title":"Using Chat Completions API","summary":"Generate and edit images using AI models through Vercel AI Gateway with the Chat Completions API.","outbound":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/black-forest-labs"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google-vertex"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/image"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/image-generation"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk","distance":0.0933},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/image","distance":0.1538},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/image-generation","distance":0.1622},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation","distance":0.2115},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/video","distance":0.2286}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/image","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/image-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/video","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/text","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/realtime","title":"Realtime","summary":"Build low-latency, speech-to-speech voice agents with the AI SDK through Vercel AI Gateway.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/realtime"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/speech-to-text"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-to-speech"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/realtime"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/speech-to-text"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-to-speech"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/realtime","distance":0.0854},{"site":"ai-sdk","path":"/docs/ai-sdk-core/realtime","distance":0.1888},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-realtime","distance":0.2393},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/speech-to-text","distance":0.2474},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-to-speech","distance":0.2705}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/realtime","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-realtime","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-on-demand-voice-agent-with-vercel-sandbox","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/speech","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/text","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/reranking","title":"Reranking","summary":"Rerank documents by relevance to a search query for improved retrieval-augmented generation \\(RAG\\) pipelines through Vercel AI Gateway.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/cohere-rerank"},{"site":"vercel-kb","path":"/kb/guide/building-ai-chat-app-with-rag-and-citations-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/rag-chatbot-production-architecture-on-vercel"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/cohere-rerank","distance":0.115},{"site":"ai-sdk","path":"/docs/ai-sdk-core/reranking","distance":0.195},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/rerank","distance":0.2494},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cohere","distance":0.3138},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","distance":0.3371}],"related":[{"site":"vercel-kb","path":"/kb/guide/building-ai-chat-app-with-rag-and-citations-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/rag-chatbot-production-architecture-on-vercel","via":"inbound"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/reranking","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/rerank","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/cohere-rerank","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cohere","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/voyage","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/routing-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/embeddings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-filtering-and-ordering","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/advanced","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/speech-to-text","title":"Speech to Text","summary":"Transcribe audio files into text with transcription models through Vercel AI Gateway.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/realtime"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-to-speech"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/speech"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/realtime"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-to-speech"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-to-speech","distance":0.1782},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","distance":0.2163},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/speech","distance":0.2397},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/realtime","distance":0.2474},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs","distance":0.2675}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cartesia","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-transcribe","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/groq","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/speech","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/text","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-generation","title":"Text Generation","summary":"Generate and stream text from hundreds of models through AI Gateway, with tool calling and structured output.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/text"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/text","distance":0.1493},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/text-generation","distance":0.1613},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/text-generation","distance":0.1646},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities","distance":0.1808},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started","distance":0.1912}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/text-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/text-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-to-speech","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-to-speech","title":"Text to Speech","summary":"Generate spoken audio from text with speech models through Vercel AI Gateway.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/realtime"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/speech-to-text"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/speech"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/realtime"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/speech-to-text"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/speech-to-text","distance":0.1782},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/speech","distance":0.1913},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-generation","distance":0.1987},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started","distance":0.2155},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/text-generation","distance":0.2262}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-speech","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/speech","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/text-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/text","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation","title":"Video Generation","summary":"Generate videos from text prompts, images, or video input using AI models through Vercel AI Gateway.","outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-video"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/video"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/image-to-video"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/motion-control"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/reference-to-video"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/text-to-video"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/video-editing"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/video-extension"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/video"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/video","distance":0.1909},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","distance":0.2508},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","distance":0.2568},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/text-to-video","distance":0.2888},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-video","distance":0.2917}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/bytedance","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/black-forest-labs","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/klingai","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/image-to-video","title":"Image-to-Video","summary":"Animate static images into videos using Google Veo, KlingAI, Wan, Grok Imagine Video, or ByteDance Seedance through AI Gateway.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/reference-to-video"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/video-extension"},{"site":"vercel-docs","path":"/docs/vercel-blob"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/video"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/reference-to-video"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/text-to-video","distance":0.19},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/video","distance":0.2012},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/motion-control","distance":0.2053},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/klingai","distance":0.2084},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/reference-to-video","distance":0.2093}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/klingai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/alibaba","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/bytedance","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/text-to-video","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/video","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/motion-control","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/image","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/image-generation","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/motion-control","title":"Motion Control","summary":"Transfer motion from a reference video to a character image using KlingAI through AI Gateway.","outbound":[{"site":"vercel-docs","path":"/docs/vercel-blob"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/video"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/video","distance":0.1817},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/image-to-video","distance":0.2053},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/klingai","distance":0.2256},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","distance":0.2734},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","distance":0.3077}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/klingai","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/video","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/image-to-video","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/reference-to-video","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/text-to-video","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/video-editing","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/reference-to-video","title":"Reference-to-Video","summary":"Generate videos featuring characters from reference images or videos using Google Veo, KlingAI, Wan, Seedance, or Grok Imagine Video through AI Gateway.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/image-to-video"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/video-editing"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/video-extension"},{"site":"vercel-docs","path":"/docs/vercel-blob"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/image-to-video"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/text-to-video","distance":0.1423},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/image-to-video","distance":0.2093},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/bytedance","distance":0.2314},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/video","distance":0.2526},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","distance":0.2553}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/bytedance","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/alibaba","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/text-to-video","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/klingai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/black-forest-labs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/video","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/motion-control","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/text-to-video","title":"Text-to-Video","summary":"Generate videos from text prompts using Google Veo, KlingAI, Wan, Grok Imagine Video, or ByteDance Seedance through AI Gateway.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/reference-to-video","distance":0.1423},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/image-to-video","distance":0.19},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/bytedance","distance":0.1922},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","distance":0.2032},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","distance":0.2385}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/bytedance","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/alibaba","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/klingai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/reference-to-video","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/black-forest-labs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/image-to-video","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/video","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/video-editing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/motion-control","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/video-editing","title":"Video Editing","summary":"Edit existing videos using text prompts with Grok Imagine Video through AI Gateway.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/reference-to-video"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/video-extension"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/video-extension","distance":0.1934},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/video","distance":0.2479},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","distance":0.2666},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/text-to-video","distance":0.2866},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation","distance":0.3122}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/video-extension","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/video","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/text-to-video","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/motion-control","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/video-extension","title":"Video Extension","summary":"Extend existing videos from their last frame with Grok Imagine Video through AI Gateway.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/video-editing"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/image-to-video"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/reference-to-video"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/video-editing","distance":0.1934},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/video","distance":0.3087},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","distance":0.3205},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/text-to-video","distance":0.3312},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","distance":0.3468}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/bytedance","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/black-forest-labs","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/klingai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-video","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/video","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/text-to-video","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/reference-to-video","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/image-to-video","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/motion-control","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","title":"Models & Providers","summary":"Work with models and providers in AI Gateway: provider routing and fallbacks, filtering, timeouts, caching, service tiers, uptime and metrics, plus capabilities like reasoning, web search, and routing rules.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management"},{"site":"nextjs","path":"/docs/app/guides/instrumentation"},{"site":"vercel-docs","path":"/docs/ai-gateway/leaderboards"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/automatic-caching"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/metrics"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/model-fallbacks"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-filtering-and-ordering"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-timeouts"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/routing-rules"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/service-tiers"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/uptime"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/web-search"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-generation"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/regional-inference"},{"site":"vercel-docs","path":"/docs/cli/ai-gateway"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/langchain"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-run-a-multi-step-research-agent-on-vercel"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","distance":0.1152},{"site":"vercel-docs","path":"/docs/ai-gateway","distance":0.1819},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-filtering-and-ordering","distance":0.1902},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis","distance":0.2032},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/rest-api","distance":0.2061}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-run-a-multi-step-research-agent-on-vercel","via":"inbound"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/cloudflare-ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/advanced","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation","via":"inbound"},{"site":"vercel-docs","path":"/docs/cli/ai-gateway","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/automatic-caching","title":"Automatic Caching","summary":"Enable automatic prompt caching across providers with AI Gateway to reduce costs and latency.","outbound":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/advanced"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/advanced"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/advanced"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/advanced"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/zdr"},{"site":"vercel-kb","path":"/kb/guide/cost-aware-model-routing-with-ai-gateway"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/advanced","distance":0.2198},{"site":"ai-sdk","path":"/cookbook/node/dynamic-prompt-caching","distance":0.2349},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","distance":0.2949},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api","distance":0.3011},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/advanced","distance":0.319}],"related":[{"site":"vercel-kb","path":"/kb/guide/cost-aware-model-routing-with-ai-gateway","via":"inbound"},{"site":"ai-sdk","path":"/cookbook/node/dynamic-prompt-caching","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/set-cache-control-headers","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/caching","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/local-caching-middleware","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/advanced","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/advanced","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/reasoning","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/fast-mode","title":"Fast Mode","summary":"Request the faster serving path for supported models through AI Gateway using the \\`speed\\` option or the fast model slug, with automatic fallback to the base model.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/claude-code"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/claude-code"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/service-tiers","distance":0.2819},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","distance":0.2884},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","distance":0.3078},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/claude-code","distance":0.3244},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-filtering-and-ordering","distance":0.3245}],"related":[{"site":"vercel-kb","path":"/kb/guide/cost-aware-model-routing-with-ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/service-tiers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-filtering-and-ordering","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/rest-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/model-fallbacks","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/metrics","title":"Metrics","summary":"Understand how AI Gateway measures throughput and latency per provider.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/uptime"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/rest-api"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/uptime","distance":0.2458},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/observability","distance":0.3169},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","distance":0.3176},{"site":"vercel-docs","path":"/docs/ai-gateway/leaderboards","distance":0.3257},{"site":"vercel-docs","path":"/docs/pricing/legacy","distance":0.3281}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/leaderboards","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/legacy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/pricing","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/model-fallbacks","title":"Model Fallbacks","summary":"Configure model-level failover to try backup models when the primary model is unavailable","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"},{"site":"vercel-kb","path":"/kb/guide/ai-evaluation-dashboard-architecture-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/cost-aware-model-routing-with-ai-gateway"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-your-own-ai-model-router"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","distance":0.1993},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","distance":0.2163},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/advanced","distance":0.2217},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/advanced","distance":0.2579},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-timeouts","distance":0.2873}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-evaluation-dashboard-architecture-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/cost-aware-model-routing-with-ai-gateway","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-your-own-ai-model-router","via":"inbound"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/cloudflare-ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/provider-options","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/advanced","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/advanced","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-timeouts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-filtering-and-ordering","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/advanced","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/model-filtering","title":"Model Filtering","summary":"Restrict AI Gateway routing to models that have specific capabilities using the has option.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-filtering-and-ordering"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-filtering-and-ordering"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-filtering-and-ordering","distance":0.2436},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","distance":0.2517},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","distance":0.2713},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/model-allowlist","distance":0.2982},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/advanced","distance":0.3065}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/model-allowlist","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/advanced","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/provider-allowlist","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/model-fallbacks","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-filtering-and-ordering","title":"Filtering, Ordering & Sorting","summary":"Control which providers handle your requests, in what order, and how they are ranked using order, only, and sort options.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/model-filtering"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/model-filtering"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/uptime"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/advanced"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","distance":0.1237},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","distance":0.1902},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/advanced","distance":0.2107},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/rest-api","distance":0.2116},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/advanced","distance":0.2202}],"related":[{"site":"ai-sdk","path":"/docs/foundations/provider-options","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/advanced","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/rest-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/advanced","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/provider-allowlist","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/model-fallbacks","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","title":"Provider Options","summary":"Configure provider routing, ordering, and fallback behavior in Vercel AI Gateway","outbound":[{"site":"ai-sdk","path":"/docs/foundations/prompts"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepseek"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/byok"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/automatic-caching"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/model-fallbacks"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-filtering-and-ordering"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-timeouts"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/hermes"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/opencode"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/text"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-generation"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/model-fallbacks"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-filtering-and-ordering"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-timeouts"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/routing-rules"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/custom-reporting"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/trace-drains"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk-python"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/cohere-rerank"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/advanced"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/provider-allowlist"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/advanced","distance":0.113},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","distance":0.1152},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-filtering-and-ordering","distance":0.1237},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/advanced","distance":0.154},{"site":"ai-sdk","path":"/docs/foundations/provider-options","distance":0.1869}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"inbound"},{"site":"ai-sdk","path":"/docs/foundations/provider-options","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/advanced","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/advanced","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/advanced","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/hermes","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/opencode","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-timeouts","title":"Provider Timeouts","summary":"Configure per-provider timeouts for fast failover when a provider is slow to respond.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options"}],"inbound":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/trace-drains"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/advanced"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/advanced"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/advanced"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/advanced","distance":0.1803},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","distance":0.2364},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/advanced","distance":0.2604},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/model-fallbacks","distance":0.2873},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/advanced","distance":0.2921}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/advanced","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/provider-options","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/advanced","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/model-fallbacks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/advanced","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-filtering-and-ordering","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning","title":"Reasoning","summary":"Enable reasoning and extended thinking across providers with the AI SDK and AI Gateway.","outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/direct-chat-transport"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/amazon-bedrock"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/anthropic"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/google"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/openai"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/reasoning"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/reasoning"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/reasoning"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-generation"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/amazon-bedrock"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/anthropic"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/google"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/openai"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/reasoning"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/reasoning"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/reasoning"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/reasoning","distance":0.0831},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/openai","distance":0.1244},{"site":"ai-sdk","path":"/docs/ai-sdk-core/reasoning","distance":0.1351},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/reasoning","distance":0.148},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/amazon-bedrock","distance":0.176}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/reasoning","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/provider-options","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/reasoning","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/advanced","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/amazon-bedrock","title":"Amazon Bedrock","summary":"Configure reasoning for models hosted on Amazon Bedrock with the AI SDK and AI Gateway.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning","distance":0.176},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/reasoning","distance":0.1889},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/openai","distance":0.1959},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/reasoning","distance":0.1976},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/anthropic","distance":0.2204}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/reasoning","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/reasoning","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/openai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/reasoning","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cerebras","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/reasoning","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/reasoning","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/anthropic","title":"Anthropic","summary":"Configure adaptive and extended thinking for Anthropic Claude models with the AI SDK and AI Gateway.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/reasoning"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/reasoning","distance":0.0874},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic","distance":0.1861},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning","distance":0.1976},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/reasoning","distance":0.2029},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/amazon-bedrock","distance":0.2204}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/reasoning","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/reasoning","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/provider-options","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/claude-4","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/sonnet-3-7","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/reasoning","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/amazon-bedrock","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/reasoning","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/google","title":"Google / Vertex","summary":"Configure thinking for Google Gemini and Gemma models with the AI SDK and AI Gateway.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/byok"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning","distance":0.1949},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/reasoning","distance":0.2038},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/reasoning","distance":0.2174},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/openai","distance":0.2239},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/anthropic","distance":0.2315}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/reasoning","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/gemini-cli","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gemini","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/provider-options","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/reasoning","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/reasoning","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/openai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/reasoning","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/reasoning","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/openai","title":"OpenAI","summary":"Configure reasoning and thinking for OpenAI models with the AI SDK and AI Gateway.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/reasoning"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/reasoning","distance":0.1026},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/reasoning","distance":0.1184},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/reasoning","distance":0.1204},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning","distance":0.1244},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/amazon-bedrock","distance":0.1959}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/reasoning","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/reasoning","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/reasoning","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/provider-options","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cerebras","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/amazon-bedrock","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/reasoning","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/routing-rules","title":"Routing Rules","summary":"Define team-wide rules that rewrite requests from one model to another or deny specific models in AI Gateway.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/provider-allowlist"},{"site":"vercel-docs","path":"/docs/cli/ai-gateway"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"},{"site":"vercel-docs","path":"/docs/cli/ai-gateway"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"}],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/list-rules","distance":0.1846},{"site":"vercel-docs","path":"/docs/routing/project-routing-rules","distance":0.1861},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/create-rule","distance":0.2066},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/update-rule","distance":0.2133},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/delete-rule","distance":0.2261}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/list-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/project-routing-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/create-rule","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/update-rule","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/delete-rule","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/service-tiers","title":"Service Tiers","summary":"Control processing priority and cost for OpenAI, Google AI Studio, and Google Vertex AI models using service tiers through AI Gateway, available via all supported APIs.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/pricing","distance":0.25},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","distance":0.2581},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","distance":0.281},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/fast-mode","distance":0.2819},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/rest-api","distance":0.288}],"related":[{"site":"vercel-kb","path":"/kb/guide/cost-aware-model-routing-with-ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/fast-mode","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/rest-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/uptime","title":"Uptime and Status","summary":"See how uptime and status track AI Gateway provider health and end-to-end request success.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-filtering-and-ordering"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/metrics"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/rest-api"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/metrics","distance":0.2458},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/rest-api","distance":0.3216},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","distance":0.3226},{"site":"vercel-docs","path":"/docs/ai-gateway/leaderboards","distance":0.3229},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","distance":0.3256}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/metrics","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/rest-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/leaderboards","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/pricing","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/web-search","title":"Web Search","summary":"Enable AI models to search the web for current information using built-in tools through AI Gateway.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/advanced"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"}],"neighbors":[{"site":"ai-sdk","path":"/cookbook/node/web-search-agent","distance":0.2287},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway","distance":0.2653},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google","distance":0.3037},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/azure","distance":0.3061},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/groq","distance":0.3127}],"related":[{"site":"ai-sdk","path":"/cookbook/node/web-search-agent","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/azure","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/groq","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/text","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend","title":"Observability and Spend","summary":"Monitor AI Gateway requests and manage spend: observability, custom reporting, usage and billing APIs, and spending budgets.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/budgets"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/custom-reporting"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/observability"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/trace-drains"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/usage"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities"},{"site":"vercel-docs","path":"/docs/cli/ai-gateway"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/observability","distance":0.11},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/usage","distance":0.1692},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/budgets","distance":0.1998},{"site":"vercel-docs","path":"/docs/ai-gateway/pricing","distance":0.2249},{"site":"vercel-docs","path":"/docs/spend-management","distance":0.2301}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-your-own-ai-model-router","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/spend-management","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability/insights","via":"neighbor"},{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/budgets","title":"Budgets","summary":"Cap AI Gateway spend for your team, a single project, or an individual API key with budgets, refresh periods, spend alerts, and defaults.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/api-keys"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/byok"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/oidc"},{"site":"vercel-docs","path":"/docs/ai-gateway/pricing"},{"site":"vercel-docs","path":"/docs/cli/tokens"},{"site":"vercel-docs","path":"/docs/rbac/access-roles/team-level-roles"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/tokens"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/api-keys"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/byok"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/cursor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/hermes"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/kilo-code"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openclaw"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/pi"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-your-own-ai-model-router"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend","distance":0.1998},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/api-keys","distance":0.2077},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/observability","distance":0.2727},{"site":"vercel-docs","path":"/docs/ai-gateway/pricing","distance":0.2746},{"site":"vercel-docs","path":"/docs/spend-management","distance":0.2795}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-your-own-ai-model-router","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/cost-aware-model-routing-with-ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/spend-management","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/logs","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/custom-reporting","title":"Custom Reporting","summary":"Query AI Gateway usage data grouped by model, user, tag, provider, or credential type using the Custom Reporting API.","outbound":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/api-keys"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/advanced"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/logs"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/usage"},{"site":"vercel-docs","path":"/docs/ai-gateway/pricing"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/rest-api"},{"site":"vercel-kb","path":"/kb/guide/ai-evaluation-dashboard-architecture-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-your-own-ai-model-router"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/rest-api","distance":0.2751},{"site":"vercel-docs","path":"/docs/query/reference","distance":0.2902},{"site":"vercel-docs","path":"/docs/analytics/web-analytics-api","distance":0.3103},{"site":"vercel-docs","path":"/docs/query/monitoring/monitoring-reference","distance":0.341},{"site":"v0","path":"/docs/api/v1/reference/reports/get-usage","distance":0.345}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-evaluation-dashboard-architecture-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-your-own-ai-model-router","via":"inbound"},{"site":"v0","path":"/docs/api/v1/reference/reports/get-usage","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-summary","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/rest-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/query/reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/web-analytics-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/query/monitoring/monitoring-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/counts-page-views","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/logs","title":"Logs","summary":"Search, filter, and follow individual AI Gateway requests, inspect provider routing for one request, and export the results as CSV or JSON.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/custom-reporting"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/observability"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/observability"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend"}],"neighbors":[{"site":"vercel-docs","path":"/docs/logs/runtime","distance":0.1907},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/observability","distance":0.198},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend","distance":0.2372},{"site":"vercel-docs","path":"/docs/logs","distance":0.2719},{"site":"vercel-docs","path":"/docs/cli/logs","distance":0.2781}],"related":[{"site":"vercel-kb","path":"/kb/guide/add-structured-application-logs-to-vercel-functions","via":"neighbor"},{"site":"v0","path":"/docs/usage-dashboard","via":"neighbor"},{"site":"vercel-docs","path":"/docs/logs/runtime","via":"neighbor"},{"site":"vercel-docs","path":"/docs/logs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/logs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability/insights","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/usage","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/observability","title":"Observability","summary":"Learn how to monitor and debug your AI Gateway requests.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/logs"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/chatbox"},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/librechat"},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/openclaw"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/blackbox"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/cline"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/crush"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/hermes"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/opencode"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/roo-code"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/superset"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/logs"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"},{"site":"vercel-kb","path":"/kb/guide/ai-evaluation-dashboard-architecture-on-vercel"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend","distance":0.11},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/logs","distance":0.198},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/usage","distance":0.2312},{"site":"vercel-docs","path":"/docs/observability","distance":0.2452},{"site":"vercel-docs","path":"/docs/observability/insights","distance":0.249}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-evaluation-dashboard-architecture-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-your-own-ai-model-router","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability/insights","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/trace-drains","title":"Trace Drains","summary":"Forward an OpenTelemetry trace of every AI Gateway request to your own observability tool, and understand trace drain billing.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-timeouts"},{"site":"vercel-docs","path":"/docs/ai-gateway/pricing"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/zdr"},{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/drains/reference/traces"},{"site":"vercel-docs","path":"/docs/drains/using-drains"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend"},{"site":"vercel-docs","path":"/docs/ai-gateway/pricing"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend"}],"neighbors":[{"site":"vercel-docs","path":"/docs/drains/reference/traces","distance":0.144},{"site":"vercel-docs","path":"/docs/drains","distance":0.1808},{"site":"vercel-docs","path":"/docs/drains/using-drains","distance":0.1839},{"site":"vercel-docs","path":"/docs/tracing","distance":0.233},{"site":"vercel-docs","path":"/docs/drains/reference/analytics","distance":0.2703}],"related":[{"site":"vercel-docs","path":"/docs/tracing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/reference/analytics","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/reference/audit-logs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/audit-log/migrating-to-drains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-s3","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/usage","title":"Usage & Billing","summary":"Monitor your AI Gateway credit balance, usage, and generation details.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/custom-reporting"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend","distance":0.1692},{"site":"vercel-docs","path":"/docs/ai-gateway/pricing","distance":0.2282},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/observability","distance":0.2312},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","distance":0.2735},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/logs","distance":0.2918}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/logs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/usage","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/pricing","title":"Pricing","summary":"Learn about pricing for AI Gateway.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/byok"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/custom-reporting"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/trace-drains"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/provider-allowlist"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/zdr"},{"site":"vercel-docs","path":"/docs/drains/reference/traces"},{"site":"vercel-docs","path":"/docs/drains/using-drains"},{"site":"vercel-docs","path":"/docs/plans/enterprise"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/byok"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/budgets"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/trace-drains"},{"site":"vercel-docs","path":"/docs/eve/pricing"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-your-own-ai-model-router"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"neighbors":[{"site":"vercel-docs","path":"/docs/pricing","distance":0.2223},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend","distance":0.2249},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/usage","distance":0.2282},{"site":"vercel-docs","path":"/docs/ai-gateway","distance":0.2304},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/byok","distance":0.2416}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-your-own-ai-model-router","via":"inbound"},{"site":"v0","path":"/docs/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/pricing","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis","title":"SDKs & APIs","summary":"Use the AI Gateway with various SDKs and API specifications including OpenAI, Anthropic, and OpenResponses.","outbound":[{"site":"ai-sdk","path":"/docs/foundations/prompts"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/model-fallbacks"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-filtering-and-ordering"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/budgets"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/observability"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk-python"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/images"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/messages"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/reasoning"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/streaming"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/structured-outputs"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/tool-calling"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/cohere-rerank"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/chat-completions"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/embeddings"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/image-generation"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/images"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/reasoning"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/streaming"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/structured-outputs"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/tool-calling"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/images"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/reasoning"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/streaming"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/structured-outputs"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/text-generation"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/tool-calling"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/images"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/reasoning"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/streaming"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/structured-outputs"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/text-generation"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/tool-calling"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-generation"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python","distance":0.1543},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","distance":0.1551},{"site":"vercel-docs","path":"/docs/ai-gateway","distance":0.1704},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions","distance":0.1966},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","distance":0.2032}],"related":[{"site":"ai-sdk","path":"/cookbook/guides/openai-responses","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-ai-sdk-vs-tanstack-ai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/text","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","title":"AI SDK","summary":"Build AI-powered TypeScript applications using the AI SDK with AI Gateway for unified access to 200+ models.","outbound":[{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-7-0"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/oidc"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk-python"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/cohere-rerank"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/rest-api"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-sdk","distance":0.1275},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis","distance":0.1551},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk-python","distance":0.1708},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python","distance":0.1709},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/text","distance":0.1872}],"related":[{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/o1","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-ai-sdk-vs-tanstack-ai","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/o3","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/openai-responses","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/sonnet-3-7","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk-python","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/text","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk-python","title":"AI SDK for Python","summary":"Build AI-powered Python applications using the AI SDK for Python with AI Gateway for unified access to 200+ models.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/oidc"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-sdk","distance":0.1613},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","distance":0.1708},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/pydantic-ai","distance":0.199},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","distance":0.2164},{"site":"vercel-docs","path":"/docs/ai-gateway","distance":0.219}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/python","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/python-ai-sdk-vercel-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/pydantic-ai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api","title":"Anthropic Messages API","summary":"Use the Anthropic Messages API with AI Gateway for seamless integration with Anthropic SDK tools.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/claude-code"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/advanced"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/images"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/messages"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/reasoning"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/streaming"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/structured-outputs"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/tool-calling"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/claude-code"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/conductor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/text"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/custom-reporting"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/rest-api"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/claude-code","distance":0.1444},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/advanced","distance":0.2093},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python","distance":0.2489},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","distance":0.2514},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis","distance":0.254}],"related":[{"site":"vercel-kb","path":"/kb/guide/claude-managed-agents-chat-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic-aws","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/ai-gateway","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/advanced","title":"Advanced","summary":"Advanced Anthropic API features including web search, provider timeouts, and automatic caching.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/automatic-caching"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-timeouts"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/reasoning"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/web-search"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/reasoning"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/streaming"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/advanced","distance":0.1975},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api","distance":0.2093},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","distance":0.2179},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/automatic-caching","distance":0.2198},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/rest-api","distance":0.2575}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/advanced","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/rest-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/images","title":"Images","summary":"Send images and PDF documents as part of your Anthropic API message requests.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/images","distance":0.1743},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/images","distance":0.1993},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/images","distance":0.2218},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/messages","distance":0.3177},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python","distance":0.3512}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/images","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/images","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/images","via":"neighbor"},{"site":"chat-sdk","path":"/docs/files","via":"neighbor"},{"site":"v0","path":"/docs/images-and-videos","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/messages","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/messages","title":"Messages","summary":"Create messages using the Anthropic Messages API format with support for streaming.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/streaming"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/reasoning"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/streaming"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/streaming","distance":0.1546},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/streaming","distance":0.3046},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/streaming","distance":0.3154},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api","distance":0.3177},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/images","distance":0.3177}],"related":[{"site":"eve","path":"/docs/guides/client/messages","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/streaming-from-llm","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/streaming","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/streaming","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/images","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/chat-completions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/streaming","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/reasoning","title":"Extended Thinking","summary":"Configure how much Claude thinks before answering, using the Anthropic Messages API thinking parameter.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/anthropic"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/advanced"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/messages"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/reasoning"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/advanced"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/streaming"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/reasoning"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/anthropic","distance":0.0874},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/reasoning","distance":0.1692},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/reasoning","distance":0.2016},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning","distance":0.2118},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/google","distance":0.2174}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/reasoning","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/sonnet-3-7","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/reasoning","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/google","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/amazon-bedrock","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/reasoning","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/streaming","title":"Streaming","summary":"Stream Anthropic Messages API responses token by token as they are generated.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/advanced"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/messages"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/reasoning"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/tool-calling"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/messages"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/streaming","distance":0.1445},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/streaming","distance":0.1463},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/streaming","distance":0.1466},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/messages","distance":0.1546},{"site":"vercel-docs","path":"/docs/functions/streaming-functions","distance":0.2163}],"related":[{"site":"vercel-kb","path":"/kb/guide/streaming-from-llm","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-streaming","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/streaming","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/streaming","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/streaming","via":"neighbor"},{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/processing-data-chunks","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-streaming","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/structured-outputs","title":"Structured Outputs","summary":"Get JSON responses conforming to a JSON Schema from Anthropic models through AI Gateway.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/structured-outputs","distance":0.1513},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/structured-outputs","distance":0.1697},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/structured-outputs","distance":0.1814},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data","distance":0.2381},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output","distance":0.2693}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/structured-outputs","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/output-schema","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/structured-outputs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/structured-outputs","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-object","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/streaming","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/tool-calling","title":"Tool Calling","summary":"Use function calling with the Anthropic Messages API to allow models to call tools and functions.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/streaming"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/tool-calling","distance":0.0979},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/tool-calling","distance":0.1098},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/tool-calling","distance":0.1257},{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.2816},{"site":"vercel-kb","path":"/kb/guide/what-is-an-llm-tool","distance":0.2823}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/tool-calling","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/tool-calling","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/tool-calling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-an-llm-tool","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/call-tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"neighbor"},{"site":"eve","path":"/docs/tools","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/cohere-rerank","title":"Cohere Rerank API","summary":"Use the Cohere-compatible Rerank API with AI Gateway to reorder documents by relevance with the Cohere SDK or plain HTTP.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/reranking"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/reranking","distance":0.115},{"site":"ai-sdk","path":"/docs/ai-sdk-core/reranking","distance":0.1746},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/rerank","distance":0.2453},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cohere","distance":0.2537},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/voyage","distance":0.3354}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/reranking","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/rerank","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cohere","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/voyage","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-filtering-and-ordering","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/get-virtual-model-config","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions","title":"OpenAI Chat Completions API","summary":"Use the OpenAI Chat Completions API with AI Gateway for seamless integration with existing tools and libraries.","outbound":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/advanced"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/chat-completions"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/embeddings"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/image-generation"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/images"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/reasoning"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/rest-api"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/streaming"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/structured-outputs"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/tool-calling"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/text"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/custom-reporting"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/chat-completions","distance":0.1696},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python","distance":0.1863},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses","distance":0.1913},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis","distance":0.1966},{"site":"vercel-docs","path":"/docs/ai-gateway","distance":0.1989}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/advanced","title":"Advanced","summary":"Configure provider options, model fallbacks, BYOK credentials, and prompt caching.","outbound":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/automatic-caching"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-filtering-and-ordering"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-timeouts"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/reasoning"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/automatic-caching"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/custom-reporting"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/chat-completions"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/reasoning"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/streaming"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","distance":0.154},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-filtering-and-ordering","distance":0.2107},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/advanced","distance":0.2201},{"site":"ai-sdk","path":"/docs/foundations/provider-options","distance":0.2227},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/byok","distance":0.244}],"related":[{"site":"ai-sdk","path":"/docs/foundations/provider-options","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/advanced","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/byok","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/model-fallbacks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/advanced","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/chat-completions","title":"Chat Completions","summary":"Create chat completions using the Chat Completions API with support for streaming, image attachments, and PDF documents.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/advanced"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/images"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/streaming"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/structured-outputs"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/images"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/reasoning"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/streaming"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/rest-api"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions","distance":0.1696},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/images","distance":0.177},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/streaming","distance":0.1775},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python","distance":0.2352},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/image-generation","distance":0.2361}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-completion","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/image-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/rest-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/tool-calling","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/embeddings","title":"Embeddings","summary":"Generate vector embeddings with the OpenAI-compatible /embeddings endpoint through Vercel AI Gateway, including the dimensions parameter and response format.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/embeddings"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/embeddings"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/embeddings","distance":0.1608},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions","distance":0.2739},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses","distance":0.2786},{"site":"vercel-docs","path":"/docs/ai-gateway","distance":0.2848},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","distance":0.285}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/images","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/images","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/image-generation","title":"Image Generation","summary":"Generate images using AI models that support multimodal output through the Chat Completions API.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/openai"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/images"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/openai","distance":0.1622},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation","distance":0.197},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk","distance":0.2049},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/images","distance":0.2119},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/image","distance":0.2201}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/images","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/image","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/images","title":"Images","summary":"Send images and PDF documents to a model using the OpenAI Chat Completions API.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/chat-completions"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/image-generation"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/chat-completions"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/images","distance":0.1305},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/images","distance":0.1372},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/images","distance":0.1743},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/chat-completions","distance":0.177},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/image-generation","distance":0.2119}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/images","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/images","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/images","via":"neighbor"},{"site":"v0","path":"/docs/images-and-videos","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/streaming","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/reasoning","title":"Reasoning","summary":"Control how much a model thinks before answering with the OpenAI Chat Completions API.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/reasoning"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/advanced"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/chat-completions"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/reasoning"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/advanced"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/streaming"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning","distance":0.0831},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/reasoning","distance":0.1013},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/openai","distance":0.1184},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/reasoning","distance":0.1692},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/reasoning","distance":0.1729}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/reasoning","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/reasoning","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/provider-options","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/openai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/reasoning","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/streaming","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/rest-api","title":"REST API","summary":"Use the AI Gateway API directly without client libraries using curl and fetch.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","distance":0.2061},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-filtering-and-ordering","distance":0.2116},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","distance":0.2152},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python","distance":0.2393},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions","distance":0.2405}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-filtering-and-ordering","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/streaming","title":"Streaming","summary":"Stream OpenAI Chat Completions responses token by token as they are generated.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/advanced"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/chat-completions"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/reasoning"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/tool-calling"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/chat-completions"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/streaming","distance":0.1445},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/streaming","distance":0.1529},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/streaming","distance":0.1594},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/chat-completions","distance":0.1775},{"site":"vercel-docs","path":"/docs/functions/streaming-functions","distance":0.2188}],"related":[{"site":"vercel-kb","path":"/kb/guide/streaming-from-llm","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-streaming","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-streaming","via":"neighbor"},{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/streaming","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/streaming","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/streaming","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/structured-outputs","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/structured-outputs","title":"Structured Outputs","summary":"Generate structured JSON responses that conform to a specific schema using the Chat Completions API.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/chat-completions"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/structured-outputs","distance":0.1474},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/structured-outputs","distance":0.1685},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/structured-outputs","distance":0.1697},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/streaming","distance":0.2565},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python","distance":0.2613}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/structured-outputs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/structured-outputs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/structured-outputs","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/streaming","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/tool-calling","title":"Tool Calling","summary":"Use function calling with the Chat Completions API to enable models to call tools and functions through AI Gateway.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/streaming"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/tool-calling","distance":0.0979},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/tool-calling","distance":0.1147},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/tool-calling","distance":0.1261},{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.2653},{"site":"vercel-kb","path":"/kb/guide/what-is-an-llm-tool","distance":0.2738}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/tool-calling","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/tool-calling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-an-llm-tool","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/tool-calling","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/call-tools","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/packages/ai-tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"neighbor"},{"site":"eve","path":"/docs/tools","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/chat-completions","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses","title":"OpenResponses API","summary":"Use the OpenResponses API specification with AI Gateway for a unified, provider-agnostic interface.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/advanced"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/images"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/reasoning"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/streaming"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/structured-outputs"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/text-generation"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/tool-calling"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/text"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/custom-reporting"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/advanced"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/images"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/reasoning"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/streaming"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/structured-outputs"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/text-generation"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/tool-calling"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/rest-api"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses","distance":0.0736},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions","distance":0.2066},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis","distance":0.226},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python","distance":0.2299},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/text-generation","distance":0.2306}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/openai-responses","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/text","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/websockets","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/advanced","title":"Advanced","summary":"Configure provider routing, fallbacks, and restrictions using the OpenResponses API.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/automatic-caching"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-timeouts"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/structured-outputs"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","distance":0.113},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-timeouts","distance":0.1803},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/advanced","distance":0.1975},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","distance":0.2197},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/advanced","distance":0.2201}],"related":[{"site":"ai-sdk","path":"/docs/foundations/provider-options","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/advanced","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/advanced","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-filtering-and-ordering","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/images","title":"Images","summary":"Send images and PDF documents for analysis using the OpenResponses API.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/text-generation"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/tool-calling"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/images","distance":0.0293},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/images","distance":0.1305},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/images","distance":0.1993},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses","distance":0.24},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/text-generation","distance":0.2442}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/images","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/images","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/images","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/image-generation","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/reasoning","title":"Reasoning","summary":"Control how much a reasoning model thinks before answering with the OpenResponses API.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/streaming"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/structured-outputs"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/structured-outputs"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/reasoning","distance":0.0938},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/reasoning","distance":0.1013},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/openai","distance":0.1026},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning","distance":0.148},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/reasoning","distance":0.2016}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/reasoning","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/reasoning","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/reasoning","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/openai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/provider-options","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/reasoning","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/streaming","title":"Streaming","summary":"Stream responses token by token using the OpenResponses API.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/reasoning"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/streaming","distance":0.054},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/streaming","distance":0.1463},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/streaming","distance":0.1529},{"site":"vercel-docs","path":"/docs/functions/streaming-functions","distance":0.2243},{"site":"vercel-kb","path":"/kb/guide/streaming-from-llm","distance":0.2414}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/streaming","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/streaming-from-llm","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-streaming","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/processing-data-chunks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/streaming","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/streaming","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/structured-outputs","title":"Structured Outputs","summary":"Constrain OpenResponses API output to a JSON schema so every response parses.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/advanced"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/reasoning"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/tool-calling"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/reasoning"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/structured-outputs","distance":0.0878},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/structured-outputs","distance":0.1474},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/structured-outputs","distance":0.1513},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/reasoning","distance":0.274},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses","distance":0.2749}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/structured-outputs","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/structured-outputs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/structured-outputs","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/output-schema","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/images","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/text-generation","title":"Text Generation","summary":"Generate text responses using the OpenResponses API.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/images"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/text-generation","distance":0.0792},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-generation","distance":0.1646},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/text","distance":0.1754},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses","distance":0.2306},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses","distance":0.2315}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/text-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/text","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/images","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/tool-calling","title":"Tool Calling","summary":"Define tools the model can call using the OpenResponses API.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/images"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/structured-outputs"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/tool-calling","distance":0.0952},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/tool-calling","distance":0.1098},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/tool-calling","distance":0.1147},{"site":"vercel-kb","path":"/kb/guide/what-is-an-llm-tool","distance":0.2836},{"site":"ai-sdk","path":"/cookbook/node/call-tools","distance":0.2993}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/tool-calling","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/tool-calling","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/tool-calling","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-an-llm-tool","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"neighbor"},{"site":"eve","path":"/docs/tools","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/text-generation","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python","title":"Python","summary":"Use the AI Gateway with Python through OpenAI or Anthropic SDKs with full streaming, tool calling, and async support.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/api-keys"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/oidc"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/langchain"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/litellm"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/llamaindex"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/pydantic-ai"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/images"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/reasoning"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/tool-calling"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/images"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/reasoning"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/structured-outputs"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/tool-calling"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/images"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/reasoning"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/tool-calling"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis","distance":0.1543},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","distance":0.1709},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions","distance":0.1863},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses","distance":0.1959},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/reasoning","distance":0.2274}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk-python","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/chat-completions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/text","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses","title":"OpenAI Responses API","summary":"Use the OpenAI Responses API with AI Gateway to generate text, call tools, stream tokens, and more across any supported provider.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/automatic-caching"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/images"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/reasoning"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/streaming"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/structured-outputs"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/text-generation"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/tool-calling"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/websockets"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openai-codex"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/text"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/automatic-caching"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/custom-reporting"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/websockets"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/rest-api"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses","distance":0.0736},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions","distance":0.1913},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python","distance":0.1959},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/text","distance":0.2034},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis","distance":0.2155}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/openai-responses","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/text","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/text-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/images","title":"Images","summary":"Send images and PDF documents for analysis using the OpenAI Responses API through AI Gateway.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/text-generation"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/tool-calling"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/images","distance":0.0293},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/images","distance":0.1372},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/images","distance":0.2218},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses","distance":0.258},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","distance":0.2595}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/images","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/images","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/images","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/reasoning","title":"Reasoning","summary":"Control how much a model thinks before answering with the OpenAI Responses API.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/openai"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/reasoning","distance":0.0938},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/openai","distance":0.1204},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/reasoning","distance":0.1729},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/amazon-bedrock","distance":0.1889},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning","distance":0.207}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/reasoning","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/openai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/reasoning","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/reasoning","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/amazon-bedrock","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/streaming","title":"Streaming","summary":"Stream tokens as they are generated with the OpenAI Responses API.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/streaming","distance":0.054},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/streaming","distance":0.1466},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/streaming","distance":0.1594},{"site":"vercel-docs","path":"/docs/functions/streaming-functions","distance":0.227},{"site":"vercel-kb","path":"/kb/guide/streaming-from-llm","distance":0.2349}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/streaming","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/streaming-from-llm","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-streaming","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/streaming","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/streaming","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/processing-data-chunks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/text-generation","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/structured-outputs","title":"Structured Outputs","summary":"Constrain a response to a JSON schema with the OpenAI Responses API.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/structured-outputs","distance":0.0878},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/structured-outputs","distance":0.1685},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/structured-outputs","distance":0.1814},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/text-generation","distance":0.3069},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/tool-calling","distance":0.3206}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/structured-outputs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/structured-outputs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/structured-outputs","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/text-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/tool-calling","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/text-generation","title":"Text Generation","summary":"Generate text responses with the OpenAI Responses API through AI Gateway.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/images"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/text-generation","distance":0.0792},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/text","distance":0.1403},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-generation","distance":0.1613},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses","distance":0.2242},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-to-speech","distance":0.2262}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/text-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/text","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-to-speech","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/tool-calling","title":"Tool Calling","summary":"Define tools the model can call with the OpenAI Responses API.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/images"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/tool-calling","distance":0.0952},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/tool-calling","distance":0.1257},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/tool-calling","distance":0.1261},{"site":"ai-sdk","path":"/cookbook/node/call-tools","distance":0.2789},{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.2846}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/tool-calling","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/tool-calling","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/tool-calling","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-an-llm-tool","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/rest-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/structured-outputs","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/websockets","title":"WebSocket Mode","summary":"Keep a persistent connection open across turns with the OpenAI Responses API over WebSocket through AI Gateway.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/zdr"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openai-codex"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses","distance":0.2219},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses","distance":0.2342},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/streaming","distance":0.2923},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/streaming","distance":0.3196},{"site":"ai-sdk","path":"/cookbook/guides/openai-responses","distance":0.3436}],"related":[{"site":"ai-sdk","path":"/cookbook/guides/openai-responses","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/streaming","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/streaming","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/python","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/text-generation","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/rest-api","title":"REST API","summary":"Reference for AI Gateway REST endpoints: models, usage, generations, and reporting.","outbound":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/metrics"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/uptime"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/custom-reporting"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/chat-completions"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/metrics"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-filtering-and-ordering"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/uptime"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/usage"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/custom-reporting","distance":0.2751},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/usage","distance":0.3023},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway","distance":0.3187},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","distance":0.3621},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/service-tiers","distance":0.3649}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/black-forest-labs","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/usage/list-usage-events","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/service-tiers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/counts-page-views","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance","title":"Security and Compliance","summary":"AI Gateway data privacy and governance controls: zero data retention, prompt training policies, and provider allowlists.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/disallow-prompt-training"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/model-allowlist"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/provider-allowlist"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/zdr"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/disallow-prompt-training","distance":0.1803},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/zdr","distance":0.1881},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/provider-allowlist","distance":0.2599},{"site":"vercel-docs","path":"/docs/ai-gateway","distance":0.2666},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/model-allowlist","distance":0.2685}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-your-own-ai-model-router","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/advanced","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"neighbor"},{"site":"vercel-docs","path":"/docs/products","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/advanced","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/disallow-prompt-training","title":"Disallow Prompt Training","summary":"Learn how to prevent AI providers from using your prompts and responses for model training through AI Gateway.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/byok"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/zdr"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/regional-inference"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/zdr"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance","distance":0.1803},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/zdr","distance":0.1824},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/provider-allowlist","distance":0.2958},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","distance":0.3023},{"site":"vercel-docs","path":"/docs/ai-gateway","distance":0.3177}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/provider-allowlist","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/model-allowlist","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/regional-inference","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/model-allowlist","title":"Model Allowlist","summary":"Restrict which AI models your team can use through AI Gateway. Available on Pro and Enterprise.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/byok"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/provider-allowlist"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/provider-allowlist","distance":0.0846},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance","distance":0.2685},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","distance":0.2718},{"site":"vercel-docs","path":"/docs/ai-gateway/pricing","distance":0.2871},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","distance":0.2889}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/model-filtering","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/routing-rules","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/provider-allowlist","title":"Provider Allowlist","summary":"Restrict which AI providers your team can route through AI Gateway. Available on Pro and Enterprise.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/byok"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/routing-rules"},{"site":"vercel-docs","path":"/docs/ai-gateway/pricing"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/model-allowlist"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/model-allowlist","distance":0.0846},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-filtering-and-ordering","distance":0.2485},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","distance":0.2514},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance","distance":0.2599},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/advanced","distance":0.2694}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/model-allowlist","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-filtering-and-ordering","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/advanced","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/disallow-prompt-training","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/routing-rules","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/regional-inference","title":"Regional Inference","summary":"Route AI Gateway inference to the region you choose and control where providers store data, for data residency and compliance requirements.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/byok"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/disallow-prompt-training"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/zdr"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/byok"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","distance":0.2404},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","distance":0.2552},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/zdr","distance":0.2628},{"site":"vercel-kb","path":"/kb/guide/how-to-build-your-own-ai-model-router","distance":0.2698},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/byok","distance":0.2702}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-your-own-ai-model-router","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/cost-aware-model-routing-with-ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/advanced","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-filtering-and-ordering","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/ai-gateway","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/zdr","title":"Zero Data Retention","summary":"Learn about zero data retention policies and how to enforce ZDR on a per-request basis with AI Gateway.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/byok"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/automatic-caching"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/disallow-prompt-training"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/trace-drains"},{"site":"vercel-docs","path":"/docs/ai-gateway/pricing"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/websockets"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/disallow-prompt-training"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/regional-inference"},{"site":"vercel-docs","path":"/docs/cli/ai-gateway"},{"site":"vercel-kb","path":"/kb/guide/ai-evaluation-dashboard-architecture-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-your-own-ai-model-router"}],"requires":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/disallow-prompt-training","distance":0.1824},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance","distance":0.1881},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/regional-inference","distance":0.2628},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/byok","distance":0.295},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","distance":0.3177}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-evaluation-dashboard-architecture-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-your-own-ai-model-router","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/regional-inference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/provider-allowlist","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/advanced","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/ai-sdk","title":"AI SDK","summary":"TypeScript toolkit for building AI-powered applications with React, Next.js, Vue, Svelte and Node.js","outbound":[{"site":"ai-sdk","path":"/cookbook/guides"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/mastra"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/products"},{"site":"vercel-kb","path":"/kb/guide/ai-evaluation-dashboard-architecture-on-vercel"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","distance":0.1275},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk-python","distance":0.1613},{"site":"ai-sdk","path":"/docs/introduction","distance":0.1902},{"site":"vercel-kb","path":"/kb/guide/vercel-ai-sdk-vs-tanstack-ai","distance":0.1935},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.1994}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-evaluation-dashboard-architecture-on-vercel","via":"inbound"},{"site":"ai-sdk","path":"/docs/introduction","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-ai-sdk-vs-tanstack-ai","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/o1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk-python","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/text","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/alerts","title":"Alerts","summary":"Get notified when something's wrong with your Vercel projects. Set up alerts through Slack, webhooks, or email so you can fix issues quickly.","outbound":[{"site":"vercel-docs","path":"/docs/agent/investigation"},{"site":"vercel-docs","path":"/docs/alerts/configure-alerts"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/routing-middleware"}],"inbound":[{"site":"vercel-docs","path":"/docs/alerts/configure-alerts"},{"site":"vercel-docs","path":"/docs/cli/alerts"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/webhooks/webhooks-api"},{"site":"vercel-kb","path":"/kb/guide/detect-memory-and-oom-failures-in-serverless-functions"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/monitor-uptime-for-ai-native-apps-with-vercel-alerts","distance":0.1767},{"site":"vercel-docs","path":"/docs/alerts/configure-alerts","distance":0.1948},{"site":"vercel-docs","path":"/docs/cli/alerts","distance":0.2896},{"site":"vercel-docs","path":"/docs/agent/investigation","distance":0.3094},{"site":"vercel-kb","path":"/kb/guide/detect-memory-and-oom-failures-in-serverless-functions","distance":0.3114}],"related":[{"site":"vercel-kb","path":"/kb/guide/detect-memory-and-oom-failures-in-serverless-functions","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/monitor-uptime-for-ai-native-apps-with-vercel-alerts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/alerts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/notifications","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/alerts/configure-alerts","title":"Configure Alerts","summary":"Configure alert rules and notification destinations for Vercel Observability alerts.","outbound":[{"site":"vercel-docs","path":"/docs/alerts"},{"site":"vercel-docs","path":"/docs/webhooks/webhooks-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/alerts"}],"requires":[{"site":"vercel-docs","path":"/docs/alerts"}],"neighbors":[{"site":"vercel-docs","path":"/docs/alerts","distance":0.1948},{"site":"vercel-docs","path":"/docs/cli/alerts","distance":0.2211},{"site":"vercel-kb","path":"/kb/guide/monitor-uptime-for-ai-native-apps-with-vercel-alerts","distance":0.2241},{"site":"vercel-docs","path":"/docs/notifications","distance":0.2544},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-observability","distance":0.2674}],"related":[{"site":"vercel-kb","path":"/kb/guide/monitor-uptime-for-ai-native-apps-with-vercel-alerts","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/detect-memory-and-oom-failures-in-serverless-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/alerts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/notifications","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/webhooks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/analytics","title":"Web Analytics","summary":"With Web Analytics, you can get detailed insights into your website's visitors with new metrics like top pages, top referrers, and demographics.","outbound":[{"site":"vercel-docs","path":"/docs/analytics/custom-events"},{"site":"vercel-docs","path":"/docs/analytics/quickstart"},{"site":"vercel-docs","path":"/docs/analytics/using-web-analytics"},{"site":"vercel-docs","path":"/docs/flags"},{"site":"vercel-docs","path":"/docs/speed-insights"}],"inbound":[{"site":"v0","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools"},{"site":"vercel-docs","path":"/docs/agent/installation"},{"site":"vercel-docs","path":"/docs/audit-log"},{"site":"vercel-docs","path":"/docs/cli/project"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/astro"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/create-react-app"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit"},{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends"},{"site":"vercel-docs","path":"/docs/projects"},{"site":"vercel-docs","path":"/docs/projects/transferring-projects"},{"site":"vercel-docs","path":"/docs/security/shared-responsibility"},{"site":"vercel-docs","path":"/docs/speed-insights"},{"site":"vercel-kb","path":"/kb/guide/astro-on-vercel-vs-webflow-cloud"},{"site":"vercel-kb","path":"/kb/guide/black-friday-preparation"},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-bigcommerce-storefront-with-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-splits-work-in-vercel-flags"},{"site":"vercel-kb","path":"/kb/guide/how-to-effectively-load-test-your-vercel-application"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare"},{"site":"vercel-kb","path":"/kb/guide/vercel-agent"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nuxt-imgur-clone"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-render"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/analytics/using-web-analytics","distance":0.1549},{"site":"vercel-docs","path":"/docs/analytics/privacy-policy","distance":0.1956},{"site":"vercel-docs","path":"/docs/analytics/filtering","distance":0.2164},{"site":"vercel-docs","path":"/docs/analytics/quickstart","distance":0.2192},{"site":"vercel-docs","path":"/docs/analytics/web-analytics-api","distance":0.2385}],"related":[{"site":"v0","path":"/docs/deployments","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/astro-on-vercel-vs-webflow-cloud","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/black-friday-preparation","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-bigcommerce-storefront-with-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-splits-work-in-vercel-flags","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-effectively-load-test-your-vercel-application","via":"inbound"},{"site":"vercel-docs","path":"/docs/observability/insights","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/privacy-policy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/analytics/accessing-metrics-with-vercel-cli","title":"Using with CLI","summary":"Use the Vercel CLI to query Web Analytics metrics from your terminal.","outbound":[{"site":"vercel-docs","path":"/docs/cli/metrics"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"}],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/analytics"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/metrics","distance":0.1075},{"site":"vercel-docs","path":"/docs/speed-insights/accessing-metrics-with-vercel-cli","distance":0.1268},{"site":"vercel-docs","path":"/docs/analytics/web-analytics-api","distance":0.2039},{"site":"vercel-docs","path":"/docs/analytics/using-web-analytics","distance":0.2062},{"site":"vercel-docs","path":"/docs/query","distance":0.2333}],"related":[{"site":"vercel-docs","path":"/docs/speed-insights/accessing-metrics-with-vercel-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/web-analytics-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/using-web-analytics","via":"neighbor"},{"site":"vercel-docs","path":"/docs/query","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability/custom-metrics","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/analytics/custom-events","title":"Custom Events","summary":"Learn how to send custom analytics events from your application.","outbound":[{"site":"vercel-docs","path":"/docs/analytics/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/analytics/quickstart"},{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/password-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication"}],"inbound":[{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/analytics/filtering"},{"site":"vercel-docs","path":"/docs/analytics/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/analytics/privacy-policy"},{"site":"vercel-docs","path":"/docs/analytics/quickstart"},{"site":"vercel-docs","path":"/docs/analytics/web-analytics-api"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nuxt-imgur-clone"}],"requires":[{"site":"vercel-docs","path":"/docs/analytics"}],"neighbors":[{"site":"vercel-docs","path":"/docs/analytics/quickstart","distance":0.2729},{"site":"vercel-docs","path":"/docs/analytics/redacting-sensitive-data","distance":0.2867},{"site":"vercel-docs","path":"/docs/analytics/limits-and-pricing","distance":0.3159},{"site":"vercel-docs","path":"/docs/analytics/using-web-analytics","distance":0.3194},{"site":"vercel-docs","path":"/docs/analytics/web-analytics-api","distance":0.32}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nuxt-imgur-clone","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/add-structured-application-logs-to-vercel-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/redacting-sensitive-data","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/using-web-analytics","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/web-analytics-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/aggregates-custom-events","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/privacy-policy","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/analytics/filtering","title":"Filtering","summary":"Learn how filters allow you to explore insights about your website's visitors.","outbound":[{"site":"vercel-docs","path":"/docs/analytics/custom-events"},{"site":"vercel-docs","path":"/docs/analytics/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/analytics/quickstart"},{"site":"vercel-docs","path":"/docs/flags"}],"inbound":[{"site":"vercel-docs","path":"/docs/analytics/quickstart"},{"site":"vercel-docs","path":"/docs/analytics/using-web-analytics"},{"site":"vercel-docs","path":"/docs/speed-insights/using-speed-insights"}],"requires":[{"site":"vercel-docs","path":"/docs/analytics"}],"neighbors":[{"site":"vercel-docs","path":"/docs/analytics/using-web-analytics","distance":0.2034},{"site":"vercel-docs","path":"/docs/analytics","distance":0.2164},{"site":"vercel-docs","path":"/docs/analytics/web-analytics-api","distance":0.2573},{"site":"vercel-docs","path":"/docs/analytics/quickstart","distance":0.2701},{"site":"vercel-docs","path":"/docs/analytics/accessing-metrics-with-vercel-cli","distance":0.2927}],"related":[{"site":"vercel-docs","path":"/docs/analytics/using-web-analytics","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/web-analytics-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/accessing-metrics-with-vercel-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/troubleshooting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/privacy-policy","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/analytics/limits-and-pricing","title":"Pricing","summary":"Learn about pricing for Vercel Web Analytics.","outbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/analytics/custom-events"},{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/notifications"},{"site":"vercel-docs","path":"/docs/plans/hobby"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/trials"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/spend-management"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools"},{"site":"vercel-docs","path":"/docs/agent/installation"},{"site":"vercel-docs","path":"/docs/analytics/custom-events"},{"site":"vercel-docs","path":"/docs/analytics/filtering"},{"site":"vercel-docs","path":"/docs/analytics/quickstart"},{"site":"vercel-docs","path":"/docs/analytics/using-web-analytics"},{"site":"vercel-docs","path":"/docs/analytics/web-analytics-api"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/plans/hobby"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-kb","path":"/kb/guide/vercel-agent"}],"requires":[{"site":"vercel-docs","path":"/docs/analytics"}],"neighbors":[{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability","distance":0.1378},{"site":"vercel-docs","path":"/docs/speed-insights/limits-and-pricing","distance":0.196},{"site":"vercel-docs","path":"/docs/observability/observability-plus","distance":0.2059},{"site":"vercel-docs","path":"/docs/pricing","distance":0.221},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","distance":0.2314}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-agent","via":"inbound"},{"site":"vercel-docs","path":"/docs/speed-insights/limits-and-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability/observability-plus","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/using-web-analytics","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/analytics/package","title":"@vercel/analytics","summary":"With the @vercel/analytics npm package, you are able to configure your application to send analytics data to Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/analytics/privacy-policy"},{"site":"vercel-docs","path":"/docs/analytics/quickstart"},{"site":"vercel-docs","path":"/docs/analytics/redacting-sensitive-data"}],"inbound":[{"site":"vercel-docs","path":"/docs/analytics/privacy-policy"},{"site":"vercel-docs","path":"/docs/analytics/quickstart"},{"site":"vercel-docs","path":"/docs/analytics/redacting-sensitive-data"},{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability"}],"requires":[{"site":"vercel-docs","path":"/docs/analytics"}],"neighbors":[{"site":"vercel-docs","path":"/docs/analytics/redacting-sensitive-data","distance":0.0953},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout","distance":0.2886},{"site":"nextjs","path":"/docs/app/guides/preventing-flash-before-hydration","distance":0.3093},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching","distance":0.3138},{"site":"vercel-docs","path":"/docs/frameworks/frontend/react-router","distance":0.318}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/preventing-flash-before-hydration","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/third-party-libraries","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/react-router","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/remix","via":"neighbor"},{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/analytics/privacy-policy","title":"Privacy","summary":"Learn how Vercel supports privacy and data compliance standards with Vercel Web Analytics.","outbound":[{"site":"vercel-docs","path":"/docs/analytics/custom-events"},{"site":"vercel-docs","path":"/docs/analytics/package"},{"site":"vercel-docs","path":"/docs/analytics/quickstart"},{"site":"vercel-docs","path":"/docs/analytics/redacting-sensitive-data"}],"inbound":[{"site":"vercel-docs","path":"/docs/analytics/package"},{"site":"vercel-docs","path":"/docs/analytics/quickstart"}],"requires":[{"site":"vercel-docs","path":"/docs/analytics"}],"neighbors":[{"site":"vercel-docs","path":"/docs/speed-insights/privacy-policy","distance":0.1494},{"site":"vercel-docs","path":"/docs/analytics","distance":0.1956},{"site":"vercel-docs","path":"/docs/analytics/using-web-analytics","distance":0.2298},{"site":"vercel-docs","path":"/docs/analytics/quickstart","distance":0.2321},{"site":"vercel-docs","path":"/docs/analytics/troubleshooting","distance":0.2609}],"related":[{"site":"vercel-docs","path":"/docs/speed-insights/privacy-policy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/using-web-analytics","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/troubleshooting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/compliance","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability/insights","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/analytics/quickstart","title":"Getting Started","summary":"Vercel Web Analytics provides you detailed insights into your website's visitors. This quickstart guide will help you get started with using Analytics on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/analytics/custom-events"},{"site":"vercel-docs","path":"/docs/analytics/filtering"},{"site":"vercel-docs","path":"/docs/analytics/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/analytics/package"},{"site":"vercel-docs","path":"/docs/analytics/privacy-policy"},{"site":"vercel-docs","path":"/docs/analytics/redacting-sensitive-data"},{"site":"vercel-docs","path":"/docs/analytics/troubleshooting"},{"site":"vercel-docs","path":"/docs/analytics/using-web-analytics"},{"site":"vercel-docs","path":"/docs/git"}],"inbound":[{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/analytics/custom-events"},{"site":"vercel-docs","path":"/docs/analytics/filtering"},{"site":"vercel-docs","path":"/docs/analytics/package"},{"site":"vercel-docs","path":"/docs/analytics/privacy-policy"},{"site":"vercel-docs","path":"/docs/analytics/troubleshooting"},{"site":"vercel-docs","path":"/docs/analytics/web-analytics-api"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/astro"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/create-react-app"}],"requires":[{"site":"vercel-docs","path":"/docs/analytics"}],"neighbors":[{"site":"vercel-docs","path":"/docs/speed-insights/quickstart","distance":0.1296},{"site":"vercel-docs","path":"/docs/analytics/using-web-analytics","distance":0.1486},{"site":"vercel-docs","path":"/docs/analytics/troubleshooting","distance":0.2035},{"site":"vercel-docs","path":"/docs/frameworks/frontend/create-react-app","distance":0.2079},{"site":"vercel-docs","path":"/docs/analytics","distance":0.2192}],"related":[{"site":"vercel-shop","path":"/docs/skills/enable-analytics","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-bigcommerce-storefront-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/create-react-app","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/quickstart","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/analytics/redacting-sensitive-data","title":"Redacting Sensitive Data","summary":"Learn how to redact sensitive data from your Web Analytics events.","outbound":[{"site":"vercel-docs","path":"/docs/analytics/package"}],"inbound":[{"site":"vercel-docs","path":"/docs/analytics/package"},{"site":"vercel-docs","path":"/docs/analytics/privacy-policy"},{"site":"vercel-docs","path":"/docs/analytics/quickstart"}],"requires":[{"site":"vercel-docs","path":"/docs/analytics"}],"neighbors":[{"site":"vercel-docs","path":"/docs/analytics/package","distance":0.0953},{"site":"vercel-docs","path":"/docs/analytics/quickstart","distance":0.2842},{"site":"vercel-docs","path":"/docs/analytics/custom-events","distance":0.2867},{"site":"vercel-docs","path":"/docs/frameworks/frontend/react-router","distance":0.2878},{"site":"vercel-docs","path":"/docs/botid/get-started","distance":0.2908}],"related":[{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nuxt-imgur-clone","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/third-party-libraries","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/run-claude-managed-agent-tools-with-vercel-sandbox","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/third-party-libraries","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/custom-events","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/react-router","via":"neighbor"},{"site":"vercel-docs","path":"/docs/botid/get-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/remix","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/analytics/troubleshooting","title":"Troubleshooting","summary":"Learn how to troubleshoot common issues with Vercel Web Analytics.","outbound":[{"site":"vercel-docs","path":"/docs/analytics/quickstart"}],"inbound":[{"site":"vercel-docs","path":"/docs/analytics/quickstart"}],"requires":[{"site":"vercel-docs","path":"/docs/analytics"}],"neighbors":[{"site":"vercel-docs","path":"/docs/analytics/using-web-analytics","distance":0.1851},{"site":"vercel-docs","path":"/docs/analytics/quickstart","distance":0.2035},{"site":"vercel-docs","path":"/docs/speed-insights/troubleshooting","distance":0.2218},{"site":"vercel-docs","path":"/docs/analytics/privacy-policy","distance":0.2609},{"site":"vercel-docs","path":"/docs/analytics","distance":0.2735}],"related":[{"site":"vercel-docs","path":"/docs/analytics/using-web-analytics","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/troubleshooting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/privacy-policy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/accessing-metrics-with-vercel-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/filtering","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/analytics/using-web-analytics","title":"Using Web Analytics","summary":"Learn how to use Vercel's Web Analytics to understand how visitors are using your website.","outbound":[{"site":"vercel-docs","path":"/docs/analytics/filtering"},{"site":"vercel-docs","path":"/docs/analytics/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/analytics/web-analytics-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/analytics/quickstart"},{"site":"vercel-docs","path":"/docs/speed-insights/using-speed-insights"}],"requires":[{"site":"vercel-docs","path":"/docs/analytics"}],"neighbors":[{"site":"vercel-docs","path":"/docs/analytics/quickstart","distance":0.1486},{"site":"vercel-docs","path":"/docs/analytics","distance":0.1549},{"site":"vercel-docs","path":"/docs/analytics/troubleshooting","distance":0.1851},{"site":"vercel-docs","path":"/docs/analytics/filtering","distance":0.2034},{"site":"vercel-docs","path":"/docs/analytics/accessing-metrics-with-vercel-cli","distance":0.2062}],"related":[{"site":"vercel-docs","path":"/docs/analytics/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/troubleshooting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/accessing-metrics-with-vercel-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/privacy-policy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/analytics/web-analytics-api","title":"Web Analytics API","summary":"Learn how Web Analytics concepts map to API queries for custom reports, dashboards, and insights.","outbound":[{"site":"vercel-docs","path":"/docs/analytics/custom-events"},{"site":"vercel-docs","path":"/docs/analytics/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/analytics/quickstart"},{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/aggregates-custom-events"},{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/aggregates-page-views"},{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/counts-custom-events"},{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/counts-page-views"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools"},{"site":"vercel-docs","path":"/docs/analytics/using-web-analytics"}],"requires":[{"site":"vercel-docs","path":"/docs/analytics"}],"neighbors":[{"site":"vercel-docs","path":"/docs/analytics/accessing-metrics-with-vercel-cli","distance":0.2039},{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/aggregates-page-views","distance":0.2041},{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/aggregates-custom-events","distance":0.2164},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools","distance":0.2228},{"site":"vercel-docs","path":"/docs/query","distance":0.2364}],"related":[{"site":"vercel-docs","path":"/docs/analytics/accessing-metrics-with-vercel-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools","via":"neighbor"},{"site":"vercel-docs","path":"/docs/query","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/using-web-analytics","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/metrics","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/audit-log","title":"Audit Logs","summary":"Learn how to track and analyze your team members' activities.","outbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/cli/alias"},{"site":"vercel-docs","path":"/docs/cli/certs"},{"site":"vercel-docs","path":"/docs/deploy-hooks"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/password-protection"},{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/deployments/generated-urls"},{"site":"vercel-docs","path":"/docs/domains"},{"site":"vercel-docs","path":"/docs/environment-variables/shared-environment-variables"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/projects"},{"site":"vercel-docs","path":"/docs/rbac"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"},{"site":"vercel-docs","path":"/docs/rbac/managing-team-members"},{"site":"vercel-docs","path":"/docs/rolling-releases"},{"site":"vercel-docs","path":"/docs/saml"}],"inbound":[{"site":"vercel-docs","path":"/docs/activity-log"},{"site":"vercel-docs","path":"/docs/audit-log/migrating-to-drains"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-s3"},{"site":"vercel-docs","path":"/docs/drains/reference/audit-logs"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/create-react-app"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/logs"},{"site":"vercel-docs","path":"/docs/passport"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/production-checklist"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"},{"site":"vercel-kb","path":"/kb/guide/hipaa-compliance-guide-vercel"},{"site":"workflow","path":"/docs/how-it-works/encryption"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","distance":0.2329},{"site":"vercel-docs","path":"/docs/cli","distance":0.2412},{"site":"vercel-docs","path":"/docs/environment-variables/system-environment-variables","distance":0.2521},{"site":"vercel-docs","path":"/docs/cli/project","distance":0.2524},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket","distance":0.2787}],"related":[{"site":"vercel-kb","path":"/kb/guide/hipaa-compliance-guide-vercel","via":"inbound"},{"site":"workflow","path":"/docs/how-it-works/encryption","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/system-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/audit-log/migrating-to-drains","title":"Migrating from SIEM","summary":"Move your SIEM integration from Custom SIEM Log Streaming to Audit Log Drains, with wider event coverage and a new event schema.","outbound":[{"site":"vercel-docs","path":"/docs/activity-log"},{"site":"vercel-docs","path":"/docs/audit-log"},{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-datadog"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-panther"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-s3"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-splunk"},{"site":"vercel-docs","path":"/docs/drains/reference/audit-logs"},{"site":"vercel-docs","path":"/docs/drains/security"},{"site":"vercel-docs","path":"/docs/drains/using-drains"},{"site":"vercel-docs","path":"/docs/plans/enterprise"}],"inbound":[{"site":"vercel-docs","path":"/docs/drains/reference/audit-logs"}],"requires":[{"site":"vercel-docs","path":"/docs/audit-log"}],"neighbors":[{"site":"vercel-docs","path":"/docs/drains/reference/audit-logs","distance":0.1287},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-datadog","distance":0.141},{"site":"vercel-docs","path":"/docs/drains/using-drains","distance":0.1506},{"site":"vercel-docs","path":"/docs/drains","distance":0.1564},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-s3","distance":0.1812}],"related":[{"site":"vercel-docs","path":"/docs/drains/reference/analytics","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/reference/traces","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/creates-a-new-integration-log-drain-deprecated","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/trace-drains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/retrieves-a-configurable-log-drain-deprecated","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/bot-management","title":"Bot Management","summary":"Learn how to manage bot traffic to your site.","outbound":[{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/security/reverse-proxy"},{"site":"vercel-docs","path":"/docs/vercel-firewall/attack-mode"},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-concepts"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-observability"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/managed-rulesets"}],"inbound":[{"site":"vercel-docs","path":"/docs/botid/verified-bots"},{"site":"vercel-docs","path":"/docs/cdn-security"},{"site":"vercel-docs","path":"/docs/cli/firewall"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works"},{"site":"vercel-docs","path":"/docs/products"},{"site":"vercel-docs","path":"/docs/vercel-firewall/attack-mode"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/managed-rulesets"},{"site":"vercel-kb","path":"/kb/guide/black-friday-preparation"},{"site":"vercel-kb","path":"/kb/guide/cloudflare-with-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-effectively-load-test-your-vercel-application"},{"site":"vercel-kb","path":"/kb/guide/how-to-protect-your-ai-app-from-bots"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-render"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","distance":0.126},{"site":"vercel-kb","path":"/kb/guide/how-to-protect-your-ai-app-from-bots","distance":0.1668},{"site":"vercel-docs","path":"/docs/botid","distance":0.1972},{"site":"vercel-kb","path":"/kb/guide/protect-ai-endpoints-with-vercel-botid","distance":0.1983},{"site":"vercel-kb","path":"/kb/guide/how-to-block-bots-openai-gptbot","distance":0.2167}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/black-friday-preparation","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/cloudflare-with-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-effectively-load-test-your-vercel-application","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-protect-your-ai-app-from-bots","via":"inbound"},{"site":"vercel-docs","path":"/docs/botid","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security","via":"inbound"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation","via":"inbound"},{"site":"vercel-docs","path":"/docs/glossary","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/botid","title":"BotID","summary":"Protect your applications from automated attacks with intelligent bot detection and verification, powered by Kasada.","outbound":[{"site":"vercel-docs","path":"/docs/botid/advanced-configuration"},{"site":"vercel-docs","path":"/docs/botid/form-submissions"},{"site":"vercel-docs","path":"/docs/botid/get-started"},{"site":"vercel-docs","path":"/docs/botid/local-development-behavior"},{"site":"vercel-docs","path":"/docs/botid/verified-bots"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-concepts"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-observability"}],"inbound":[{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/products"},{"site":"vercel-kb","path":"/kb/guide/application-authentication-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app"},{"site":"vercel-kb","path":"/kb/guide/how-to-effectively-load-test-your-vercel-application"},{"site":"vercel-kb","path":"/kb/guide/how-to-protect-your-ai-app-from-bots"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features"},{"site":"vercel-kb","path":"/kb/guide/protect-ai-endpoints-with-vercel-botid"},{"site":"vercel-kb","path":"/kb/guide/vercel-botid-vs-cloudflare-turnstile"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway"},{"site":"vercel-shop","path":"/docs/anatomy/agent"},{"site":"vercel-shop","path":"/docs/anatomy/proxy"},{"site":"vercel-shop","path":"/docs/reference/shop-config"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/protect-ai-endpoints-with-vercel-botid","distance":0.1149},{"site":"vercel-kb","path":"/kb/guide/deploying-and-testing-botid","distance":0.1379},{"site":"vercel-kb","path":"/kb/guide/vercel-botid-vs-cloudflare-turnstile","distance":0.1825},{"site":"vercel-docs","path":"/docs/botid/advanced-configuration","distance":0.1853},{"site":"vercel-docs","path":"/docs/bot-management","distance":0.1972}],"related":[{"site":"vercel-kb","path":"/kb/guide/protect-ai-endpoints-with-vercel-botid","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-and-testing-botid","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/application-authentication-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-effectively-load-test-your-vercel-application","via":"inbound"},{"site":"vercel-shop","path":"/docs/anatomy/agent","via":"inbound"},{"site":"vercel-shop","path":"/docs/anatomy/proxy","via":"inbound"},{"site":"vercel-shop","path":"/docs/reference/shop-config","via":"inbound"},{"site":"vercel-docs","path":"/docs/bot-management","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/attack-mode","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/automated-agent-access","via":"neighbor"},{"site":"vercel-docs","path":"/docs/production-checklist","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/botid/advanced-configuration","title":"Advanced BotID Configuration","summary":"Fine-grained control over BotID detection levels and backend domain configuration","outbound":[{"site":"nextjs","path":"/docs/pages/building-your-application/routing/api-routes"}],"inbound":[{"site":"vercel-docs","path":"/docs/botid"},{"site":"vercel-kb","path":"/kb/guide/protect-ai-endpoints-with-vercel-botid"}],"requires":[{"site":"vercel-docs","path":"/docs/botid"}],"neighbors":[{"site":"vercel-docs","path":"/docs/botid","distance":0.1853},{"site":"vercel-kb","path":"/kb/guide/protect-ai-endpoints-with-vercel-botid","distance":0.1883},{"site":"vercel-docs","path":"/docs/botid/get-started","distance":0.201},{"site":"vercel-kb","path":"/kb/guide/deploying-and-testing-botid","distance":0.2191},{"site":"vercel-docs","path":"/docs/botid/verified-bots","distance":0.2571}],"related":[{"site":"vercel-kb","path":"/kb/guide/protect-ai-endpoints-with-vercel-botid","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/deploying-and-testing-botid","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-botid-vs-cloudflare-turnstile","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-protect-your-ai-app-from-bots","via":"neighbor"},{"site":"vercel-docs","path":"/docs/botid/get-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/attack-mode","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/automated-agent-access","via":"neighbor"},{"site":"vercel-docs","path":"/docs/oidc/api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/advanced-node-configuration","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/botid/form-submissions","title":"Form Submissions","summary":"How to properly handle form submissions with BotID protection","outbound":[{"site":"nextjs","path":"/docs/app/guides/forms"}],"inbound":[{"site":"vercel-docs","path":"/docs/botid"},{"site":"vercel-kb","path":"/kb/guide/webflow-vercel-drop"}],"requires":[{"site":"vercel-docs","path":"/docs/botid"}],"neighbors":[{"site":"vercel-docs","path":"/docs/botid/get-started","distance":0.2939},{"site":"vercel-kb","path":"/kb/guide/triage-form-submissions-with-chat-sdk","distance":0.3309},{"site":"vercel-docs","path":"/docs/botid/advanced-configuration","distance":0.3458},{"site":"vercel-docs","path":"/docs/botid","distance":0.3484},{"site":"vercel-kb","path":"/kb/guide/deploying-react-forms-using-formspree-with-vercel","distance":0.36}],"related":[{"site":"vercel-kb","path":"/kb/guide/webflow-vercel-drop","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/triage-form-submissions-with-chat-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-react-forms-using-formspree-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-sveltekit-form-actions","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/forms","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/components/form","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-and-testing-botid","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/components/form","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/formspree","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/botid/get-started","title":"Get Started with BotID","summary":"Step-by-step guide to setting up BotID protection in your Vercel project","outbound":[{"site":"vercel-docs","path":"/docs/projects/managing-projects"}],"inbound":[{"site":"vercel-docs","path":"/docs/botid"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features"},{"site":"vercel-kb","path":"/kb/guide/protect-ai-endpoints-with-vercel-botid"},{"site":"vercel-kb","path":"/kb/guide/vercel-botid-vs-cloudflare-turnstile"}],"requires":[{"site":"vercel-docs","path":"/docs/botid"}],"neighbors":[{"site":"vercel-docs","path":"/docs/botid/advanced-configuration","distance":0.201},{"site":"vercel-kb","path":"/kb/guide/protect-ai-endpoints-with-vercel-botid","distance":0.2272},{"site":"vercel-kb","path":"/kb/guide/deploying-and-testing-botid","distance":0.2312},{"site":"vercel-docs","path":"/docs/botid","distance":0.2551},{"site":"vercel-docs","path":"/docs/vercel-blob/client-upload","distance":0.2754}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/protect-ai-endpoints-with-vercel-botid","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-botid-vs-cloudflare-turnstile","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/deploying-and-testing-botid","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/client-upload","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/react-router","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/redacting-sensitive-data","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/botid/local-development-behavior","title":"Local Development Behavior","summary":"How BotID behaves in local development environments and testing options","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/botid"},{"site":"vercel-kb","path":"/kb/guide/protect-ai-endpoints-with-vercel-botid"}],"requires":[{"site":"vercel-docs","path":"/docs/botid"}],"neighbors":[{"site":"vercel-docs","path":"/docs/botid/advanced-configuration","distance":0.2589},{"site":"vercel-docs","path":"/docs/botid","distance":0.2781},{"site":"vercel-kb","path":"/kb/guide/deploying-and-testing-botid","distance":0.2861},{"site":"vercel-kb","path":"/kb/guide/protect-ai-endpoints-with-vercel-botid","distance":0.3049},{"site":"vercel-docs","path":"/docs/botid/get-started","distance":0.3108}],"related":[{"site":"vercel-kb","path":"/kb/guide/protect-ai-endpoints-with-vercel-botid","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/deploying-and-testing-botid","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/test-slack-bot-with-vercel-preview-deployment","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-botid-vs-cloudflare-turnstile","via":"neighbor"},{"site":"vercel-docs","path":"/docs/botid/advanced-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/dev","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/local-development","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/botid/verified-bots","title":"Handling Verified Bots","summary":"Information about verified bots and their handling in BotID","outbound":[{"site":"vercel-docs","path":"/docs/bot-management"}],"inbound":[{"site":"vercel-docs","path":"/docs/botid"},{"site":"vercel-kb","path":"/kb/guide/protect-ai-endpoints-with-vercel-botid"}],"requires":[{"site":"vercel-docs","path":"/docs/botid"}],"neighbors":[{"site":"vercel-docs","path":"/docs/botid","distance":0.219},{"site":"vercel-kb","path":"/kb/guide/protect-ai-endpoints-with-vercel-botid","distance":0.2247},{"site":"vercel-docs","path":"/docs/bot-management","distance":0.2404},{"site":"vercel-kb","path":"/kb/guide/deploying-and-testing-botid","distance":0.2477},{"site":"vercel-docs","path":"/docs/botid/advanced-configuration","distance":0.2571}],"related":[{"site":"vercel-kb","path":"/kb/guide/protect-ai-endpoints-with-vercel-botid","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/deploying-and-testing-botid","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-protect-your-ai-app-from-bots","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-botid-vs-cloudflare-turnstile","via":"neighbor"},{"site":"chat-sdk","path":"/docs/vercel-connect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/build-output-api","title":"Build Output API","summary":"The Build Output API is a file-system-based specification for a directory structure that can produce a Vercel deployment.","outbound":[{"site":"vercel-docs","path":"/docs/build-output-api/configuration"},{"site":"vercel-docs","path":"/docs/build-output-api/features"},{"site":"vercel-docs","path":"/docs/build-output-api/primitives"},{"site":"vercel-docs","path":"/docs/build-output-api/services"},{"site":"vercel-docs","path":"/docs/builds/build-image"}],"inbound":[{"site":"vercel-docs","path":"/docs/builds/build-features"},{"site":"vercel-docs","path":"/docs/cli/build"},{"site":"vercel-docs","path":"/docs/cli/deploy"},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli"},{"site":"vercel-docs","path":"/docs/draft-mode"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/fundamentals/builds"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/quickstart"},{"site":"vercel-docs","path":"/docs/limits"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/fundamentals/builds","distance":0.2113},{"site":"vercel-docs","path":"/docs/frameworks","distance":0.2137},{"site":"vercel-docs","path":"/docs/cli/build","distance":0.219},{"site":"vercel-docs","path":"/docs/build-output-api/features","distance":0.2608},{"site":"vercel-docs","path":"/docs/builds/configure-a-build","distance":0.2657}],"related":[{"site":"vercel-docs","path":"/docs/fundamentals/builds","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/build","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds/configure-a-build","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/build-output-api/configuration","title":"Build Output Configuration","summary":"Learn about the Build Output Configuration file, which is used to configure the behavior of a Deployment.","outbound":[{"site":"vercel-docs","path":"/docs/build-output-api/primitives"},{"site":"vercel-docs","path":"/docs/build-output-api/services"},{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/domains"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-docs","path":"/docs/services/bindings"}],"inbound":[{"site":"vercel-docs","path":"/docs/build-output-api"},{"site":"vercel-docs","path":"/docs/build-output-api/features"},{"site":"vercel-docs","path":"/docs/build-output-api/primitives"},{"site":"vercel-docs","path":"/docs/build-output-api/services"},{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/astro"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/image-optimization/quickstart"},{"site":"vercel-docs","path":"/docs/limits"}],"requires":[{"site":"vercel-docs","path":"/docs/build-output-api"}],"neighbors":[{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json","distance":0.229},{"site":"vercel-docs","path":"/docs/image-optimization","distance":0.2643},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts","distance":0.2839},{"site":"vercel-docs","path":"/docs/build-output-api/features","distance":0.2852},{"site":"vercel-docs","path":"/docs/image-optimization/quickstart","distance":0.3108}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/components/image","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/components/image-legacy","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/components/image","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/build-output-api/features","via":"neighbor"},{"site":"vercel-docs","path":"/docs/og-image-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/blob","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/build-output-api/features","title":"Features","summary":"Learn how to implement common Vercel platform features through the Build Output API.","outbound":[{"site":"vercel-docs","path":"/docs/build-output-api/configuration"},{"site":"vercel-docs","path":"/docs/build-output-api/primitives"},{"site":"vercel-docs","path":"/docs/build-output-api/services"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/services/routing"}],"inbound":[{"site":"vercel-docs","path":"/docs/build-output-api"},{"site":"vercel-docs","path":"/docs/caching/cache-status"}],"requires":[{"site":"vercel-docs","path":"/docs/build-output-api"}],"neighbors":[{"site":"vercel-docs","path":"/docs/routing","distance":0.2191},{"site":"vercel-docs","path":"/docs/fundamentals/builds","distance":0.227},{"site":"vercel-docs","path":"/docs/build-output-api/primitives","distance":0.2352},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/advanced-configuration","distance":0.2468},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","distance":0.247}],"related":[{"site":"vercel-docs","path":"/docs/routing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/builds","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/advanced-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/build-output-api/primitives","title":"Vercel Primitives","summary":"Learn about the Vercel platform primitives and how they work together to create a Vercel Deployment.","outbound":[{"site":"vercel-docs","path":"/docs/build-output-api/configuration"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/draft-mode"},{"site":"vercel-docs","path":"/docs/environment-variables/system-environment-variables"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/functions/runtimes/wasm"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-docs","path":"/docs/skew-protection"}],"inbound":[{"site":"vercel-docs","path":"/docs/build-output-api"},{"site":"vercel-docs","path":"/docs/build-output-api/configuration"},{"site":"vercel-docs","path":"/docs/build-output-api/features"},{"site":"vercel-docs","path":"/docs/draft-mode"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"}],"requires":[{"site":"vercel-docs","path":"/docs/build-output-api"}],"neighbors":[{"site":"vercel-docs","path":"/docs/build-output-api/features","distance":0.2352},{"site":"vercel-docs","path":"/docs/functions/runtimes","distance":0.2481},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/advanced-configuration","distance":0.2687},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","distance":0.273},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json","distance":0.2768}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-files-in-serverless-functions","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-netlify","via":"neighbor"},{"site":"vercel-docs","path":"/docs/build-output-api/features","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/advanced-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/build-output-api/services","title":"Services","summary":"Learn how a deployment with multiple services is structured in the Build Output API.","outbound":[{"site":"vercel-docs","path":"/docs/build-output-api/configuration"},{"site":"vercel-docs","path":"/docs/services"},{"site":"vercel-docs","path":"/docs/services/bindings"},{"site":"vercel-docs","path":"/docs/services/routing"}],"inbound":[{"site":"vercel-docs","path":"/docs/build-output-api"},{"site":"vercel-docs","path":"/docs/build-output-api/configuration"},{"site":"vercel-docs","path":"/docs/build-output-api/features"}],"requires":[{"site":"vercel-docs","path":"/docs/build-output-api"}],"neighbors":[{"site":"vercel-docs","path":"/docs/services","distance":0.1272},{"site":"vercel-docs","path":"/docs/services/routing","distance":0.1853},{"site":"vercel-kb","path":"/kb/guide/vercel-services","distance":0.2104},{"site":"vercel-docs","path":"/docs/services/config-reference","distance":0.2195},{"site":"vercel-docs","path":"/docs/services/experimental","distance":0.2231}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-services","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/docker-compose-concepts-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/full-stack-preview-deployments-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/structure-your-application","via":"neighbor"},{"site":"vercel-docs","path":"/docs/services/config-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/services/experimental","via":"neighbor"},{"site":"vercel-docs","path":"/docs/build-output-api/features","via":"neighbor"},{"site":"vercel-docs","path":"/docs/products","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/builds","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/builds","title":"Builds","summary":"Understand how the build step works when creating a Vercel Deployment.","outbound":[{"site":"vercel-docs","path":"/docs/builds/build-features"},{"site":"vercel-docs","path":"/docs/builds/build-image"},{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/builds/managing-builds"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/monorepos"},{"site":"vercel-docs","path":"/docs/monorepos/nx"},{"site":"vercel-docs","path":"/docs/monorepos/turborepo"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"}],"inbound":[{"site":"vercel-docs","path":"/docs/builds/build-image"},{"site":"vercel-docs","path":"/docs/fundamentals/builds"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure"},{"site":"vercel-docs","path":"/docs/fundamentals/what-is-compute"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/observability/insights"},{"site":"vercel-docs","path":"/docs/package-managers"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-reduce-my-build-time-with-next-js-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-allowlist-deployment-ip-address"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/fundamentals/builds","distance":0.1271},{"site":"vercel-docs","path":"/docs/builds/managing-builds","distance":0.1527},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","distance":0.1586},{"site":"vercel-docs","path":"/docs/deployments","distance":0.1722},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","distance":0.198}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-reduce-my-build-time-with-next-js-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-allowlist-deployment-ip-address","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/why-are-my-vercel-builds-queued","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/builds","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/build","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/builds/build-features","title":"Build Features","summary":"Learn how to customize your deployments using Vercel's build features.","outbound":[{"site":"vercel-docs","path":"/docs/build-output-api"},{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-kb","path":"/kb/guide/using-private-dependencies-with-vercel"}],"inbound":[{"site":"vercel-docs","path":"/docs/builds"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts"}],"requires":[{"site":"vercel-docs","path":"/docs/builds"}],"neighbors":[{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","distance":0.2004},{"site":"vercel-docs","path":"/docs/builds","distance":0.2038},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket","distance":0.2069},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","distance":0.2079},{"site":"vercel-docs","path":"/docs/deployments","distance":0.2125}],"related":[{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploy","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/builds/build-image","title":"Build Image","summary":"Learn about the container image used for Vercel builds.","outbound":[{"site":"vercel-docs","path":"/docs/builds"},{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/functions/runtimes/edge"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js"},{"site":"vercel-docs","path":"/docs/functions/runtimes/python"},{"site":"vercel-docs","path":"/docs/functions/runtimes/ruby"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"}],"inbound":[{"site":"vercel-docs","path":"/docs/build-output-api"},{"site":"vercel-docs","path":"/docs/builds"},{"site":"vercel-docs","path":"/docs/fundamentals/builds"}],"requires":[{"site":"vercel-docs","path":"/docs/builds"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/build","distance":0.246},{"site":"vercel-docs","path":"/docs/builds","distance":0.251},{"site":"vercel-docs","path":"/docs/fundamentals/builds","distance":0.2664},{"site":"vercel-docs","path":"/docs/container-registry/getting-started","distance":0.2748},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments","distance":0.277}],"related":[{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/build","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/builds","via":"neighbor"},{"site":"vercel-docs","path":"/docs/container-registry/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/build-output-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/vcr","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/builds/build-queues","title":"Build Queues","summary":"Understand how concurrency and same branch build queues manage multiple simultaneous deployments.","outbound":[{"site":"vercel-docs","path":"/docs/builds/managing-builds"},{"site":"vercel-docs","path":"/docs/pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/builds/managing-builds"},{"site":"vercel-docs","path":"/docs/fundamentals/builds"}],"requires":[{"site":"vercel-docs","path":"/docs/builds"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/why-are-my-vercel-builds-queued","distance":0.1244},{"site":"vercel-docs","path":"/docs/builds/managing-builds","distance":0.2265},{"site":"vercel-docs","path":"/docs/queues","distance":0.2408},{"site":"vercel-docs","path":"/docs/builds","distance":0.2442},{"site":"vercel-docs","path":"/docs/fundamentals/builds","distance":0.3035}],"related":[{"site":"vercel-kb","path":"/kb/guide/why-are-my-vercel-builds-queued","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-aren-t-commits-triggering-deployments-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/builds","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/build","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/builds/configure-a-build","title":"Configuring a Build","summary":"Vercel automatically configures the build settings for many front-end frameworks, but you can also customize the build according to your requirements.","outbound":[{"site":"vercel-docs","path":"/docs/builds/managing-builds"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/node-js-versions"},{"site":"vercel-docs","path":"/docs/monorepos"},{"site":"vercel-docs","path":"/docs/package-managers"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"}],"inbound":[{"site":"vercel-docs","path":"/docs/builds"},{"site":"vercel-docs","path":"/docs/builds/build-features"},{"site":"vercel-docs","path":"/docs/builds/build-image"},{"site":"vercel-docs","path":"/docs/cli/deploy"},{"site":"vercel-docs","path":"/docs/cli/dev"},{"site":"vercel-docs","path":"/docs/deploy-hooks"},{"site":"vercel-docs","path":"/docs/deployments/logs"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build"},{"site":"vercel-docs","path":"/docs/drains/reference/logs"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/environment-variables/framework-environment-variables"},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"},{"site":"vercel-docs","path":"/docs/functions/runtimes/go"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js"},{"site":"vercel-docs","path":"/docs/fundamentals/builds"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/microfrontends/configuration"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends"},{"site":"vercel-docs","path":"/docs/monorepos"},{"site":"vercel-docs","path":"/docs/monorepos/nx"},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching"},{"site":"vercel-docs","path":"/docs/monorepos/turborepo"},{"site":"vercel-docs","path":"/docs/package-managers"},{"site":"vercel-docs","path":"/docs/project-configuration/general-settings"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts"},{"site":"vercel-docs","path":"/docs/projects/managing-projects"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-yarn-2"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-yarn-3"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-yarn-4"},{"site":"vercel-kb","path":"/kb/guide/how-to-pin-a-specific-bun-version-for-vercel-builds"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare"}],"requires":[{"site":"vercel-docs","path":"/docs/builds"}],"neighbors":[{"site":"vercel-docs","path":"/docs/frameworks","distance":0.2257},{"site":"vercel-docs","path":"/docs/fundamentals/builds","distance":0.2578},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks","distance":0.2638},{"site":"vercel-docs","path":"/docs/builds","distance":0.2649},{"site":"vercel-docs","path":"/docs/build-output-api","distance":0.2657}],"related":[{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-yarn-2","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-yarn-3","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-yarn-4","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-pin-a-specific-bun-version-for-vercel-builds","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare","via":"inbound"},{"site":"vercel-docs","path":"/docs/frameworks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/build-output-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploy","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/builds/managing-builds","title":"Managing Builds","summary":"Vercel allows you to increase the speed of your builds when needed in specific situations and workflows.","outbound":[{"site":"vercel-docs","path":"/docs/builds/build-queues"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js"},{"site":"vercel-docs","path":"/docs/plans/hobby"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"},{"site":"vercel-docs","path":"/docs/projects"},{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/builds"},{"site":"vercel-docs","path":"/docs/builds/build-queues"},{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build"},{"site":"vercel-docs","path":"/docs/fundamentals/builds"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/limits/fair-use-guidelines"},{"site":"vercel-docs","path":"/docs/monorepos"},{"site":"vercel-docs","path":"/docs/monorepos/monorepo-faq"},{"site":"vercel-docs","path":"/docs/plans/hobby"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"},{"site":"vercel-docs","path":"/docs/projects/transferring-projects"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-reduce-my-build-time-with-next-js-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-build-error-build-step-did-not-complete-within-45-minutes"}],"requires":[{"site":"vercel-docs","path":"/docs/builds"}],"neighbors":[{"site":"vercel-docs","path":"/docs/builds","distance":0.1527},{"site":"vercel-kb","path":"/kb/guide/why-are-my-vercel-builds-queued","distance":0.1879},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","distance":0.2132},{"site":"vercel-docs","path":"/docs/builds/build-queues","distance":0.2265},{"site":"vercel-docs","path":"/docs/fundamentals/builds","distance":0.2432}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-reduce-my-build-time-with-next-js-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-build-error-build-step-did-not-complete-within-45-minutes","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/why-are-my-vercel-builds-queued","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-aren-t-commits-triggering-deployments-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/builds","via":"neighbor"},{"site":"vercel-docs","path":"/docs/limits","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds/configure-a-build","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/caching","title":"Caching","summary":"Learn how Vercel caches content across multiple layers to deliver fast responses and reduce load on your backend.","outbound":[{"site":"vercel-docs","path":"/docs/caching/cache-control-headers"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/request-collapsing"}],"inbound":[{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute"},{"site":"vercel-kb","path":"/kb/guide/vercel-reverse-proxy-rewrites-external"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works","distance":0.164},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","distance":0.196},{"site":"vercel-docs","path":"/docs/cdn","distance":0.197},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration","distance":0.2323},{"site":"vercel-docs","path":"/docs/caching/runtime-cache","distance":0.2406}],"related":[{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-reverse-proxy-rewrites-external","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/set-cache-control-headers","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-cache-tags-for-external-origins","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/share-vercel-cache-across-deployments-nextjs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-sdk-python","via":"neighbor"},{"site":"vercel-docs","path":"/docs/glossary","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/caching/cache-control-headers","title":"Cache-Control Headers","summary":"Learn about the cache-control headers sent to each Vercel deployment and how to use them to control the caching behavior of your application.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/headers"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"}],"inbound":[{"site":"vercel-docs","path":"/docs/caching"},{"site":"vercel-docs","path":"/docs/caching/cache-status"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/cdn-security/encryption"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/astro"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure"},{"site":"vercel-docs","path":"/docs/headers"},{"site":"vercel-docs","path":"/docs/headers/response-headers"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/request-collapsing"},{"site":"vercel-docs","path":"/docs/routing/rewrites"},{"site":"vercel-docs","path":"/docs/vercel-blob/private-storage"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/managing-toolbar"}],"requires":[{"site":"vercel-docs","path":"/docs/caching"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/set-cache-control-headers","distance":0.1379},{"site":"vercel-docs","path":"/docs/caching/cdn-cache","distance":0.1634},{"site":"vercel-docs","path":"/docs/headers/response-headers","distance":0.1956},{"site":"vercel-kb","path":"/kb/guide/how-to-configure-the-cache-control-response-header-in-vercel-projects","distance":0.2145},{"site":"vercel-docs","path":"/docs/headers","distance":0.2288}],"related":[{"site":"vercel-kb","path":"/kb/guide/set-cache-control-headers","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-configure-the-cache-control-response-header-in-vercel-projects","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-cache-tags-for-external-origins","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/headers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/headers/response-headers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/headers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/cache-status","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/caching/cache-status","title":"Cache Status","summary":"Understand the cache status and reason shown for each request in Vercel logs, and what causes a response to miss, bypass, or serve stale from the cache.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidatePath"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths"},{"site":"vercel-docs","path":"/docs/build-output-api/features"},{"site":"vercel-docs","path":"/docs/caching/cache-control-headers"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/debug-cache-issues"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/draft-mode"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package"},{"site":"vercel-docs","path":"/docs/headers/response-headers"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/request-collapsing"},{"site":"vercel-docs","path":"/docs/logs/runtime"},{"site":"vercel-docs","path":"/docs/partial-prerendering"}],"inbound":[{"site":"vercel-docs","path":"/docs/headers/response-headers"},{"site":"vercel-docs","path":"/docs/logs/runtime"},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-revalidation-costs"},{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute"}],"requires":[{"site":"vercel-docs","path":"/docs/caching"}],"neighbors":[{"site":"vercel-docs","path":"/docs/headers/response-headers","distance":0.2284},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-revalidation-costs","distance":0.2296},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","distance":0.2338},{"site":"vercel-docs","path":"/docs/caching","distance":0.2558},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge","distance":0.2596}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-revalidation-costs","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-cache-tags-for-external-origins","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/set-cache-control-headers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/cache","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/caching/cdn-cache","title":"CDN Cache","summary":"Learn how Vercel's CDN cache stores your content across a global network to reduce latency and origin load.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"vercel-docs","path":"/docs/caching/cache-control-headers"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/headers"},{"site":"vercel-docs","path":"/docs/headers/response-headers"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching"},{"site":"vercel-docs","path":"/docs/regions"}],"inbound":[{"site":"vercel-docs","path":"/docs/caching"},{"site":"vercel-docs","path":"/docs/caching/cache-control-headers"},{"site":"vercel-docs","path":"/docs/caching/cache-status"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/debug-cache-issues"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/cli/cache"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/astro"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/create-react-app"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/logs"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure"},{"site":"vercel-docs","path":"/docs/headers/response-headers"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/image-optimization/legacy-pricing"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/request-collapsing"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/marketplace-storage"},{"site":"vercel-docs","path":"/docs/partial-prerendering"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/serving-static-files"},{"site":"vercel-docs","path":"/docs/pricing/how-does-vercel-calculate-usage-of-resources"},{"site":"vercel-docs","path":"/docs/production-checklist"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts"},{"site":"vercel-docs","path":"/docs/query/monitoring/monitoring-reference"},{"site":"vercel-docs","path":"/docs/query/reference"},{"site":"vercel-docs","path":"/docs/routing"},{"site":"vercel-docs","path":"/docs/storage"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/vercel-blob/private-storage"},{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-cache-tags-for-external-origins"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel"}],"requires":[{"site":"vercel-docs","path":"/docs/caching"}],"neighbors":[{"site":"vercel-docs","path":"/docs/caching/cache-control-headers","distance":0.1634},{"site":"vercel-kb","path":"/kb/guide/set-cache-control-headers","distance":0.2154},{"site":"vercel-kb","path":"/kb/guide/how-to-configure-the-cache-control-response-header-in-vercel-projects","distance":0.2331},{"site":"vercel-docs","path":"/docs/caching/runtime-cache","distance":0.239},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","distance":0.2642}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-manage-cache-tags-for-external-origins","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/set-cache-control-headers","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-configure-the-cache-control-response-header-in-vercel-projects","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-netlify","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing-middleware/api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/react-router","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/debug-cache-issues","title":"Debug Cache Issues","summary":"Diagnose stale content and fix CDN cache, data cache, and build cache issues using the CLI.","outbound":[{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/cli/cache"},{"site":"vercel-docs","path":"/docs/cli/httpstat"},{"site":"vercel-docs","path":"/docs/cli/inspect"},{"site":"vercel-docs","path":"/docs/cli/logs"},{"site":"vercel-docs","path":"/docs/cli/project-linking"},{"site":"vercel-docs","path":"/docs/observability/debug-production-errors"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/workflows"},{"site":"vercel-docs","path":"/docs/caching/cache-status"}],"requires":[{"site":"vercel-docs","path":"/docs/caching"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/cache","distance":0.2175},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","distance":0.2299},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge","distance":0.2301},{"site":"vercel-docs","path":"/docs/observability/debug-production-errors","distance":0.2388},{"site":"vercel-kb","path":"/kb/guide/how-to-troubleshoot-stale-content-returned-from-the-edge-network-when-using-an-external-proxy-or-cdn","distance":0.2411}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-troubleshoot-stale-content-returned-from-the-edge-network-when-using-an-external-proxy-or-cdn","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-cache-tags-for-external-origins","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-404-errors","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/debug-slow-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/cache-status","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge","title":"Purge CDN Cache","summary":"Learn how to invalidate and delete cached content on Vercel's CDN, including cache keys and manual purging options.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag"},{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/cli/cache"},{"site":"vercel-docs","path":"/docs/deployments/generated-urls"},{"site":"vercel-docs","path":"/docs/deployments/promoting-a-deployment"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/projects"},{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/invalidate-by-tag"},{"site":"vercel-docs","path":"/docs/routing/rewrites"}],"inbound":[{"site":"vercel-docs","path":"/docs/caching"},{"site":"vercel-docs","path":"/docs/caching/cache-status"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/cli/cache"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/serving-static-files"},{"site":"vercel-docs","path":"/docs/routing/rewrites"},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-revalidation-costs"}],"requires":[{"site":"vercel-docs","path":"/docs/caching"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-manage-cache-tags-for-external-origins","distance":0.1732},{"site":"vercel-docs","path":"/docs/cli/cache","distance":0.1842},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/debug-cache-issues","distance":0.2301},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","distance":0.2404},{"site":"vercel-docs","path":"/docs/caching","distance":0.2477}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-revalidation-costs","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-cache-tags-for-external-origins","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/debug-cache-issues","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/cache-status","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/caching/runtime-cache","title":"Runtime Cache","summary":"Vercel Runtime Cache is a specialized cache that stores responses from data fetches in Vercel functions","outbound":[{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"},{"site":"vercel-docs","path":"/docs/regions"}],"inbound":[{"site":"vercel-docs","path":"/docs/caching"},{"site":"vercel-docs","path":"/docs/caching/cache-status"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/cli/cache"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/backend/celery"},{"site":"vercel-docs","path":"/docs/frameworks/frontend"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack"},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-sdk-python"},{"site":"vercel-docs","path":"/docs/headers/response-headers"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/partial-prerendering"},{"site":"vercel-docs","path":"/docs/pricing/how-does-vercel-calculate-usage-of-resources"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/arn1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/bom1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cdg1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cle1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cpt1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dxb1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/fra1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/gru1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hkg1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hnd1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/iad1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/icn1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/kix1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/lhr1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/pdx1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sin1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/syd1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/yul1"},{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute"}],"requires":[{"site":"vercel-docs","path":"/docs/caching"}],"neighbors":[{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","distance":0.1738},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package","distance":0.2162},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components","distance":0.2256},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache","distance":0.235},{"site":"vercel-docs","path":"/docs/caching/cdn-cache","distance":0.239}],"related":[{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute","via":"inbound"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-cache-tags-for-external-origins","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/share-vercel-cache-across-deployments-nextjs","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/revalidating","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-sdk-python","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/cache-status","via":"inbound"},{"site":"vercel-docs","path":"/docs/cli/cache","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","title":"Data Cache","summary":"Vercel Data Cache is a specialized cache that stores responses from data fetches in Next.js App Router","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/regions"}],"inbound":[{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/marketplace-storage"}],"requires":[{"site":"vercel-docs","path":"/docs/caching"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/share-vercel-cache-across-deployments-nextjs","distance":0.1723},{"site":"vercel-docs","path":"/docs/caching/runtime-cache","distance":0.1738},{"site":"vercel-docs","path":"/docs/caching","distance":0.196},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package","distance":0.2283},{"site":"vercel-docs","path":"/docs/caching/cache-status","distance":0.2338}],"related":[{"site":"vercel-kb","path":"/kb/guide/share-vercel-cache-across-deployments-nextjs","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/revalidating","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-cache-tags-for-external-origins","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/cache-status","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/create-react-app","via":"neighbor"},{"site":"vercel-docs","path":"/docs/marketplace-storage","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/cdn","title":"Overview","summary":"Vercel's CDN is a globally distributed platform that handles routing, caching, security, and compression for every deployment.","outbound":[{"site":"vercel-docs","path":"/docs/caching"},{"site":"vercel-docs","path":"/docs/caching/cache-control-headers"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/cdn-security"},{"site":"vercel-docs","path":"/docs/cdn-security/encryption"},{"site":"vercel-docs","path":"/docs/cdn-security/security-headers"},{"site":"vercel-docs","path":"/docs/custom-error-pages"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions"},{"site":"vercel-docs","path":"/docs/headers/request-headers"},{"site":"vercel-docs","path":"/docs/headers/response-headers"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works/compression"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/quickstart"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/request-collapsing"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/routing"},{"site":"vercel-docs","path":"/docs/routing/redirects"},{"site":"vercel-docs","path":"/docs/routing/rewrites"},{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides/videos"},{"site":"vercel-docs","path":"/docs/build-output-api/primitives"},{"site":"vercel-docs","path":"/docs/builds/managing-builds"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/backend/express"},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi"},{"site":"vercel-docs","path":"/docs/frameworks/backend/flask"},{"site":"vercel-docs","path":"/docs/frameworks/backend/hono"},{"site":"vercel-docs","path":"/docs/frameworks/frontend"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/astro"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/django"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nuxt"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/vite-with-nitro"},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/fundamentals/builds"},{"site":"vercel-docs","path":"/docs/global-config/using-global-config"},{"site":"vercel-docs","path":"/docs/global-config/vercel-api"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/image-optimization/legacy-pricing"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/image-optimization/quickstart"},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/pricing/how-does-vercel-calculate-usage-of-resources"},{"site":"vercel-docs","path":"/docs/pricing/legacy"},{"site":"vercel-docs","path":"/docs/products"},{"site":"vercel-docs","path":"/docs/speed-insights/quickstart"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/vercel-blob/private-storage"},{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules"},{"site":"vercel-kb","path":"/kb/guide/a-record-and-caa-with-vercel"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-express-starter-template"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-fastapi-starter-template"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-flask-starter-template"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-hono-starter-template"},{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-reduce-my-build-time-with-next-js-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-improve-core-web-vitals"},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-flask-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-h3-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-hono-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-build-error-build-step-did-not-complete-within-45-minutes"},{"site":"vercel-kb","path":"/kb/guide/vercel-reverse-proxy-rewrites-external"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works","distance":0.085},{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","distance":0.1447},{"site":"vercel-docs","path":"/docs/cdn-security","distance":0.1723},{"site":"vercel-docs","path":"/docs/manage-cdn-usage","distance":0.1731},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","distance":0.1768}],"related":[{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/videos","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/a-record-and-caa-with-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-express-starter-template","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-fastapi-starter-template","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-flask-starter-template","via":"inbound"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/compliance","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cdn-security","title":"Security","summary":"Learn how Vercel's CDN secures every request with HTTPS, TLS, DDoS mitigation, firewall protection, and security headers.","outbound":[{"site":"vercel-docs","path":"/docs/bot-management"},{"site":"vercel-docs","path":"/docs/cdn-security/encryption"},{"site":"vercel-docs","path":"/docs/cdn-security/security-headers"},{"site":"vercel-docs","path":"/docs/headers/response-headers"},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-observability"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/managed-rulesets"}],"inbound":[{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/cdn-security/encryption","distance":0.1197},{"site":"vercel-docs","path":"/docs/security","distance":0.1657},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works","distance":0.1698},{"site":"vercel-docs","path":"/docs/cdn","distance":0.1723},{"site":"vercel-docs","path":"/docs/vercel-firewall","distance":0.2158}],"related":[{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ensuring-safe-and-effective-infrastructure-testing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/security","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cdn-security/encryption","title":"Encryption & TLS","summary":"Learn how Vercel encrypts data in transit and at rest.","outbound":[{"site":"vercel-docs","path":"/docs/caching/cache-control-headers"}],"inbound":[{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/cdn-security"},{"site":"vercel-docs","path":"/docs/plans"},{"site":"vercel-docs","path":"/docs/security"},{"site":"vercel-docs","path":"/docs/security/shared-responsibility"}],"requires":[{"site":"vercel-docs","path":"/docs/cdn-security"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cdn-security","distance":0.1197},{"site":"vercel-docs","path":"/docs/domains/working-with-ssl","distance":0.1898},{"site":"vercel-docs","path":"/docs/security","distance":0.2175},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works","distance":0.2347},{"site":"vercel-docs","path":"/docs/security/compliance","distance":0.2349}],"related":[{"site":"vercel-docs","path":"/docs/domains/working-with-ssl","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/compliance","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cdn-security/security-headers","title":"Security Headers","summary":"Learn how the Content Security Policy \\(CSP\\) offers defense against web vulnerabilities, its key features, and best practices.","outbound":[{"site":"vercel-kb","path":"/kb/guide/understanding-xss-attacks"}],"inbound":[{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/cdn-security"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works"},{"site":"vercel-docs","path":"/docs/production-checklist"}],"requires":[{"site":"vercel-docs","path":"/docs/cdn-security"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cdn-security","distance":0.2426},{"site":"vercel-docs","path":"/docs/security","distance":0.2824},{"site":"nextjs","path":"/docs/pages/guides/content-security-policy","distance":0.2937},{"site":"vercel-kb","path":"/kb/guide/understanding-xss-attacks","distance":0.2951},{"site":"nextjs","path":"/docs/app/guides/content-security-policy","distance":0.3203}],"related":[{"site":"nextjs","path":"/docs/pages/guides/content-security-policy","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/content-security-policy","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/understanding-csrf-attacks","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/enhancing-security-for-redirects-and-rewrites","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security/encryption","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/security","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/checks","title":"Checks","summary":"Vercel automatically keeps an eye on various aspects of your web application using the Checks API. Learn how to use Checks in your Vercel workflow here.","outbound":[{"site":"vercel-docs","path":"/docs/checks/checks-api"},{"site":"vercel-docs","path":"/docs/checks/creating-checks"},{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-product"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/submit-integration"},{"site":"vercel-docs","path":"/docs/speed-insights"}],"inbound":[{"site":"vercel-docs","path":"/docs/checks/creating-checks"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/deployment-integration-action"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/submit-integration"},{"site":"vercel-docs","path":"/docs/webhooks/webhooks-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/checks/checks-api","distance":0.1632},{"site":"vercel-docs","path":"/docs/checks/creating-checks","distance":0.1724},{"site":"vercel-docs","path":"/docs/deployment-checks","distance":0.2073},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/create-a-check","distance":0.2319},{"site":"vercel-docs","path":"/docs/integrations/create-integration/approval-checklist","distance":0.2589}],"related":[{"site":"vercel-docs","path":"/docs/deployment-checks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/create-a-check","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/approval-checklist","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/create-a-check-run","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/checks/checks-api","title":"Checks API","summary":"The Vercel Checks API let you create tests and assertions that run after each deployment has been built, and are powered by Vercel Integrations.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/checks"}],"requires":[{"site":"vercel-docs","path":"/docs/checks"}],"neighbors":[{"site":"vercel-docs","path":"/docs/checks","distance":0.1632},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/create-a-check","distance":0.1985},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check","distance":0.2004},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/update-a-check","distance":0.2121},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check-run","distance":0.2182}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/create-a-check","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/update-a-check","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check-run","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-all-checks-for-a-project","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/checks/creating-checks","title":"Checks Reference","summary":"Learn how to create your own Checks with Vercel Integrations. You can build your own Integration in order to register any arbitrary Check for your deployments.","outbound":[{"site":"vercel-docs","path":"/docs/checks"},{"site":"vercel-docs","path":"/docs/deployments/generated-urls"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/vercel-api-integrations"},{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-docs","path":"/docs/speed-insights"},{"site":"vercel-docs","path":"/docs/speed-insights/metrics"},{"site":"vercel-docs","path":"/docs/webhooks/webhooks-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/checks"},{"site":"vercel-docs","path":"/docs/webhooks/webhooks-api"}],"requires":[{"site":"vercel-docs","path":"/docs/checks"}],"neighbors":[{"site":"vercel-docs","path":"/docs/checks","distance":0.1724},{"site":"vercel-docs","path":"/docs/deployment-checks","distance":0.2259},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check-run","distance":0.2422},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/create-a-check","distance":0.2448},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/create-a-check-run","distance":0.2481}],"related":[{"site":"vercel-docs","path":"/docs/deployment-checks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check-run","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/create-a-check","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/create-a-check-run","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli","title":"CLI","summary":"Learn how to use the Vercel command-line interface \\(CLI\\) to manage and configure your Vercel Projects from the command line.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/cli/about-telemetry"},{"site":"vercel-docs","path":"/docs/cli/activity"},{"site":"vercel-docs","path":"/docs/cli/agent"},{"site":"vercel-docs","path":"/docs/cli/ai-gateway"},{"site":"vercel-docs","path":"/docs/cli/alerts"},{"site":"vercel-docs","path":"/docs/cli/alias"},{"site":"vercel-docs","path":"/docs/cli/api"},{"site":"vercel-docs","path":"/docs/cli/bisect"},{"site":"vercel-docs","path":"/docs/cli/blob"},{"site":"vercel-docs","path":"/docs/cli/build"},{"site":"vercel-docs","path":"/docs/cli/buy"},{"site":"vercel-docs","path":"/docs/cli/cache"},{"site":"vercel-docs","path":"/docs/cli/certs"},{"site":"vercel-docs","path":"/docs/cli/comments"},{"site":"vercel-docs","path":"/docs/cli/connect"},{"site":"vercel-docs","path":"/docs/cli/contract"},{"site":"vercel-docs","path":"/docs/cli/crons"},{"site":"vercel-docs","path":"/docs/cli/curl"},{"site":"vercel-docs","path":"/docs/cli/deploy"},{"site":"vercel-docs","path":"/docs/cli/deploy-hooks"},{"site":"vercel-docs","path":"/docs/cli/dev"},{"site":"vercel-docs","path":"/docs/cli/dns"},{"site":"vercel-docs","path":"/docs/cli/domains"},{"site":"vercel-docs","path":"/docs/cli/env"},{"site":"vercel-docs","path":"/docs/cli/firewall"},{"site":"vercel-docs","path":"/docs/cli/flags"},{"site":"vercel-docs","path":"/docs/cli/git"},{"site":"vercel-docs","path":"/docs/cli/global-config"},{"site":"vercel-docs","path":"/docs/cli/global-options"},{"site":"vercel-docs","path":"/docs/cli/guidance"},{"site":"vercel-docs","path":"/docs/cli/help"},{"site":"vercel-docs","path":"/docs/cli/httpstat"},{"site":"vercel-docs","path":"/docs/cli/init"},{"site":"vercel-docs","path":"/docs/cli/inspect"},{"site":"vercel-docs","path":"/docs/cli/install"},{"site":"vercel-docs","path":"/docs/cli/integration"},{"site":"vercel-docs","path":"/docs/cli/link"},{"site":"vercel-docs","path":"/docs/cli/list"},{"site":"vercel-docs","path":"/docs/cli/login"},{"site":"vercel-docs","path":"/docs/cli/logout"},{"site":"vercel-docs","path":"/docs/cli/logs"},{"site":"vercel-docs","path":"/docs/cli/mcp"},{"site":"vercel-docs","path":"/docs/cli/metrics"},{"site":"vercel-docs","path":"/docs/cli/microfrontends"},{"site":"vercel-docs","path":"/docs/cli/oauth-apps"},{"site":"vercel-docs","path":"/docs/cli/open"},{"site":"vercel-docs","path":"/docs/cli/project"},{"site":"vercel-docs","path":"/docs/cli/promote"},{"site":"vercel-docs","path":"/docs/cli/pull"},{"site":"vercel-docs","path":"/docs/cli/redeploy"},{"site":"vercel-docs","path":"/docs/cli/redirects"},{"site":"vercel-docs","path":"/docs/cli/remove"},{"site":"vercel-docs","path":"/docs/cli/rollback"},{"site":"vercel-docs","path":"/docs/cli/rolling-release"},{"site":"vercel-docs","path":"/docs/cli/routes"},{"site":"vercel-docs","path":"/docs/cli/sandbox"},{"site":"vercel-docs","path":"/docs/cli/security"},{"site":"vercel-docs","path":"/docs/cli/skills"},{"site":"vercel-docs","path":"/docs/cli/switch"},{"site":"vercel-docs","path":"/docs/cli/target"},{"site":"vercel-docs","path":"/docs/cli/teams"},{"site":"vercel-docs","path":"/docs/cli/telemetry"},{"site":"vercel-docs","path":"/docs/cli/tokens"},{"site":"vercel-docs","path":"/docs/cli/traces"},{"site":"vercel-docs","path":"/docs/cli/upgrade"},{"site":"vercel-docs","path":"/docs/cli/usage"},{"site":"vercel-docs","path":"/docs/cli/vcr"},{"site":"vercel-docs","path":"/docs/cli/webhooks"},{"site":"vercel-docs","path":"/docs/cli/whoami"},{"site":"vercel-docs","path":"/docs/comments"},{"site":"vercel-docs","path":"/docs/container-registry"},{"site":"vercel-docs","path":"/docs/container-registry/cli-reference"},{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/deploy-hooks"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/cli-reference"}],"inbound":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway"},{"site":"flags-sdk","path":"/docs/providers/vercel"},{"site":"v0","path":"/docs/terminal-commands"},{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/api-keys"},{"site":"vercel-docs","path":"/docs/builds"},{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/cli/comments"},{"site":"vercel-docs","path":"/docs/cli/curl"},{"site":"vercel-docs","path":"/docs/cli/httpstat"},{"site":"vercel-docs","path":"/docs/cli/open"},{"site":"vercel-docs","path":"/docs/comments/integrations"},{"site":"vercel-docs","path":"/docs/connect/quickstart"},{"site":"vercel-docs","path":"/docs/container-registry"},{"site":"vercel-docs","path":"/docs/container-registry/cli-reference"},{"site":"vercel-docs","path":"/docs/container-registry/getting-started"},{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/deployments/deployment-policy"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build"},{"site":"vercel-docs","path":"/docs/drop"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart"},{"site":"vercel-docs","path":"/docs/frameworks/backend/elysia"},{"site":"vercel-docs","path":"/docs/frameworks/backend/xmcp"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/astro"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions"},{"site":"vercel-docs","path":"/docs/fundamentals/builds"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel"},{"site":"vercel-docs","path":"/docs/global-config/get-started"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/devcycle-global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/launchdarkly-global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/split-global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/statsig-global-config"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/integrations/cms"},{"site":"vercel-docs","path":"/docs/integrations/cms/agility-cms"},{"site":"vercel-docs","path":"/docs/integrations/cms/butter-cms"},{"site":"vercel-docs","path":"/docs/integrations/cms/dato-cms"},{"site":"vercel-docs","path":"/docs/integrations/cms/formspree"},{"site":"vercel-docs","path":"/docs/integrations/cms/makeswift"},{"site":"vercel-docs","path":"/docs/integrations/cms/sanity"},{"site":"vercel-docs","path":"/docs/monorepos"},{"site":"vercel-docs","path":"/docs/products"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli"},{"site":"vercel-docs","path":"/docs/queues/quickstart"},{"site":"vercel-docs","path":"/docs/sandbox/quickstart"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/getting-started"},{"site":"vercel-docs","path":"/docs/vercel-blob/private-storage"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost/add-to-localhost"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost/add-to-production"},{"site":"vercel-kb","path":"/kb/guide/a-record-and-caa-with-vercel"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk"},{"site":"vercel-kb","path":"/kb/guide/build-a-browser-agent"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-express-starter-template"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-fastapi-starter-template"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-flask-starter-template"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-hono-starter-template"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-nitro-starter-template"},{"site":"vercel-kb","path":"/kb/guide/building-community-moderation-agents-using-ai-sdk"},{"site":"vercel-kb","path":"/kb/guide/claude-design"},{"site":"vercel-kb","path":"/kb/guide/cls-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/cost-aware-model-routing-with-ai-gateway"},{"site":"vercel-kb","path":"/kb/guide/daily-digest-bot-with-chat-sdk-and-workflow-sdk"},{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-bigcommerce-storefront-with-vercel"},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/deploy-php-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/deploying-locally-built-nextjs"},{"site":"vercel-kb","path":"/kb/guide/does-using-vercel-s-nameserver-s-lock-you-in"},{"site":"vercel-kb","path":"/kb/guide/dot-net-asp-net-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent"},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot"},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter"},{"site":"vercel-kb","path":"/kb/guide/eve-typefully-social-media-agent"},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk"},{"site":"vercel-kb","path":"/kb/guide/how-to-integrate-nextjs-with-prismic"},{"site":"vercel-kb","path":"/kb/guide/how-to-integrate-optimizely-feature-experimentation-next-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-cache-tags-for-external-origins"},{"site":"vercel-kb","path":"/kb/guide/how-to-move-a-domain-between-vercel-projects-with-zero-downtime"},{"site":"vercel-kb","path":"/kb/guide/how-to-resolve-alias-errors-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-container-registry"},{"site":"vercel-kb","path":"/kb/guide/integrate-vercel-and-contentstack"},{"site":"vercel-kb","path":"/kb/guide/kubernetes-manifests-to-vercel-json"},{"site":"vercel-kb","path":"/kb/guide/marketing-team-eve"},{"site":"vercel-kb","path":"/kb/guide/migrate-containers-from-aws-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-ghcr-to-vcr"},{"site":"vercel-kb","path":"/kb/guide/nitro-vite-plugin"},{"site":"vercel-kb","path":"/kb/guide/python-ai-sdk-vercel-sandbox"},{"site":"vercel-kb","path":"/kb/guide/real-time-chat-websockets"},{"site":"vercel-kb","path":"/kb/guide/real-time-presence-hono-react"},{"site":"vercel-kb","path":"/kb/guide/running-ai-generated-code-sandbox"},{"site":"vercel-kb","path":"/kb/guide/sandboxed-coding-agent-with-harnessagent"},{"site":"vercel-kb","path":"/kb/guide/ship-a-elysia-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-flask-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-h3-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-hono-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/test-container-image-vercel-sandbox"},{"site":"vercel-kb","path":"/kb/guide/use-vercel-with-github-ip-restrictions"},{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations"},{"site":"vercel-kb","path":"/kb/guide/using-express-with-vercel"},{"site":"vercel-kb","path":"/kb/guide/vercel-drop-vs-cloudflare-direct-upload"},{"site":"vercel-kb","path":"/kb/guide/vercel-drop-vs-netlify-drop"},{"site":"vercel-kb","path":"/kb/guide/webflow-vercel-drop"},{"site":"vercel-kb","path":"/kb/guide/what-s-vercel-s-policy-regarding-load-testing-deployments"},{"site":"vercel-kb","path":"/kb/guide/why-is-vercel-cli-asking-me-to-log-in"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/deploy","distance":0.1927},{"site":"vercel-docs","path":"/docs/deployments","distance":0.1944},{"site":"vercel-docs","path":"/docs/cli/project","distance":0.1953},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","distance":0.2125},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments","distance":0.2202}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway","via":"inbound"},{"site":"flags-sdk","path":"/docs/providers/vercel","via":"inbound"},{"site":"v0","path":"/docs/terminal-commands","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/a-record-and-caa-with-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/build-a-browser-agent","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-express-starter-template","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-fastapi-starter-template","via":"inbound"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/about-telemetry","title":"Telemetry","summary":"Vercel CLI collects telemetry data about general usage.","outbound":[{"site":"vercel-docs","path":"/docs/cli/telemetry"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/telemetry","distance":0.0469},{"site":"turborepo","path":"/docs/telemetry","distance":0.1584},{"site":"turborepo","path":"/docs/reference/telemetry","distance":0.3101},{"site":"vercel-docs","path":"/docs/analytics/accessing-metrics-with-vercel-cli","distance":0.3156},{"site":"vercel-docs","path":"/docs/observability","distance":0.3356}],"related":[{"site":"turborepo","path":"/docs/telemetry","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/telemetry","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/accessing-metrics-with-vercel-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/metrics","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/using-web-analytics","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/api","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/activity","title":"vercel activity","summary":"View activity events for your Vercel project or team, filtered by type, date range, and project.","outbound":[{"site":"vercel-docs","path":"/docs/activity-log"}],"inbound":[{"site":"vercel-docs","path":"/docs/activity-log"},{"site":"vercel-docs","path":"/docs/cli"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/logs","distance":0.1917},{"site":"vercel-docs","path":"/docs/cli/list","distance":0.207},{"site":"vercel-docs","path":"/docs/cli/project","distance":0.2264},{"site":"vercel-docs","path":"/docs/cli/api","distance":0.2426},{"site":"vercel-docs","path":"/docs/cli/metrics","distance":0.2442}],"related":[{"site":"vercel-docs","path":"/docs/cli/logs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/list","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/metrics","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/agent","title":"vercel agent","summary":"Generate an AGENTS.md file with Vercel deployment best practices using the vercel agent CLI command.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/cli"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","distance":0.2702},{"site":"vercel-docs","path":"/docs/cli/deploy","distance":0.2896},{"site":"vercel-docs","path":"/docs/agent-resources","distance":0.2969},{"site":"vercel-docs","path":"/docs/cli/build","distance":0.3016},{"site":"eve","path":"/docs/guides/deployment/vercel","distance":0.3041}],"related":[{"site":"eve","path":"/docs/guides/deployment/vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/make-your-documentation-readable-by-ai-agents","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/build","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/ai-gateway","title":"vercel ai-gateway","summary":"Manage AI Gateway resources from the Vercel CLI: API keys, routing rules, models, and coding agent setup.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/api-keys"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/claude-code"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/cline"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/cursor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/hermes"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/kilo-code"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openai-codex"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openclaw"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/opencode"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/pi"},{"site":"vercel-docs","path":"/docs/ai-gateway/leaderboards"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/routing-rules"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/zdr"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/claude-code"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/conductor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/cursor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/grok-build"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/hermes"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/kilo-code"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openai-codex"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openclaw"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/pi"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/superset"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/routing-rules"},{"site":"vercel-docs","path":"/docs/cli"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents","distance":0.1789},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/claude-code","distance":0.2215},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openai-codex","distance":0.2365},{"site":"vercel-kb","path":"/kb/guide/how-i-use-opencode-with-vercel-ai-gateway-to-build-features-fast","distance":0.2379},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","distance":0.2662}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-i-use-opencode-with-vercel-ai-gateway-to-build-features-fast","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-an-agent-with-vercel-and-flue","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"neighbor"},{"site":"eve","path":"/docs/reference/cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/conductor","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/grok-build","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/superset","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/cli/alerts","title":"vercel alerts","summary":"List recent alerts for a linked project, a specific project, or an entire team with the Vercel CLI.","outbound":[{"site":"vercel-docs","path":"/docs/agent/investigation"},{"site":"vercel-docs","path":"/docs/alerts"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/alerts/configure-alerts","distance":0.2211},{"site":"vercel-docs","path":"/docs/cli/project","distance":0.2447},{"site":"vercel-docs","path":"/docs/cli/routes","distance":0.2808},{"site":"vercel-kb","path":"/kb/guide/monitor-uptime-for-ai-native-apps-with-vercel-alerts","distance":0.2847},{"site":"vercel-docs","path":"/docs/alerts","distance":0.2896}],"related":[{"site":"vercel-kb","path":"/kb/guide/monitor-uptime-for-ai-native-apps-with-vercel-alerts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/alerts/configure-alerts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/routes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/metrics","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/alias","title":"vercel alias","summary":"Learn how to apply custom domain aliases to your Vercel deployments using the vercel alias CLI command.","outbound":[{"site":"vercel-docs","path":"/docs/cli/deploy"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/assign-domain-to-a-git-branch"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-kb","path":"/kb/guide/how-to-resolve-alias-errors-on-vercel"}],"inbound":[{"site":"vercel-docs","path":"/docs/audit-log"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/transfer-your-domain"},{"site":"vercel-kb","path":"/kb/guide/how-to-alias-a-preview-deployment-using-the-cli"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-resolve-alias-errors-on-vercel","distance":0.2163},{"site":"vercel-docs","path":"/docs/rest-api/aliases/assign-an-alias","distance":0.2169},{"site":"vercel-docs","path":"/docs/cli/deploy","distance":0.2307},{"site":"vercel-docs","path":"/docs/cli/domains","distance":0.2453},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting","distance":0.2487}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-alias-a-preview-deployment-using-the-cli","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/why-do-my-vercel-deployments-have-multiple-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/aliases/assign-an-alias","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/aliases/get-an-alias","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/aliases/list-aliases","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/api","title":"vercel api","summary":"Learn how to make authenticated HTTP requests to the Vercel API using the vercel api CLI command.","outbound":[{"site":"vercel-docs","path":"/docs/cli/curl"},{"site":"vercel-docs","path":"/docs/cli/global-options"},{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/curl","distance":0.182},{"site":"vercel-docs","path":"/docs/cli/list","distance":0.2022},{"site":"vercel-docs","path":"/docs/cli/global-options","distance":0.2043},{"site":"vercel-docs","path":"/docs/cli/project","distance":0.2063},{"site":"vercel-docs","path":"/docs/cli/deploy","distance":0.211}],"related":[{"site":"vercel-docs","path":"/docs/cli/list","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/webhooks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/crons","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/bisect","title":"vercel bisect","summary":"Learn how to perform a binary search on your deployments to help surface issues using the vercel bisect CLI command.","outbound":[{"site":"vercel-kb","path":"/kb/guide/how-to-determine-which-vercel-deployment-introduced-an-issue"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/deployments/rollback-production-deployment"},{"site":"vercel-docs","path":"/docs/observability/debug-production-errors"},{"site":"vercel-kb","path":"/kb/guide/how-to-determine-which-vercel-deployment-introduced-an-issue"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-determine-which-vercel-deployment-introduced-an-issue","distance":0.1623},{"site":"vercel-docs","path":"/docs/cli/list","distance":0.2582},{"site":"vercel-docs","path":"/docs/cli/deploy","distance":0.2603},{"site":"vercel-docs","path":"/docs/deployments/rollback-production-deployment","distance":0.2724},{"site":"vercel-docs","path":"/docs/cli/inspect","distance":0.2797}],"related":[{"site":"vercel-docs","path":"/docs/cli/list","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/rollback-production-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/inspect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/blob","title":"vercel blob","summary":"Learn how to interact with Vercel Blob storage using the vercel blob CLI command.","outbound":[{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/vercel-blob/private-storage"},{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-blob/using-blob-sdk"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/vercel-blob/manage-blob-storage"},{"site":"vercel-docs","path":"/docs/vercel-blob/private-storage"},{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage"},{"site":"vercel-docs","path":"/docs/vercel-blob/using-blob-sdk"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-blob/manage-blob-storage","distance":0.1819},{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage","distance":0.2326},{"site":"vercel-kb","path":"/kb/guide/vercel-blob","distance":0.2336},{"site":"vercel-docs","path":"/docs/vercel-blob/using-blob-sdk","distance":0.2388},{"site":"vercel-docs","path":"/docs/vercel-blob/examples","distance":0.2402}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-blob","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/manage-blob-storage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/examples","via":"neighbor"},{"site":"vercel-docs","path":"/docs/storage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/storage/create-a-blob-store","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/build","title":"vercel build","summary":"Learn how to build a Vercel Project locally or in your own CI environment using the vercel build CLI command.","outbound":[{"site":"vercel-docs","path":"/docs/build-output-api"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-kb","path":"/kb/guide/using-vercel-cli-for-custom-workflows"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/deploy"},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli"},{"site":"vercel-docs","path":"/docs/cli/env"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-vercel-cron-jobs"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","distance":0.1714},{"site":"vercel-docs","path":"/docs/cli/deploy","distance":0.1889},{"site":"vercel-docs","path":"/docs/fundamentals/builds","distance":0.2035},{"site":"vercel-docs","path":"/docs/cli/dev","distance":0.2037},{"site":"vercel-docs","path":"/docs/builds","distance":0.2061}],"related":[{"site":"vercel-kb","path":"/kb/guide/troubleshooting-vercel-cron-jobs","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/deploying-locally-built-nextjs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/builds","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/dev","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/buy","title":"vercel buy","summary":"Learn how to purchase Vercel products like credits, addons, subscriptions, and domains using the vercel buy CLI command.","outbound":[{"site":"vercel-docs","path":"/docs/cli/domains"},{"site":"vercel-docs","path":"/docs/drains/reference/audit-logs"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/domains","distance":0.2222},{"site":"vercel-docs","path":"/docs/rest-api/billing/purchase-credits","distance":0.2467},{"site":"vercel-docs","path":"/docs/cli/api","distance":0.2553},{"site":"vercel-docs","path":"/docs/cli/usage","distance":0.2655},{"site":"vercel-docs","path":"/docs/cli/global-options","distance":0.2729}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/billing/purchase-credits","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/global-options","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploy","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/cache","title":"vercel cache","summary":"Learn how to manage cache for your project using the vercel cache CLI command.","outbound":[{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache"}],"inbound":[{"site":"vercel-docs","path":"/docs/caching/cdn-cache/debug-cache-issues"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge"},{"site":"vercel-docs","path":"/docs/cli"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge","distance":0.1842},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/debug-cache-issues","distance":0.2175},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-cache-tags-for-external-origins","distance":0.2482},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","distance":0.2851},{"site":"vercel-docs","path":"/docs/caching/cache-status","distance":0.287}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-manage-cache-tags-for-external-origins","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/debug-cache-issues","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/cache-status","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/blob","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/certs","title":"vercel certs","summary":"Learn how to manage certificates for your domains using the vercel certs CLI command.","outbound":[{"site":"vercel-docs","path":"/docs/domains/pre-generating-ssl-certs"}],"inbound":[{"site":"vercel-docs","path":"/docs/audit-log"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/domains/pre-generating-ssl-certs"},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/certs/get-certs","distance":0.2167},{"site":"vercel-docs","path":"/docs/cli/dns","distance":0.229},{"site":"vercel-docs","path":"/docs/domains/working-with-ssl","distance":0.2359},{"site":"vercel-docs","path":"/docs/rest-api/certs/issue-a-new-cert","distance":0.2408},{"site":"vercel-docs","path":"/docs/domains/pre-generating-ssl-certs","distance":0.2423}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/certs/get-certs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/dns","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-ssl","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/certs/issue-a-new-cert","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/domains","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/comments","title":"vercel comments","summary":"Learn about vercel comments on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/comments"},{"site":"vercel-docs","path":"/docs/comments/using-comments"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/comments"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/comments/integrations","distance":0.2176},{"site":"vercel-docs","path":"/docs/comments","distance":0.2299},{"site":"vercel-docs","path":"/docs/comments/using-comments","distance":0.2342},{"site":"vercel-docs","path":"/docs/cli/api","distance":0.241},{"site":"vercel-docs","path":"/docs/comments/managing-comments","distance":0.248}],"related":[{"site":"vercel-docs","path":"/docs/comments/integrations","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments/managing-comments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments/how-comments-work","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/project","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/connect","title":"vercel connect","summary":"Learn how to manage Vercel Connect connectors using the vercel connect CLI command.","outbound":[{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/connect/concepts/connectors"},{"site":"vercel-docs","path":"/docs/connect/quickstart"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/connect/concepts"},{"site":"vercel-docs","path":"/docs/connect/concepts/connectors"},{"site":"vercel-docs","path":"/docs/connect/concepts/project-links"},{"site":"vercel-docs","path":"/docs/connect/concepts/tokens"},{"site":"vercel-docs","path":"/docs/connect/concepts/triggers"},{"site":"vercel-docs","path":"/docs/connect/quickstart"},{"site":"vercel-docs","path":"/docs/connect/ts-sdk-reference"},{"site":"vercel-kb","path":"/kb/guide/daily-digest-bot-with-chat-sdk-and-workflow-sdk"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent"},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot"},{"site":"vercel-kb","path":"/kb/guide/eve-typefully-social-media-agent"},{"site":"vercel-kb","path":"/kb/guide/marketing-team-eve"},{"site":"vercel-kb","path":"/kb/guide/nuxt-and-vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/vercel-connect"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-connect","distance":0.1578},{"site":"vercel-docs","path":"/docs/connect/concepts/connectors","distance":0.1719},{"site":"vercel-docs","path":"/docs/connect","distance":0.182},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","distance":0.194},{"site":"vercel-docs","path":"/docs/cli/project","distance":0.2018}],"related":[{"site":"vercel-kb","path":"/kb/guide/daily-digest-bot-with-chat-sdk-and-workflow-sdk","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/eve-typefully-social-media-agent","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/marketing-team-eve","via":"inbound"},{"site":"chat-sdk","path":"/docs/vercel-connect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/ts-sdk-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/global-options","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/tokens","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/contract","title":"vercel contract","summary":"Learn how to view contract commitment information for your Vercel account using the vercel contract CLI command.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/cli"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/billing/list-focus-contract-commitments","distance":0.2383},{"site":"vercel-docs","path":"/docs/cli/usage","distance":0.2675},{"site":"vercel-docs","path":"/docs/cli/help","distance":0.2676},{"site":"vercel-docs","path":"/docs/cli/list","distance":0.3043},{"site":"vercel-docs","path":"/docs/cli/buy","distance":0.305}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/billing/list-focus-contract-commitments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/help","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/list","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/buy","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/crons","title":"vercel crons","summary":"Manage Cron Jobs from the Vercel CLI: add cron entries to your vercel.json, list them, and trigger them on demand.","outbound":[{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/cron-jobs/manage-cron-jobs"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cron-jobs","distance":0.1671},{"site":"vercel-docs","path":"/docs/cron-jobs/quickstart","distance":0.177},{"site":"vercel-docs","path":"/docs/cron-jobs/manage-cron-jobs","distance":0.2061},{"site":"vercel-kb","path":"/kb/guide/how-to-setup-cron-jobs-on-vercel","distance":0.2343},{"site":"vercel-docs","path":"/docs/cli/vcr","distance":0.2352}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-setup-cron-jobs-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-vercel-cron-jobs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cron-jobs/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/vcr","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploy-hooks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/webhooks","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/curl","title":"vercel curl","summary":"Learn how to make HTTP requests to your Vercel deployments with automatic deployment protection bypass using the vercel curl CLI command.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/deploy"},{"site":"vercel-docs","path":"/docs/cli/global-options"},{"site":"vercel-docs","path":"/docs/cli/inspect"},{"site":"vercel-docs","path":"/docs/cli/link"},{"site":"vercel-docs","path":"/docs/cli/traces"},{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/api"},{"site":"vercel-docs","path":"/docs/cli/httpstat"},{"site":"vercel-docs","path":"/docs/deployment-protection/automated-agent-access"},{"site":"vercel-docs","path":"/docs/deployments/promote-preview-to-production"},{"site":"vercel-docs","path":"/docs/observability/debug-production-errors"},{"site":"vercel-docs","path":"/docs/tracing/session-tracing"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/httpstat","distance":0.1323},{"site":"vercel-docs","path":"/docs/cli/api","distance":0.182},{"site":"vercel-docs","path":"/docs/cli/deploy","distance":0.1898},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","distance":0.2254},{"site":"vercel-docs","path":"/docs/cli/list","distance":0.2264}],"related":[{"site":"vercel-docs","path":"/docs/cli/httpstat","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/list","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/deploy","title":"vercel deploy","summary":"Learn how to deploy your Vercel projects using the vercel deploy CLI command.","outbound":[{"site":"vercel-docs","path":"/docs/build-output-api"},{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/cli/build"},{"site":"vercel-docs","path":"/docs/cli/global-options"},{"site":"vercel-docs","path":"/docs/cli/list"},{"site":"vercel-docs","path":"/docs/cli/project-linking"},{"site":"vercel-docs","path":"/docs/cli/promote"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/environment-variables/system-environment-variables"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/skew-protection"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/alias"},{"site":"vercel-docs","path":"/docs/cli/curl"},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli"},{"site":"vercel-docs","path":"/docs/cli/httpstat"},{"site":"vercel-docs","path":"/docs/cli/project-linking"},{"site":"vercel-docs","path":"/docs/deployments/generated-urls"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build"},{"site":"vercel-docs","path":"/docs/frameworks/backend/express"},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi"},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastify"},{"site":"vercel-docs","path":"/docs/frameworks/backend/flask"},{"site":"vercel-docs","path":"/docs/frameworks/backend/koa"},{"site":"vercel-docs","path":"/docs/frameworks/backend/nestjs"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/create-react-app"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/django"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"},{"site":"vercel-docs","path":"/docs/functions/container-images"},{"site":"vercel-docs","path":"/docs/project-configuration/security-settings"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli"},{"site":"vercel-docs","path":"/docs/rolling-releases/rolling-release-deployment"},{"site":"vercel-docs","path":"/docs/skew-protection"},{"site":"vercel-kb","path":"/kb/guide/branch-variables-and-domains-not-linked-to-cli-deployments"},{"site":"vercel-kb","path":"/kb/guide/how-to-alias-a-preview-deployment-using-the-cli"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","distance":0.1205},{"site":"vercel-docs","path":"/docs/cli/list","distance":0.1467},{"site":"vercel-docs","path":"/docs/deployments","distance":0.1486},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","distance":0.1504},{"site":"vercel-docs","path":"/docs/cli/redeploy","distance":0.1704}],"related":[{"site":"vercel-kb","path":"/kb/guide/branch-variables-and-domains-not-linked-to-cli-deployments","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-alias-a-preview-deployment-using-the-cli","via":"inbound"},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/redeploy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/curl","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/deploy-hooks","title":"vercel deploy-hooks","summary":"Manage Deploy Hooks for Git-triggered builds from the Vercel CLI: list, create, and remove deploy hook URLs that trigger new deployments when called.","outbound":[{"site":"vercel-docs","path":"/docs/deploy-hooks"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/deploy-hooks","distance":0.1284},{"site":"vercel-docs","path":"/docs/cli/webhooks","distance":0.1968},{"site":"vercel-docs","path":"/docs/deployments","distance":0.2095},{"site":"vercel-docs","path":"/docs/cli/deploy","distance":0.2256},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","distance":0.2261}],"related":[{"site":"vercel-kb","path":"/kb/guide/set-up-and-use-deploy-hooks-with-vercel-and-headless-cms","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/webhooks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/list","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","title":"Deploying from CLI","summary":"Learn how to deploy your Vercel Projects from Vercel CLI using the vercel or vercel deploy commands.","outbound":[{"site":"vercel-docs","path":"/docs/build-output-api"},{"site":"vercel-docs","path":"/docs/cli/build"},{"site":"vercel-docs","path":"/docs/cli/deploy"},{"site":"vercel-docs","path":"/docs/cli/promote"},{"site":"vercel-docs","path":"/docs/deployments/environments"}],"inbound":[{"site":"vercel-docs","path":"/docs/builds/build-features"},{"site":"vercel-docs","path":"/docs/deployments/claim-deployments"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments"},{"site":"vercel-docs","path":"/docs/deployments/promoting-a-deployment"},{"site":"vercel-kb","path":"/kb/guide/set-up-a-staging-environment-on-vercel"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","distance":0.1116},{"site":"vercel-docs","path":"/docs/cli/deploy","distance":0.1205},{"site":"vercel-docs","path":"/docs/deployments","distance":0.1298},{"site":"vercel-docs","path":"/docs/cli/project-linking","distance":0.1657},{"site":"vercel-docs","path":"/docs/cli/build","distance":0.1714}],"related":[{"site":"vercel-kb","path":"/kb/guide/set-up-a-staging-environment-on-vercel","via":"inbound"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/project-linking","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/redeploy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/dev","title":"vercel dev","summary":"Learn how to replicate the Vercel deployment environment locally and test your Vercel Project before deploying using the vercel dev CLI command.","outbound":[{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/routing/redirects"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/frameworks/backend/elysia"},{"site":"vercel-docs","path":"/docs/frameworks/backend/hono"},{"site":"vercel-docs","path":"/docs/frameworks/backend/xmcp"},{"site":"vercel-docs","path":"/docs/functions/runtimes/wasm"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-kb","path":"/kb/guide/using-xmcp-with-nextjs"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/build","distance":0.2037},{"site":"vercel-docs","path":"/docs/cli/deploy","distance":0.2201},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","distance":0.2392},{"site":"vercel-docs","path":"/docs/cli/project-linking","distance":0.2395},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","distance":0.2428}],"related":[{"site":"vercel-kb","path":"/kb/guide/using-xmcp-with-nextjs","via":"inbound"},{"site":"vercel-docs","path":"/docs/cli/build","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/project-linking","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/dns","title":"vercel dns","summary":"Learn how to manage your DNS records for your domains using the vercel dns CLI command.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/domains/working-with-dns","distance":0.2066},{"site":"vercel-docs","path":"/docs/cli/domains","distance":0.2111},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","distance":0.219},{"site":"vercel-docs","path":"/docs/rest-api/dns/list-existing-dns-records","distance":0.2228},{"site":"vercel-docs","path":"/docs/cli/certs","distance":0.229}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/export-domain-dns-records-via-api","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-using-vercel-s-nameserver-s-lock-you-in","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-dns","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/dns/list-existing-dns-records","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/certs","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/domains","title":"vercel domains","summary":"Learn how to buy, sell, transfer, and manage your domains using the vercel domains CLI command.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/buy"},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains","distance":0.1955},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","distance":0.2027},{"site":"vercel-docs","path":"/docs/domains","distance":0.2052},{"site":"vercel-docs","path":"/docs/cli/dns","distance":0.2111},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/view-and-search-domains","distance":0.2114}],"related":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/dns","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/view-and-search-domains","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/env","title":"vercel env","summary":"Learn how to manage your environment variables in your Vercel Projects using the vercel env CLI command.","outbound":[{"site":"vercel-docs","path":"/docs/cli/build"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/environment-variables/sensitive-environment-variables"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/environment-variables/manage-across-environments"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/advanced-node-configuration"},{"site":"vercel-docs","path":"/docs/global-config/global-config-dashboard"},{"site":"vercel-docs","path":"/docs/global-config/using-global-config"},{"site":"vercel-docs","path":"/docs/integrations/cms"},{"site":"vercel-docs","path":"/docs/oidc"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli"},{"site":"vercel-docs","path":"/docs/vercel-blob/using-blob-sdk"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare"},{"site":"vercel-kb","path":"/kb/guide/using-private-dependencies-with-vercel"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/environment-variables/manage-across-environments","distance":0.1301},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","distance":0.1785},{"site":"vercel-docs","path":"/docs/cli/pull","distance":0.1889},{"site":"vercel-docs","path":"/docs/environment-variables","distance":0.1996},{"site":"vercel-docs","path":"/docs/cli/global-options","distance":0.2229}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/using-private-dependencies-with-vercel","via":"inbound"},{"site":"vercel-docs","path":"/docs/environment-variables/manage-across-environments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/pull","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/global-options","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/environments","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/firewall","title":"vercel firewall","summary":"Learn how to manage your project's custom firewall rules, IP blocks, system bypass rules, attack challenge mode, and system mitigations using the vercel firewall CLI command.","outbound":[{"site":"vercel-docs","path":"/docs/bot-management"},{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-firewall/attack-mode"},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-concepts"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/ip-blocking"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/managed-rulesets"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rule-configuration"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/system-bypass-rules"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules","distance":0.2487},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation","distance":0.2516},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/managed-rulesets","distance":0.2539},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","distance":0.2615},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/system-bypass-rules","distance":0.2627}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/routes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/read-firewall-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/alerts","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/flags","title":"vercel flags","summary":"Learn how to manage feature flags for your Vercel project using the vercel flags CLI command.","outbound":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/segments"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/segments"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/roll-out-feature","distance":0.2023},{"site":"vercel-kb","path":"/kb/guide/how-splits-work-in-vercel-flags","distance":0.2064},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/feature-flag","distance":0.2388},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-are-evaluated","distance":0.2493},{"site":"vercel-docs","path":"/docs/cli/rolling-release","distance":0.2956}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-splits-work-in-vercel-flags","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-are-evaluated","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-resolves-environments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/roll-out-feature","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/feature-flag","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/rolling-release","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/run-ab-test","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/git","title":"vercel git","summary":"Learn how to manage your Git provider connections using the vercel git CLI command.","outbound":[{"site":"vercel-docs","path":"/docs/git"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/project-configuration/git-settings","distance":0.2158},{"site":"vercel-docs","path":"/docs/cli/link","distance":0.2423},{"site":"vercel-docs","path":"/docs/project-configuration/git-configuration","distance":0.2651},{"site":"vercel-docs","path":"/docs/cli/build","distance":0.2653},{"site":"vercel-docs","path":"/docs/cli/dev","distance":0.2721}],"related":[{"site":"vercel-docs","path":"/docs/project-configuration/git-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/link","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/git-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/build","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/dev","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/global-config","title":"vercel global-config","summary":"Manage Global Config stores from the Vercel CLI: list, create, inspect, update, remove, and manage items, read tokens, and backups.","outbound":[{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-dashboard"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/update-global-config-items-in-batch"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/global-config/migration-guide"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/global-config/global-config-dashboard","distance":0.1708},{"site":"vercel-docs","path":"/docs/global-config/using-global-config","distance":0.1762},{"site":"vercel-docs","path":"/docs/global-config/vercel-api","distance":0.1914},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-items","distance":0.1996},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config","distance":0.2183}],"related":[{"site":"vercel-docs","path":"/docs/global-config/using-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config/vercel-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-items","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-configs","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/global-options","title":"Global Options","summary":"Global options are commonly available to use with multiple Vercel CLI commands. Learn about Vercel CLI's global options here.","outbound":[{"site":"vercel-docs","path":"/docs/cli/link"},{"site":"vercel-docs","path":"/docs/project-configuration/global-configuration"},{"site":"vercel-kb","path":"/kb/guide/using-vercel-cli-for-custom-workflows"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/api"},{"site":"vercel-docs","path":"/docs/cli/curl"},{"site":"vercel-docs","path":"/docs/cli/deploy"},{"site":"vercel-docs","path":"/docs/cli/help"},{"site":"vercel-docs","path":"/docs/cli/httpstat"},{"site":"vercel-docs","path":"/docs/cli/link"},{"site":"vercel-docs","path":"/docs/cli/tokens"},{"site":"vercel-docs","path":"/docs/monorepos/monorepo-faq"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/deploy","distance":0.1893},{"site":"vercel-docs","path":"/docs/project-configuration/global-configuration","distance":0.1933},{"site":"vercel-docs","path":"/docs/cli/project","distance":0.2042},{"site":"vercel-docs","path":"/docs/cli/api","distance":0.2043},{"site":"vercel-docs","path":"/docs/cli/env","distance":0.2229}],"related":[{"site":"vercel-docs","path":"/docs/cli/deploy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/env","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/list","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/guidance","title":"vercel guidance","summary":"Enable or disable guidance messages in the Vercel CLI using the vercel guidance command.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/cli"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/help","distance":0.2749},{"site":"vercel-docs","path":"/docs/cli/deploy","distance":0.2974},{"site":"vercel-docs","path":"/docs/cli/dev","distance":0.3221},{"site":"vercel-docs","path":"/docs/cli/list","distance":0.3353},{"site":"vercel-docs","path":"/docs/cli/global-options","distance":0.3422}],"related":[{"site":"vercel-docs","path":"/docs/cli/help","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/dev","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/list","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/global-options","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/help","title":"vercel help","summary":"Learn how to use the vercel help CLI command to get information about all available Vercel CLI commands.","outbound":[{"site":"vercel-docs","path":"/docs/cli/global-options"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/api","distance":0.2454},{"site":"vercel-docs","path":"/docs/cli/login","distance":0.2458},{"site":"vercel-docs","path":"/docs/cli/global-options","distance":0.2511},{"site":"vercel-docs","path":"/docs/cli/usage","distance":0.264},{"site":"vercel-docs","path":"/docs/cli/list","distance":0.265}],"related":[{"site":"vercel-docs","path":"/docs/cli/api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/login","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/list","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/contract","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/httpstat","title":"vercel httpstat","summary":"Learn how to visualize HTTP request timing statistics for your Vercel deployments using the vercel httpstat CLI command.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/curl"},{"site":"vercel-docs","path":"/docs/cli/deploy"},{"site":"vercel-docs","path":"/docs/cli/global-options"},{"site":"vercel-docs","path":"/docs/cli/inspect"},{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation"}],"inbound":[{"site":"vercel-docs","path":"/docs/caching/cdn-cache/debug-cache-issues"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/functions/debug-slow-functions"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/curl","distance":0.1323},{"site":"vercel-docs","path":"/docs/cli/list","distance":0.232},{"site":"vercel-docs","path":"/docs/cli/deploy","distance":0.2327},{"site":"vercel-docs","path":"/docs/cli/api","distance":0.2521},{"site":"vercel-docs","path":"/docs/cli/inspect","distance":0.2589}],"related":[{"site":"vercel-docs","path":"/docs/cli/list","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/init","title":"vercel init","summary":"Learn how to initialize Vercel supported framework examples locally using the vercel init CLI command.","outbound":[{"site":"vercel-docs","path":"/docs/frameworks"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/frameworks/backend/elysia"},{"site":"vercel-docs","path":"/docs/frameworks/backend/express"},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi"},{"site":"vercel-docs","path":"/docs/frameworks/backend/flask"},{"site":"vercel-docs","path":"/docs/frameworks/backend/hono"},{"site":"vercel-docs","path":"/docs/frameworks/backend/nitro"},{"site":"vercel-docs","path":"/docs/frameworks/backend/xmcp"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/django"},{"site":"vercel-kb","path":"/kb/guide/ship-a-elysia-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-flask-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-h3-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-hono-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/dev","distance":0.2787},{"site":"vercel-docs","path":"/docs/cli/build","distance":0.285},{"site":"vercel-docs","path":"/docs/cli/project-linking","distance":0.2933},{"site":"vercel-docs","path":"/docs/cli/link","distance":0.3008},{"site":"vercel-docs","path":"/docs/cli/install","distance":0.3091}],"related":[{"site":"vercel-kb","path":"/kb/guide/ship-a-elysia-app-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ship-a-flask-app-on-vercel","via":"inbound"},{"site":"vercel-docs","path":"/docs/cli/dev","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/build","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/link","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/install","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/login","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/inspect","title":"vercel inspect","summary":"Learn how to retrieve information about your Vercel deployments using the vercel inspect CLI command.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/caching/cdn-cache/debug-cache-issues"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/curl"},{"site":"vercel-docs","path":"/docs/cli/httpstat"},{"site":"vercel-docs","path":"/docs/deployments/promote-preview-to-production"},{"site":"vercel-docs","path":"/docs/deployments/rollback-production-deployment"},{"site":"vercel-docs","path":"/docs/functions/debug-slow-functions"},{"site":"vercel-docs","path":"/docs/observability/debug-production-errors"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/list","distance":0.2326},{"site":"vercel-docs","path":"/docs/cli/deploy","distance":0.2405},{"site":"vercel-docs","path":"/docs/cli/logs","distance":0.2535},{"site":"vercel-docs","path":"/docs/cli/httpstat","distance":0.2589},{"site":"vercel-docs","path":"/docs/cli/redeploy","distance":0.2693}],"related":[{"site":"vercel-docs","path":"/docs/cli/list","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/logs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/httpstat","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/redeploy","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/install","title":"vercel install","summary":"Learn how to install marketplace native integrations and provision resources with the vercel install CLI command.","outbound":[{"site":"vercel-docs","path":"/docs/cli/integration"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel"},{"site":"vercel-docs","path":"/docs/marketplace-storage"},{"site":"vercel-docs","path":"/docs/storage"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/install-an-integration","distance":0.2084},{"site":"vercel-docs","path":"/docs/cli/integration","distance":0.2199},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-installation","distance":0.2789},{"site":"vercel-docs","path":"/docs/cli/login","distance":0.279},{"site":"vercel-docs","path":"/docs/integrations","distance":0.2826}],"related":[{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-installation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/login","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/vercel","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/integration","title":"vercel integration","summary":"Learn how to manage marketplace native integrations, provision resources, manage individual resources, and discover available products using the vercel integration CLI command.","outbound":[{"site":"vercel-docs","path":"/docs/cli/project"},{"site":"vercel-docs","path":"/docs/integrations"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/install"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel"},{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/product-integration"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/secure-your-resource"},{"site":"vercel-docs","path":"/docs/marketplace-storage"},{"site":"vercel-kb","path":"/kb/guide/deploy-shopify-app-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/install","distance":0.2199},{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","distance":0.2338},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/product-integration","distance":0.2432},{"site":"vercel-docs","path":"/docs/cli","distance":0.2521},{"site":"vercel-docs","path":"/docs/integrations/create-integration/submit-integration","distance":0.2574}],"related":[{"site":"vercel-kb","path":"/kb/guide/deploy-shopify-app-to-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","via":"inbound"},{"site":"vercel-docs","path":"/docs/cli/install","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/product-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/submit-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/partner","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/link","title":"vercel link","summary":"Learn how to link a local directory to a Vercel Project using the vercel link CLI command.","outbound":[{"site":"vercel-docs","path":"/docs/cli/global-options"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/projects"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/curl"},{"site":"vercel-docs","path":"/docs/cli/global-options"},{"site":"vercel-docs","path":"/docs/cli/open"},{"site":"vercel-docs","path":"/docs/cli/project-linking"},{"site":"vercel-docs","path":"/docs/container-registry/cli-reference"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started"},{"site":"vercel-docs","path":"/docs/monorepos"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost/add-to-localhost"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost/add-to-production"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/project-linking","distance":0.1352},{"site":"vercel-docs","path":"/docs/cli/open","distance":0.205},{"site":"vercel-docs","path":"/docs/cli/build","distance":0.2323},{"site":"vercel-docs","path":"/docs/cli/git","distance":0.2423},{"site":"vercel-docs","path":"/docs/cli/global-options","distance":0.2459}],"related":[{"site":"vercel-docs","path":"/docs/cli/project-linking","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/open","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/build","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/git","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/dev","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/list","title":"vercel list","summary":"Learn how to list out all recent deployments for the current Vercel Project using the vercel list CLI command.","outbound":[{"site":"vercel-docs","path":"/docs/deployment-retention"},{"site":"vercel-docs","path":"/docs/deployments/environments"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/deploy"},{"site":"vercel-docs","path":"/docs/deployment-retention"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/deploy","distance":0.1467},{"site":"vercel-docs","path":"/docs/deployments","distance":0.2021},{"site":"vercel-docs","path":"/docs/cli/api","distance":0.2022},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","distance":0.2064},{"site":"vercel-docs","path":"/docs/cli/activity","distance":0.207}],"related":[{"site":"vercel-docs","path":"/docs/cli/deploy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/activity","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/login","title":"vercel login","summary":"Learn how to login into your Vercel account using the vercel login CLI command.","outbound":[{"site":"vercel-kb","path":"/kb/guide/why-is-vercel-cli-asking-me-to-log-in"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/security/shared-responsibility"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/logout","distance":0.1628},{"site":"vercel-docs","path":"/docs/cli/whoami","distance":0.2157},{"site":"vercel-docs","path":"/docs/cli/help","distance":0.2458},{"site":"vercel-docs","path":"/docs/cli/open","distance":0.2522},{"site":"vercel-docs","path":"/docs/cli/link","distance":0.2739}],"related":[{"site":"vercel-docs","path":"/docs/cli/logout","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/whoami","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/help","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/open","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/link","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/logout","title":"vercel logout","summary":"Learn how to logout from your Vercel account using the vercel logout CLI command.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/cli"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/login","distance":0.1628},{"site":"vercel-docs","path":"/docs/cli/whoami","distance":0.3016},{"site":"vercel-docs","path":"/docs/cli/help","distance":0.3116},{"site":"turborepo","path":"/docs/reference/logout","distance":0.3299},{"site":"vercel-docs","path":"/docs/cli/rollback","distance":0.3385}],"related":[{"site":"vercel-docs","path":"/docs/cli/login","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/logout","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/whoami","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/help","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/rollback","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/switch","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/logs","title":"vercel logs","summary":"View and filter request logs for your Vercel project, or stream live runtime logs from a deployment.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/caching/cdn-cache/debug-cache-issues"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/deployments/promote-preview-to-production"},{"site":"vercel-docs","path":"/docs/functions/debug-slow-functions"},{"site":"vercel-docs","path":"/docs/observability/debug-production-errors"},{"site":"vercel-docs","path":"/docs/rolling-releases/rolling-release-deployment"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/activity","distance":0.1917},{"site":"vercel-docs","path":"/docs/cli/list","distance":0.2092},{"site":"vercel-docs","path":"/docs/logs/runtime","distance":0.2197},{"site":"vercel-docs","path":"/docs/logs","distance":0.2273},{"site":"vercel-docs","path":"/docs/rest-api/logs/get-logs-for-a-deployment","distance":0.2309}],"related":[{"site":"vercel-docs","path":"/docs/cli/activity","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/list","via":"neighbor"},{"site":"vercel-docs","path":"/docs/logs/runtime","via":"neighbor"},{"site":"vercel-docs","path":"/docs/logs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logs/get-logs-for-a-deployment","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/mcp","title":"vercel mcp","summary":"Set up Model Context Protocol \\(MCP\\) usage with a Vercel project using the vercel mcp CLI command.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/cli"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/mcp","distance":0.2352},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp","distance":0.2467},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","distance":0.2548},{"site":"vercel-docs","path":"/docs/frameworks/backend/xmcp","distance":0.2782},{"site":"vercel-docs","path":"/docs/cli/global-options","distance":0.3146}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-mcp-server-with-nuxt","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/mcp-server-with-weather-tool-express","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-create-a-contentful-asset-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-xmcp-with-nextjs","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/adapters/mcp-server","via":"neighbor"},{"site":"v0","path":"/docs/MCP","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/xmcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/global-options","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/metrics","title":"vercel metrics","summary":"Query observability metrics and inspect available metrics, dimensions, and aggregations using the Vercel CLI.","outbound":[{"site":"vercel-docs","path":"/docs/observability/observability-plus"}],"inbound":[{"site":"vercel-docs","path":"/docs/analytics/accessing-metrics-with-vercel-cli"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/observability/custom-metrics"},{"site":"vercel-docs","path":"/docs/speed-insights/accessing-metrics-with-vercel-cli"},{"site":"vercel-kb","path":"/kb/guide/cls-on-vercel"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/analytics/accessing-metrics-with-vercel-cli","distance":0.1075},{"site":"vercel-docs","path":"/docs/speed-insights/accessing-metrics-with-vercel-cli","distance":0.1477},{"site":"vercel-docs","path":"/docs/cli/project","distance":0.238},{"site":"vercel-docs","path":"/docs/cli/usage","distance":0.2384},{"site":"vercel-docs","path":"/docs/cli/api","distance":0.2417}],"related":[{"site":"vercel-kb","path":"/kb/guide/cls-on-vercel","via":"inbound"},{"site":"vercel-docs","path":"/docs/analytics/accessing-metrics-with-vercel-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/accessing-metrics-with-vercel-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/api","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/microfrontends","title":"vercel microfrontends","summary":"Manage microfrontends groups from the CLI. Learn how to create groups, inspect group metadata, add and remove projects, and pull configuration for local development.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/cli"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/microfrontends/quickstart","distance":0.2209},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends","distance":0.2305},{"site":"vercel-docs","path":"/docs/microfrontends","distance":0.2383},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/create-a-microfrontends-group-with-applications","distance":0.2402},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/list-projects-in-a-microfrontends-group","distance":0.2454}],"related":[{"site":"vercel-docs","path":"/docs/microfrontends/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/create-a-microfrontends-group-with-applications","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/list-projects-in-a-microfrontends-group","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/oauth-apps","title":"vercel oauth-apps","summary":"Register Vercel Apps \\(OAuth\\) and manage team installations from the CLI: register new apps, list and dismiss installation requests, install apps to a team, and uninstall them.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/cli"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/api","distance":0.2486},{"site":"vercel-docs","path":"/docs/cli","distance":0.2753},{"site":"vercel-docs","path":"/docs/cli/teams","distance":0.2829},{"site":"vercel-docs","path":"/docs/cli/project","distance":0.2864},{"site":"vercel-docs","path":"/docs/cli/tokens","distance":0.2872}],"related":[{"site":"vercel-docs","path":"/docs/cli/api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/teams","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/tokens","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/manage-from-dashboard","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/open","title":"vercel open","summary":"Learn how to open your current project in the Vercel Dashboard using the vercel open CLI command.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/link"},{"site":"vercel-docs","path":"/docs/cli/project"},{"site":"vercel-docs","path":"/docs/cli/project-linking"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/project-linking","distance":0.1996},{"site":"vercel-docs","path":"/docs/cli/link","distance":0.205},{"site":"vercel-docs","path":"/docs/cli/login","distance":0.2522},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","distance":0.2612},{"site":"vercel-docs","path":"/docs/cli/dev","distance":0.2799}],"related":[{"site":"vercel-docs","path":"/docs/cli/login","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/dev","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/project","title":"vercel project","summary":"Perform the following commands from the terminal for your Vercel Projects: list, add, inspect, update settings, rename, remove, and configure access, checks, protection, analytics.","outbound":[{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/oidc"},{"site":"vercel-docs","path":"/docs/speed-insights"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/integration"},{"site":"vercel-docs","path":"/docs/cli/open"},{"site":"vercel-docs","path":"/docs/git/vercel-for-azure-pipelines"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-change-the-name-of-my-vercel-project"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli","distance":0.1953},{"site":"vercel-docs","path":"/docs/cli/connect","distance":0.2018},{"site":"vercel-docs","path":"/docs/cli/global-options","distance":0.2042},{"site":"vercel-docs","path":"/docs/cli/api","distance":0.2063},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","distance":0.2243}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-change-the-name-of-my-vercel-project","via":"inbound"},{"site":"vercel-docs","path":"/docs/cli/connect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/global-options","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/teams","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/project-linking","title":"Project Linking","summary":"Learn how to link existing Vercel Projects with Vercel CLI.","outbound":[{"site":"vercel-docs","path":"/docs/cli/deploy"},{"site":"vercel-docs","path":"/docs/cli/link"},{"site":"vercel-docs","path":"/docs/projects"}],"inbound":[{"site":"vercel-docs","path":"/docs/caching/cdn-cache/debug-cache-issues"},{"site":"vercel-docs","path":"/docs/cli/deploy"},{"site":"vercel-docs","path":"/docs/cli/open"},{"site":"vercel-docs","path":"/docs/deployments/promote-preview-to-production"},{"site":"vercel-docs","path":"/docs/deployments/rollback-production-deployment"},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain"},{"site":"vercel-docs","path":"/docs/environment-variables/manage-across-environments"},{"site":"vercel-docs","path":"/docs/microfrontends/local-development"},{"site":"vercel-docs","path":"/docs/monorepos/monorepo-faq"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/rolling-releases/rolling-release-deployment"},{"site":"vercel-docs","path":"/docs/routing/redirects/manage-redirects-at-scale"},{"site":"vercel-docs","path":"/docs/vercel-blob/manage-blob-storage"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-change-the-name-of-my-vercel-project"},{"site":"workflow","path":"/docs/observability"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/link","distance":0.1352},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","distance":0.1446},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","distance":0.1657},{"site":"vercel-docs","path":"/docs/cli/open","distance":0.1996},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","distance":0.2055}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-change-the-name-of-my-vercel-project","via":"inbound"},{"site":"workflow","path":"/docs/observability","via":"inbound"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/open","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/promote","title":"vercel promote","summary":"Learn how to promote an existing deployment using the vercel promote CLI command.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/deploy"},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli"},{"site":"vercel-docs","path":"/docs/cli/rollback"},{"site":"vercel-docs","path":"/docs/deployments/promote-preview-to-production"},{"site":"vercel-docs","path":"/docs/deployments/rollback-production-deployment"},{"site":"vercel-docs","path":"/docs/instant-rollback"},{"site":"vercel-docs","path":"/docs/rolling-releases"},{"site":"vercel-docs","path":"/docs/webhooks/webhooks-api"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/deployments/promote-preview-to-production","distance":0.1494},{"site":"vercel-docs","path":"/docs/deployments/promoting-a-deployment","distance":0.1968},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","distance":0.2296},{"site":"vercel-docs","path":"/docs/cli/rollback","distance":0.2296},{"site":"vercel-docs","path":"/docs/cli/redeploy","distance":0.2329}],"related":[{"site":"vercel-docs","path":"/docs/deployments/promote-preview-to-production","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/promoting-a-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/rollback","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/redeploy","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/pull","title":"vercel pull","summary":"Learn how to update your local project with remote environment variables using the vercel pull CLI command.","outbound":[{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/environment-variables"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/environment-variables/manage-across-environments"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/django"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/env","distance":0.1889},{"site":"vercel-docs","path":"/docs/environment-variables/manage-across-environments","distance":0.2196},{"site":"vercel-docs","path":"/docs/cli/build","distance":0.252},{"site":"vercel-docs","path":"/docs/cli/dev","distance":0.278},{"site":"vercel-docs","path":"/docs/cli/global-options","distance":0.2838}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","via":"inbound"},{"site":"vercel-docs","path":"/docs/cli/env","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/manage-across-environments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/build","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/dev","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/global-options","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/redeploy","title":"vercel redeploy","summary":"Learn how to redeploy your project using the vercel redeploy CLI command.","outbound":[{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/deploy","distance":0.1704},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","distance":0.1889},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments","distance":0.1957},{"site":"vercel-docs","path":"/docs/cli/promote","distance":0.2329},{"site":"vercel-docs","path":"/docs/cli/remove","distance":0.2356}],"related":[{"site":"vercel-docs","path":"/docs/cli/deploy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/promote","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/remove","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/list","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/redirects","title":"vercel redirects","summary":"Learn how to manage project-level redirects using the vercel redirects CLI command.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/routing/redirects/bulk-redirects/getting-started"},{"site":"vercel-docs","path":"/docs/routing/redirects/manage-redirects-at-scale"},{"site":"vercel-kb","path":"/kb/guide/managing-redirects-from-your-cms-using-vercel-bulk-redirects"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/routing/redirects/manage-redirects-at-scale","distance":0.0801},{"site":"vercel-docs","path":"/docs/routing/redirects/bulk-redirects/getting-started","distance":0.1418},{"site":"vercel-docs","path":"/docs/routing/redirects/bulk-redirects","distance":0.2102},{"site":"vercel-docs","path":"/docs/cli/routes","distance":0.2115},{"site":"vercel-docs","path":"/docs/routing/redirects","distance":0.2207}],"related":[{"site":"vercel-kb","path":"/kb/guide/managing-redirects-from-your-cms-using-vercel-bulk-redirects","via":"inbound"},{"site":"vercel-docs","path":"/docs/routing/redirects/manage-redirects-at-scale","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects/bulk-redirects/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects/bulk-redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/routes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/remove","title":"vercel remove","summary":"Learn how to remove a deployment using the vercel remove CLI command.","outbound":[{"site":"vercel-docs","path":"/docs/projects"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/deploy","distance":0.218},{"site":"vercel-docs","path":"/docs/cli/redeploy","distance":0.2356},{"site":"vercel-docs","path":"/docs/cli/list","distance":0.2356},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","distance":0.2455},{"site":"vercel-docs","path":"/docs/rest-api/deployments/delete-a-deployment","distance":0.2479}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-delete-an-individual-deployment","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/delete","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/list","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/redeploy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/delete-a-deployment","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/rollback","title":"vercel rollback","summary":"Learn how to roll back your production deployments to previous deployments using the vercel rollback CLI command.","outbound":[{"site":"vercel-docs","path":"/docs/cli/promote"},{"site":"vercel-docs","path":"/docs/instant-rollback"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/deployments/rollback-production-deployment"},{"site":"vercel-docs","path":"/docs/observability/debug-production-errors"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/instant-rollback","distance":0.1459},{"site":"vercel-docs","path":"/docs/deployments/rollback-production-deployment","distance":0.1606},{"site":"vercel-docs","path":"/docs/cli/rolling-release","distance":0.2286},{"site":"vercel-docs","path":"/docs/rolling-releases/rolling-release-deployment","distance":0.2292},{"site":"vercel-docs","path":"/docs/cli/promote","distance":0.2296}],"related":[{"site":"vercel-docs","path":"/docs/deployments/rollback-production-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/rolling-release","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rolling-releases/rolling-release-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/redeploy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/remove","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/rolling-release","title":"vercel rolling-release","summary":"Learn how to manage your project's rolling releases using the vercel rolling-release CLI command.","outbound":[{"site":"vercel-docs","path":"/docs/rolling-releases"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/rolling-releases"},{"site":"vercel-docs","path":"/docs/rolling-releases/rolling-release-deployment"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/rolling-releases/rolling-release-deployment","distance":0.1221},{"site":"vercel-docs","path":"/docs/rolling-releases","distance":0.1344},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-rolling-release-configuration","distance":0.2051},{"site":"vercel-kb","path":"/kb/guide/how-to-gradually-roll-out-new-versions-of-your-backend","distance":0.2063},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/update-the-rolling-release-settings-for-the-project","distance":0.2104}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-gradually-roll-out-new-versions-of-your-backend","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rolling-releases/rolling-release-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-rolling-release-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/update-the-rolling-release-settings-for-the-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/complete-the-rolling-release-for-the-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/update-the-active-rolling-release-to-the-next-stage-for-a-project","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/routes","title":"vercel routes","summary":"Learn how to manage project-level routing rules using the vercel routes CLI command.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-cache-tags-for-external-origins"},{"site":"vercel-kb","path":"/kb/guide/vercel-reverse-proxy-rewrites-external"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/routing/project-routing-rules","distance":0.186},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/edit-a-routing-rule","distance":0.1983},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/promote-restore-or-discard-a-routing-rule-version","distance":0.2059},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/add-a-routing-rule","distance":0.211},{"site":"vercel-docs","path":"/docs/cli/redirects","distance":0.2115}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-manage-cache-tags-for-external-origins","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-reverse-proxy-rewrites-external","via":"inbound"},{"site":"vercel-docs","path":"/docs/routing/project-routing-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/edit-a-routing-rule","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/promote-restore-or-discard-a-routing-rule-version","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/add-a-routing-rule","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/redirects","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/sandbox","title":"vercel sandbox","summary":"Interact with Vercel Sandbox from the Vercel CLI: list, create, connect, exec, copy, stop, and snapshot sandboxes from your terminal.","outbound":[{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/cli-reference"},{"site":"vercel-docs","path":"/docs/sandbox/quickstart"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/sandbox/run-commands-in-sandbox","distance":0.1017},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","distance":0.1488},{"site":"vercel-docs","path":"/docs/sandbox","distance":0.1722},{"site":"vercel-docs","path":"/docs/sandbox/quickstart","distance":0.1722},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes","distance":0.1921}],"related":[{"site":"vercel-docs","path":"/docs/sandbox/run-commands-in-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-snapshots-for-faster-sandbox-startup","via":"neighbor"},{"site":"v0","path":"/docs/sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reconnect-to-a-running-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-sandbox","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/security","title":"vercel security","summary":"Learn about vercel security on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/rbac/access-roles"},{"site":"vercel-docs","path":"/docs/security"},{"site":"vercel-docs","path":"/docs/security/security-dashboard"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/security/security-dashboard"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/security/security-dashboard","distance":0.1218},{"site":"vercel-docs","path":"/docs/cli/project","distance":0.2443},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-all-checks-for-a-project","distance":0.262},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-runs-for-a-check","distance":0.2745},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check-run","distance":0.2779}],"related":[{"site":"vercel-docs","path":"/docs/cli/project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-all-checks-for-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-runs-for-a-check","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check-run","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/api","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/skills","title":"vercel skills","summary":"Discover agent skills relevant to your project using the vercel skills CLI command.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/cli"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/skills","distance":0.1658},{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","distance":0.2361},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","distance":0.2788},{"site":"vercel-docs","path":"/docs/cli/api","distance":0.3024},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin","distance":0.3045}],"related":[{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-skills","via":"neighbor"},{"site":"eve","path":"/docs/skills","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/skills","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/tanstack-intent-vs-skills","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/agent","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/switch","title":"vercel switch","summary":"Learn how to switch between different team scopes using the vercel switch CLI command.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/cli"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/teams","distance":0.2237},{"site":"vercel-docs","path":"/docs/cli/login","distance":0.2915},{"site":"vercel-docs","path":"/docs/cli/dev","distance":0.2994},{"site":"vercel-docs","path":"/docs/cli/global-options","distance":0.301},{"site":"vercel-docs","path":"/docs/cli/project-linking","distance":0.3021}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-select-a-team-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/teams","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/login","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/dev","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/global-options","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/project-linking","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/target","title":"vercel target","summary":"Work with custom environments using the --target flag in Vercel CLI.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/environment-variables/manage-across-environments"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/build","distance":0.2475},{"site":"vercel-docs","path":"/docs/cli/deploy","distance":0.2542},{"site":"vercel-docs","path":"/docs/environment-variables/manage-across-environments","distance":0.267},{"site":"vercel-docs","path":"/docs/cli/redeploy","distance":0.2779},{"site":"vercel-docs","path":"/docs/cli/list","distance":0.2801}],"related":[{"site":"vercel-docs","path":"/docs/cli/build","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/manage-across-environments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/redeploy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/list","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/teams","title":"vercel teams","summary":"Learn how to list, add, switch, invite, and manage your teams with the vercel teams CLI command.","outbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/rbac/managing-team-members"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/teams/list-team-members","distance":0.1948},{"site":"vercel-docs","path":"/docs/rest-api/teams/list-all-teams","distance":0.2028},{"site":"vercel-docs","path":"/docs/cli/switch","distance":0.2237},{"site":"vercel-docs","path":"/docs/cli/project","distance":0.2245},{"site":"vercel-docs","path":"/docs/rbac/managing-team-members","distance":0.2382}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/teams/list-team-members","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/list-all-teams","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/switch","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/join-a-team","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/telemetry","title":"vercel telemetry","summary":"Learn how to manage telemetry collection.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/about-telemetry"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/about-telemetry","distance":0.0469},{"site":"turborepo","path":"/docs/telemetry","distance":0.2109},{"site":"vercel-docs","path":"/docs/analytics/accessing-metrics-with-vercel-cli","distance":0.2972},{"site":"turborepo","path":"/docs/reference/telemetry","distance":0.3018},{"site":"vercel-docs","path":"/docs/cli/metrics","distance":0.321}],"related":[{"site":"vercel-docs","path":"/docs/cli/about-telemetry","via":"neighbor"},{"site":"turborepo","path":"/docs/telemetry","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/telemetry","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/accessing-metrics-with-vercel-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/metrics","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/list","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/inspect","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/tokens","title":"vercel tokens","summary":"Manage your personal Vercel authentication tokens from the CLI: list, create, and remove access tokens for use with the Vercel API and Vercel CLI.","outbound":[{"site":"vercel-docs","path":"/docs/cli/global-options"},{"site":"vercel-kb","path":"/kb/guide/using-vercel-cli-for-custom-workflows"}],"inbound":[{"site":"vercel-docs","path":"/docs/accounts/access-tokens"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/budgets"},{"site":"vercel-docs","path":"/docs/cli"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/accounts/access-tokens","distance":0.2115},{"site":"vercel-docs","path":"/docs/rest-api/authentication/list-auth-tokens","distance":0.2233},{"site":"vercel-docs","path":"/docs/cli/project","distance":0.2273},{"site":"vercel-docs","path":"/docs/cli/api","distance":0.2429},{"site":"vercel-docs","path":"/docs/connect/concepts/tokens","distance":0.2457}],"related":[{"site":"vercel-docs","path":"/docs/accounts/access-tokens","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/authentication/list-auth-tokens","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/tokens","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/traces","title":"vercel traces","summary":"Inspect a request trace in the terminal or open it in the Vercel Dashboard.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/curl"},{"site":"vercel-docs","path":"/docs/tracing/session-tracing"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/projects/get-a-project-trace-by-request-id","distance":0.2114},{"site":"vercel-docs","path":"/docs/tracing/session-tracing","distance":0.2627},{"site":"vercel-docs","path":"/docs/cli/logs","distance":0.263},{"site":"vercel-docs","path":"/docs/tracing","distance":0.2819},{"site":"vercel-docs","path":"/docs/cli/activity","distance":0.3099}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/projects/get-a-project-trace-by-request-id","via":"neighbor"},{"site":"vercel-docs","path":"/docs/tracing/session-tracing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/logs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/tracing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/activity","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/upgrade","title":"vercel upgrade","summary":"Upgrade the Vercel CLI to the latest version and manage automatic updates with the vercel upgrade CLI command.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/cli"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/build","distance":0.2821},{"site":"vercel-docs","path":"/docs/cli/help","distance":0.2855},{"site":"vercel-docs","path":"/docs/cli/api","distance":0.2908},{"site":"vercel-docs","path":"/docs/cli/dev","distance":0.2976},{"site":"vercel-docs","path":"/docs/cli/deploy","distance":0.2989}],"related":[{"site":"vercel-docs","path":"/docs/cli/build","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/help","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/dev","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploy","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/usage","title":"vercel usage","summary":"Learn how to view billing usage and costs, for your Vercel account using the vercel usage CLI command.","outbound":[{"site":"vercel-docs","path":"/docs/rbac/access-roles"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/metrics","distance":0.2384},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","distance":0.2391},{"site":"vercel-docs","path":"/docs/cli/api","distance":0.2638},{"site":"vercel-docs","path":"/docs/cli/help","distance":0.264},{"site":"vercel-docs","path":"/docs/cli/buy","distance":0.2655}],"related":[{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-summary","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/metrics","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/help","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/buy","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/vcr","title":"vercel vcr","summary":"Manage Vercel Container Registry from the Vercel CLI: list, inspect, create, and delete repositories, browse tags, and manage images from your terminal.","outbound":[{"site":"vercel-docs","path":"/docs/container-registry"},{"site":"vercel-docs","path":"/docs/container-registry/cli-reference"},{"site":"vercel-docs","path":"/docs/container-registry/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/container-registry/public-and-shared-repositories"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/container-registry","distance":0.0929},{"site":"vercel-docs","path":"/docs/container-registry/getting-started","distance":0.1605},{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-container-registry","distance":0.1961},{"site":"vercel-docs","path":"/docs/container-registry/public-and-shared-repositories","distance":0.223},{"site":"vercel-docs","path":"/docs/cli/crons","distance":0.2352}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-container-registry","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-ghcr-to-vcr","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/docker","via":"neighbor"},{"site":"vercel-docs","path":"/docs/container-registry/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/crons","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/manage-blob-storage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repositories","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/webhooks","title":"vercel webhooks","summary":"Learn how to manage webhooks for your Vercel account using the vercel webhooks CLI command.","outbound":[{"site":"vercel-docs","path":"/docs/headers/request-headers"},{"site":"vercel-docs","path":"/docs/webhooks"},{"site":"vercel-docs","path":"/docs/webhooks/webhooks-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/deploy-hooks","distance":0.1968},{"site":"vercel-docs","path":"/docs/webhooks","distance":0.2142},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/creates-a-webhook","distance":0.2264},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/get-a-list-of-webhooks","distance":0.2294},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/get-a-webhook","distance":0.2353}],"related":[{"site":"vercel-docs","path":"/docs/cli/deploy-hooks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/creates-a-webhook","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/get-a-list-of-webhooks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/get-a-webhook","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/api","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cli/whoami","title":"vercel whoami","summary":"Learn how to display the username of the currently logged in user with the vercel whoami CLI command.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/cli"}],"requires":[{"site":"vercel-docs","path":"/docs/cli"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/login","distance":0.2157},{"site":"vercel-docs","path":"/docs/cli/help","distance":0.2886},{"site":"vercel-docs","path":"/docs/cli/logout","distance":0.3016},{"site":"vercel-docs","path":"/docs/cli/switch","distance":0.3423},{"site":"vercel-docs","path":"/docs/cli/upgrade","distance":0.3639}],"related":[{"site":"vercel-docs","path":"/docs/cli/login","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/help","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/logout","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/switch","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/upgrade","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/comments","title":"Comments","summary":"Comments allow teams and invited participants to give direct feedback on preview deployments. Learn more about Comments in this overview.","outbound":[{"site":"vercel-docs","path":"/docs/cli/comments"},{"site":"vercel-docs","path":"/docs/comments/how-comments-work"},{"site":"vercel-docs","path":"/docs/comments/integrations"},{"site":"vercel-docs","path":"/docs/comments/managing-comments"},{"site":"vercel-docs","path":"/docs/comments/using-comments"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/deployments/sharing-deployments"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost/add-to-production"}],"inbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/comments"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/sharable-links"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication"},{"site":"vercel-docs","path":"/docs/deployments/sharing-deployments"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes"},{"site":"vercel-docs","path":"/docs/plans/hobby"},{"site":"vercel-docs","path":"/docs/project-configuration/general-settings"},{"site":"vercel-docs","path":"/docs/projects/transferring-projects"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/comments/how-comments-work","distance":0.1032},{"site":"vercel-docs","path":"/docs/comments/using-comments","distance":0.1255},{"site":"vercel-docs","path":"/docs/comments/managing-comments","distance":0.1358},{"site":"vercel-docs","path":"/docs/comments/integrations","distance":0.2122},{"site":"vercel-docs","path":"/docs/vercel-toolbar","distance":0.2147}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-prevent-vercel-github-comments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/managing-toolbar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/general-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/browser-extension","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/comments/how-comments-work","title":"Enabling Comments","summary":"Learn when and where Comments are available, and how to enable and disable Comments at the account, project, and session or interface levels.","outbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/deployments/sharing-deployments"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/managing-toolbar"}],"inbound":[{"site":"vercel-docs","path":"/docs/comments"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/create-react-app"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit"}],"requires":[{"site":"vercel-docs","path":"/docs/comments"}],"neighbors":[{"site":"vercel-docs","path":"/docs/comments","distance":0.1032},{"site":"vercel-docs","path":"/docs/comments/managing-comments","distance":0.1875},{"site":"vercel-docs","path":"/docs/comments/using-comments","distance":0.1884},{"site":"vercel-docs","path":"/docs/vercel-toolbar/managing-toolbar","distance":0.2081},{"site":"vercel-docs","path":"/docs/vercel-toolbar","distance":0.2113}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-prevent-vercel-github-comments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments/managing-comments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments/using-comments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost/add-to-production","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments/integrations","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/comments/integrations","title":"Integrations","summary":"Learn how Comments integrates with Git providers like GitHub, GitLab, and BitBucket, as well as the Vercel app for Slack.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/git/vercel-for-github"},{"site":"vercel-docs","path":"/docs/project-configuration/general-settings"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost"}],"inbound":[{"site":"vercel-docs","path":"/docs/comments"},{"site":"vercel-docs","path":"/docs/comments/managing-comments"},{"site":"vercel-docs","path":"/docs/comments/using-comments"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-observability"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost/add-to-production"}],"requires":[{"site":"vercel-docs","path":"/docs/comments"}],"neighbors":[{"site":"vercel-docs","path":"/docs/comments/using-comments","distance":0.2058},{"site":"vercel-docs","path":"/docs/comments/managing-comments","distance":0.2101},{"site":"vercel-docs","path":"/docs/comments","distance":0.2122},{"site":"vercel-docs","path":"/docs/cli/comments","distance":0.2176},{"site":"v0","path":"/docs/slack","distance":0.2287}],"related":[{"site":"v0","path":"/docs/slack","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/run-and-track-deploys-from-slack","via":"neighbor"},{"site":"v0","path":"/docs/github","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments/using-comments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments/managing-comments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/comments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/comments/managing-comments","title":"Managing Comments","summary":"Learn how to manage Comments on your Preview Deployments from Team members and invited collaborators.","outbound":[{"site":"vercel-docs","path":"/docs/comments/integrations"}],"inbound":[{"site":"vercel-docs","path":"/docs/comments"},{"site":"vercel-docs","path":"/docs/notifications"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"}],"requires":[{"site":"vercel-docs","path":"/docs/comments"}],"neighbors":[{"site":"vercel-docs","path":"/docs/comments/using-comments","distance":0.1022},{"site":"vercel-docs","path":"/docs/comments","distance":0.1358},{"site":"vercel-docs","path":"/docs/comments/how-comments-work","distance":0.1875},{"site":"vercel-docs","path":"/docs/comments/integrations","distance":0.2101},{"site":"vercel-docs","path":"/docs/cli/comments","distance":0.248}],"related":[{"site":"vercel-docs","path":"/docs/comments/using-comments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments/how-comments-work","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/comments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/comments/using-comments","title":"Using Comments","summary":"This guide will help you get started with using Comments with your Vercel Preview Deployments.","outbound":[{"site":"vercel-docs","path":"/docs/comments/integrations"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost/add-to-production"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli/comments"},{"site":"vercel-docs","path":"/docs/comments"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/interaction-timing-tool"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/layout-shift-tool"}],"requires":[{"site":"vercel-docs","path":"/docs/comments"}],"neighbors":[{"site":"vercel-docs","path":"/docs/comments/managing-comments","distance":0.1022},{"site":"vercel-docs","path":"/docs/comments","distance":0.1255},{"site":"vercel-docs","path":"/docs/comments/how-comments-work","distance":0.1884},{"site":"vercel-docs","path":"/docs/comments/integrations","distance":0.2058},{"site":"vercel-docs","path":"/docs/cli/comments","distance":0.2342}],"related":[{"site":"vercel-docs","path":"/docs/comments/managing-comments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments/how-comments-work","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/comments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/connect","title":"Connect","summary":"Use Vercel Connect to create connectors, authorize provider access, request provider tokens at runtime, and run agent workflows without long-lived environment secrets.","outbound":[{"site":"vercel-docs","path":"/docs/cli/connect"},{"site":"vercel-docs","path":"/docs/connect/concepts"},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication"},{"site":"vercel-docs","path":"/docs/connect/concepts/connectors"},{"site":"vercel-docs","path":"/docs/connect/concepts/installations"},{"site":"vercel-docs","path":"/docs/connect/concepts/tokens"},{"site":"vercel-docs","path":"/docs/connect/concepts/triggers"},{"site":"vercel-docs","path":"/docs/connect/legal"},{"site":"vercel-docs","path":"/docs/connect/observability"},{"site":"vercel-docs","path":"/docs/connect/pricing"},{"site":"vercel-docs","path":"/docs/connect/quickstart"},{"site":"vercel-docs","path":"/docs/connect/ts-sdk-reference"},{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/oidc"},{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"chat-sdk","path":"/docs/vercel-connect"},{"site":"eve","path":"/docs/connections"},{"site":"v0","path":"/docs/vercel-connect"},{"site":"vercel-docs","path":"/docs/cli/connect"},{"site":"vercel-docs","path":"/docs/connect/concepts/connectors"},{"site":"vercel-docs","path":"/docs/connect/legal"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/eve"},{"site":"vercel-docs","path":"/docs/eve/concepts"},{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/kms"},{"site":"vercel-docs","path":"/docs/kms/concepts/authentication"},{"site":"vercel-docs","path":"/docs/kms/concepts/connect-grants"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk"},{"site":"vercel-kb","path":"/kb/guide/build-a-browser-agent"},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/daily-digest-bot-with-chat-sdk-and-workflow-sdk"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent"},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot"},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter"},{"site":"vercel-kb","path":"/kb/guide/eve-typefully-social-media-agent"},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve"},{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/linear-agent-vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/marketing-team-eve"},{"site":"vercel-kb","path":"/kb/guide/nuxt-and-vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/sanity-eve-agent"},{"site":"vercel-kb","path":"/kb/guide/slack-bot-vercel-blob"},{"site":"vercel-kb","path":"/kb/guide/vercel-connect"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-connect","distance":0.0644},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","distance":0.0932},{"site":"vercel-docs","path":"/docs/connect/concepts/connectors","distance":0.1184},{"site":"vercel-docs","path":"/docs/connect/quickstart","distance":0.1335},{"site":"vercel-docs","path":"/docs/connect/ts-sdk-reference","distance":0.1448}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-connect","via":"neighbor"},{"site":"chat-sdk","path":"/docs/vercel-connect","via":"inbound"},{"site":"eve","path":"/docs/connections","via":"inbound"},{"site":"v0","path":"/docs/vercel-connect","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/build-a-browser-agent","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/daily-digest-bot-with-chat-sdk-and-workflow-sdk","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"inbound"},{"site":"vercel-docs","path":"/docs/deployments/environments","via":"inbound"},{"site":"vercel-docs","path":"/docs/eve","via":"inbound"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"inbound"},{"site":"vercel-docs","path":"/docs/kms","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/connect/concepts","title":"Concepts","summary":"Understand the core building blocks of Vercel Connect: connectors, installations, tokens, project links, triggers, and authentication.","outbound":[{"site":"vercel-docs","path":"/docs/cli/connect"},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication"},{"site":"vercel-docs","path":"/docs/connect/concepts/connectors"},{"site":"vercel-docs","path":"/docs/connect/concepts/installations"},{"site":"vercel-docs","path":"/docs/connect/concepts/project-links"},{"site":"vercel-docs","path":"/docs/connect/concepts/tokens"},{"site":"vercel-docs","path":"/docs/connect/concepts/triggers"},{"site":"vercel-docs","path":"/docs/connect/quickstart"},{"site":"vercel-docs","path":"/docs/connect/ts-sdk-reference"}],"inbound":[{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/connect/quickstart"},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve"},{"site":"vercel-kb","path":"/kb/guide/nuxt-and-vercel-connect"}],"requires":[{"site":"vercel-docs","path":"/docs/connect"}],"neighbors":[{"site":"vercel-docs","path":"/docs/connect/concepts/connectors","distance":0.138},{"site":"vercel-docs","path":"/docs/connect","distance":0.1505},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","distance":0.1582},{"site":"vercel-kb","path":"/kb/guide/vercel-connect","distance":0.1779},{"site":"vercel-docs","path":"/docs/connect/ts-sdk-reference","distance":0.1842}],"related":[{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/nuxt-and-vercel-connect","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-connect","via":"neighbor"},{"site":"v0","path":"/docs/vercel-connect","via":"neighbor"},{"site":"chat-sdk","path":"/docs/vercel-connect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/kms/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","title":"Authentication","summary":"Every Vercel Connect token request has two legs that both have to authenticate: the caller calling Vercel Connect, and Vercel Connect calling the provider.","outbound":[{"site":"vercel-docs","path":"/docs/connect/concepts/installations"},{"site":"vercel-docs","path":"/docs/connect/concepts/project-links"},{"site":"vercel-docs","path":"/docs/connect/concepts/tokens"},{"site":"vercel-docs","path":"/docs/connect/ts-sdk-reference"},{"site":"vercel-docs","path":"/docs/oidc"},{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/connect/concepts"},{"site":"vercel-docs","path":"/docs/connect/concepts/project-links"},{"site":"vercel-docs","path":"/docs/connect/quickstart"},{"site":"vercel-docs","path":"/docs/connect/ts-sdk-reference"}],"requires":[{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/connect/concepts"}],"neighbors":[{"site":"vercel-docs","path":"/docs/connect/ts-sdk-reference","distance":0.0916},{"site":"vercel-docs","path":"/docs/connect","distance":0.0932},{"site":"vercel-docs","path":"/docs/connect/concepts/tokens","distance":0.1192},{"site":"vercel-kb","path":"/kb/guide/vercel-connect","distance":0.1247},{"site":"vercel-docs","path":"/docs/connect/quickstart","distance":0.1463}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-connect","via":"neighbor"},{"site":"chat-sdk","path":"/docs/vercel-connect","via":"neighbor"},{"site":"v0","path":"/docs/vercel-connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/complete-guide-authentication-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/connectors","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/connect/concepts/connectors","title":"Connectors","summary":"A connector is the team-owned record that represents one third-party service. Its type determines which capabilities are available.","outbound":[{"site":"vercel-docs","path":"/docs/cli/connect"},{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/connect/concepts/installations"},{"site":"vercel-docs","path":"/docs/connect/concepts/project-links"},{"site":"vercel-docs","path":"/docs/connect/legal"},{"site":"vercel-docs","path":"/docs/connect/quickstart"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli/connect"},{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/connect/concepts"},{"site":"vercel-docs","path":"/docs/connect/concepts/installations"},{"site":"vercel-docs","path":"/docs/connect/concepts/triggers"},{"site":"vercel-kb","path":"/kb/guide/vercel-connect"}],"requires":[{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/connect/concepts"}],"neighbors":[{"site":"vercel-docs","path":"/docs/connect","distance":0.1184},{"site":"vercel-docs","path":"/docs/connect/concepts","distance":0.138},{"site":"vercel-kb","path":"/kb/guide/vercel-connect","distance":0.1476},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","distance":0.1614},{"site":"vercel-docs","path":"/docs/cli/connect","distance":0.1719}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-connect","via":"neighbor"},{"site":"chat-sdk","path":"/docs/vercel-connect","via":"neighbor"},{"site":"v0","path":"/docs/vercel-connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/nuxt-and-vercel-connect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/ts-sdk-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/tokens","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/connect/concepts/installations","title":"Installations","summary":"Installations let one connector serve many tenants. One Slack connector, for example, can serve many Slack workspaces, each with its own grant.","outbound":[{"site":"vercel-docs","path":"/docs/connect/concepts/connectors"},{"site":"vercel-docs","path":"/docs/connect/concepts/tokens"},{"site":"vercel-docs","path":"/docs/connect/ts-sdk-reference"}],"inbound":[{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/connect/concepts"},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication"},{"site":"vercel-docs","path":"/docs/connect/concepts/connectors"},{"site":"vercel-docs","path":"/docs/connect/ts-sdk-reference"}],"requires":[{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/connect/concepts"}],"neighbors":[{"site":"vercel-docs","path":"/docs/connect/concepts/connectors","distance":0.2099},{"site":"vercel-docs","path":"/docs/connect/concepts","distance":0.2216},{"site":"vercel-docs","path":"/docs/connect","distance":0.2443},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","distance":0.2514},{"site":"vercel-docs","path":"/docs/connect/concepts/tokens","distance":0.2576}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-connect","via":"neighbor"},{"site":"chat-sdk","path":"/docs/vercel-connect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/connect/create-a-connect-installation-request","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/connect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/connect/concepts/project-links","title":"Project links","summary":"A project link binds a connector to a Vercel project, scoped to one or more environments. The link is what authorizes a runtime token request.","outbound":[{"site":"vercel-docs","path":"/docs/cli/connect"},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication"},{"site":"vercel-docs","path":"/docs/connect/concepts/tokens"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/oidc"}],"inbound":[{"site":"vercel-docs","path":"/docs/connect/concepts"},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication"},{"site":"vercel-docs","path":"/docs/connect/concepts/connectors"},{"site":"vercel-docs","path":"/docs/connect/concepts/tokens"},{"site":"vercel-docs","path":"/docs/connect/pricing"},{"site":"vercel-docs","path":"/docs/connect/ts-sdk-reference"},{"site":"vercel-docs","path":"/docs/deployments/environments"}],"requires":[{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/connect/concepts"}],"neighbors":[{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","distance":0.2057},{"site":"vercel-docs","path":"/docs/cli/project-linking","distance":0.2375},{"site":"vercel-docs","path":"/docs/connect/concepts","distance":0.2491},{"site":"vercel-kb","path":"/kb/guide/vercel-connect","distance":0.2516},{"site":"vercel-docs","path":"/docs/connect/concepts/connectors","distance":0.2571}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-connect","via":"neighbor"},{"site":"chat-sdk","path":"/docs/vercel-connect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/project-linking","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/connectors","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/link","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/connect/concepts/tokens","title":"Tokens","summary":"Short-lived provider credentials issued by Vercel Connect. Each token request specifies a subject, optional installation, scopes, and provider-specific options.","outbound":[{"site":"vercel-docs","path":"/docs/cli/connect"},{"site":"vercel-docs","path":"/docs/connect/concepts/project-links"},{"site":"vercel-docs","path":"/docs/connect/concepts/triggers"},{"site":"vercel-docs","path":"/docs/connect/ts-sdk-reference"}],"inbound":[{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/connect/concepts"},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication"},{"site":"vercel-docs","path":"/docs/connect/concepts/installations"},{"site":"vercel-docs","path":"/docs/connect/concepts/project-links"},{"site":"vercel-docs","path":"/docs/connect/concepts/triggers"},{"site":"vercel-docs","path":"/docs/connect/quickstart"},{"site":"vercel-docs","path":"/docs/connect/ts-sdk-reference"}],"requires":[{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/connect/concepts"}],"neighbors":[{"site":"vercel-docs","path":"/docs/connect/ts-sdk-reference","distance":0.1105},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","distance":0.1192},{"site":"vercel-docs","path":"/docs/connect","distance":0.1601},{"site":"vercel-kb","path":"/kb/guide/vercel-connect","distance":0.1826},{"site":"vercel-docs","path":"/docs/connect/concepts","distance":0.208}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-connect","via":"neighbor"},{"site":"chat-sdk","path":"/docs/vercel-connect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/connect/get-a-connect-token","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/connect/import-connect-tokens","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/tokens","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/connect/concepts/triggers","title":"Triggers","summary":"Incoming webhooks from third-party services, verified by Vercel Connect and forwarded to your projects.","outbound":[{"site":"vercel-docs","path":"/docs/cli/connect"},{"site":"vercel-docs","path":"/docs/connect/concepts/connectors"},{"site":"vercel-docs","path":"/docs/connect/concepts/tokens"},{"site":"vercel-docs","path":"/docs/connect/quickstart"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain-to-environment"}],"inbound":[{"site":"chat-sdk","path":"/docs/vercel-connect"},{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/connect/concepts"},{"site":"vercel-docs","path":"/docs/connect/concepts/tokens"},{"site":"vercel-docs","path":"/docs/deployments/environments"}],"requires":[{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/connect/concepts"}],"neighbors":[{"site":"vercel-docs","path":"/docs/connect/observability","distance":0.2394},{"site":"vercel-kb","path":"/kb/guide/vercel-connect","distance":0.2465},{"site":"vercel-docs","path":"/docs/connect/concepts","distance":0.2645},{"site":"vercel-docs","path":"/docs/deploy-hooks","distance":0.2698},{"site":"vercel-docs","path":"/docs/connect","distance":0.2785}],"related":[{"site":"chat-sdk","path":"/docs/vercel-connect","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-connect","via":"neighbor"},{"site":"v0","path":"/docs/vercel-connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deploy-hooks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/webhooks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/alerts/configure-alerts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/ts-sdk-reference","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/connect/legal","title":"Legal","summary":"Product terms governing your use of Vercel Connect, including Customer Managed Connectors, Vercel Managed Connectors, and Vercel Assisted Setup.","outbound":[{"site":"vercel-docs","path":"/docs/connect"}],"inbound":[{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/connect/concepts/connectors"},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/linear-agent-vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/slack-bot-vercel-blob"},{"site":"vercel-kb","path":"/kb/guide/vercel-connect"}],"requires":[{"site":"vercel-docs","path":"/docs/connect"}],"neighbors":[{"site":"vercel-docs","path":"/docs/connect","distance":0.2349},{"site":"vercel-docs","path":"/docs/connect/concepts","distance":0.2431},{"site":"vercel-docs","path":"/docs/connect/concepts/connectors","distance":0.248},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","distance":0.261},{"site":"vercel-kb","path":"/kb/guide/vercel-connect","distance":0.279}],"related":[{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/linear-agent-vercel-connect","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/slack-bot-vercel-blob","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-connect","via":"inbound"},{"site":"v0","path":"/docs/vercel-connect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/connectors","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/ts-sdk-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/compliance","via":"neighbor"},{"site":"vercel-docs","path":"/docs/kms/concepts","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/connect/observability","title":"Observability","summary":"Learn about observability on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/activity-log"},{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/plans/hobby"}],"inbound":[{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/drains"}],"requires":[{"site":"vercel-docs","path":"/docs/connect"}],"neighbors":[{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","distance":0.2375},{"site":"vercel-docs","path":"/docs/connect/concepts/triggers","distance":0.2394},{"site":"vercel-docs","path":"/docs/connect","distance":0.2462},{"site":"vercel-docs","path":"/docs/connect/concepts/tokens","distance":0.2496},{"site":"vercel-kb","path":"/kb/guide/vercel-connect","distance":0.255}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-connect","via":"neighbor"},{"site":"chat-sdk","path":"/docs/vercel-connect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/triggers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/tokens","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/ts-sdk-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/connect/pricing","title":"Pricing and Limits","summary":"How Vercel Connect is billed across plans, how to stop being billed, and the platform limits that apply during beta.","outbound":[{"site":"vercel-docs","path":"/docs/connect/concepts/project-links"},{"site":"vercel-docs","path":"/docs/connect/ts-sdk-reference"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/plans/hobby"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"}],"inbound":[{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/connect/quickstart"},{"site":"vercel-kb","path":"/kb/guide/vercel-connect"}],"requires":[{"site":"vercel-docs","path":"/docs/connect"}],"neighbors":[{"site":"vercel-docs","path":"/docs/connect","distance":0.1724},{"site":"vercel-kb","path":"/kb/guide/vercel-connect","distance":0.2074},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","distance":0.25},{"site":"vercel-docs","path":"/docs/connect/concepts/tokens","distance":0.2597},{"site":"vercel-docs","path":"/docs/agent/pricing","distance":0.2613}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-connect","via":"inbound"},{"site":"v0","path":"/docs/pricing","via":"neighbor"},{"site":"v0","path":"/docs/vercel-connect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/tokens","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues/pricing","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/connect/quickstart","title":"Quickstart","summary":"Create your first connector in Vercel Connect, install the SDK, and request a runtime provider token from your code.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/connect"},{"site":"vercel-docs","path":"/docs/connect/concepts"},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication"},{"site":"vercel-docs","path":"/docs/connect/concepts/tokens"},{"site":"vercel-docs","path":"/docs/connect/pricing"},{"site":"vercel-docs","path":"/docs/connect/ts-sdk-reference"},{"site":"vercel-docs","path":"/docs/deployments/environments"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli/connect"},{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/connect/concepts"},{"site":"vercel-docs","path":"/docs/connect/concepts/connectors"},{"site":"vercel-docs","path":"/docs/connect/concepts/triggers"},{"site":"vercel-docs","path":"/docs/connect/ts-sdk-reference"},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/linear-agent-vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/nuxt-and-vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/slack-bot-vercel-blob"},{"site":"vercel-kb","path":"/kb/guide/vercel-connect"}],"requires":[{"site":"vercel-docs","path":"/docs/connect"}],"neighbors":[{"site":"vercel-docs","path":"/docs/connect","distance":0.1335},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","distance":0.1463},{"site":"vercel-kb","path":"/kb/guide/vercel-connect","distance":0.1587},{"site":"vercel-docs","path":"/docs/connect/ts-sdk-reference","distance":0.1674},{"site":"vercel-kb","path":"/kb/guide/nuxt-and-vercel-connect","distance":0.1752}],"related":[{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/linear-agent-vercel-connect","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/nuxt-and-vercel-connect","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/slack-bot-vercel-blob","via":"inbound"},{"site":"chat-sdk","path":"/docs/vercel-connect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/connectors","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/installations","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/project-links","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/connect/ts-sdk-reference","title":"SDK Reference","summary":"API reference for @vercel/connect, the TypeScript SDK for requesting runtime tokens from Vercel Connect.","outbound":[{"site":"vercel-docs","path":"/docs/cli/connect"},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication"},{"site":"vercel-docs","path":"/docs/connect/concepts/installations"},{"site":"vercel-docs","path":"/docs/connect/concepts/project-links"},{"site":"vercel-docs","path":"/docs/connect/concepts/tokens"},{"site":"vercel-docs","path":"/docs/connect/quickstart"}],"inbound":[{"site":"chat-sdk","path":"/docs/vercel-connect"},{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/connect/concepts"},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication"},{"site":"vercel-docs","path":"/docs/connect/concepts/installations"},{"site":"vercel-docs","path":"/docs/connect/concepts/tokens"},{"site":"vercel-docs","path":"/docs/connect/pricing"},{"site":"vercel-docs","path":"/docs/connect/quickstart"},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/linear-agent-vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/nuxt-and-vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/slack-bot-vercel-blob"}],"requires":[{"site":"vercel-docs","path":"/docs/connect"}],"neighbors":[{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","distance":0.0916},{"site":"vercel-docs","path":"/docs/connect/concepts/tokens","distance":0.1105},{"site":"vercel-docs","path":"/docs/connect","distance":0.1448},{"site":"chat-sdk","path":"/docs/vercel-connect","distance":0.164},{"site":"vercel-docs","path":"/docs/connect/quickstart","distance":0.1674}],"related":[{"site":"chat-sdk","path":"/docs/vercel-connect","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/linear-agent-vercel-connect","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/nuxt-and-vercel-connect","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/slack-bot-vercel-blob","via":"inbound"},{"site":"vercel-docs","path":"/docs/connect/concepts/connectors","via":"neighbor"},{"site":"vercel-docs","path":"/docs/kms/ts-sdk-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/observability","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/container-registry","title":"Container Registry","summary":"Store and manage Docker container images on Vercel. Push images built from a Dockerfile, then run them on Vercel Functions or in Vercel Sandbox.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/container-registry/cli-reference"},{"site":"vercel-docs","path":"/docs/container-registry/getting-started"},{"site":"vercel-docs","path":"/docs/container-registry/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/container-registry/public-and-shared-repositories"},{"site":"vercel-docs","path":"/docs/functions/container-images"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/images"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/vcr"},{"site":"vercel-docs","path":"/docs/container-registry/cli-reference"},{"site":"vercel-docs","path":"/docs/container-registry/getting-started"},{"site":"vercel-docs","path":"/docs/functions/container-images"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/products"},{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/concepts"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/images"},{"site":"vercel-kb","path":"/kb/guide/deploy-go-using-docker-vercel"},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/deploy-php-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/docker"},{"site":"vercel-kb","path":"/kb/guide/docker-on-vercel-vs-render"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments"},{"site":"vercel-kb","path":"/kb/guide/dot-net-asp-net-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-container-registry"},{"site":"vercel-kb","path":"/kb/guide/kubernetes-manifests-to-vercel-json"},{"site":"vercel-kb","path":"/kb/guide/migrate-cloud-run-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-fly-io-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-ghcr-to-vcr"},{"site":"vercel-kb","path":"/kb/guide/migrate-railway-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/test-container-image-vercel-sandbox"},{"site":"vercel-kb","path":"/kb/guide/vercel-docker-python-apps"},{"site":"vercel-kb","path":"/kb/guide/vercel-kubernetes-support"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-kubernetes"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-container-registry","distance":0.0855},{"site":"vercel-docs","path":"/docs/cli/vcr","distance":0.0929},{"site":"vercel-docs","path":"/docs/container-registry/getting-started","distance":0.1172},{"site":"vercel-kb","path":"/kb/guide/docker","distance":0.1596},{"site":"vercel-kb","path":"/kb/guide/migrate-ghcr-to-vcr","distance":0.1711}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-container-registry","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-go-using-docker-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/deploy-php-on-vercel-with-docker","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker","via":"inbound"},{"site":"vercel-docs","path":"/docs/cli/vcr","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/create-a-repository","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-images","via":"neighbor"},{"site":"vercel-docs","path":"/docs/products","via":"inbound"},{"site":"vercel-docs","path":"/docs/sandbox","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/container-registry/cli-reference","title":"CLI Reference","summary":"Use the vercel vcr command group to manage Vercel Container Registry repositories, tags, and images from the command line.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/link"},{"site":"vercel-docs","path":"/docs/container-registry"},{"site":"vercel-docs","path":"/docs/container-registry/public-and-shared-repositories"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/vcr"},{"site":"vercel-docs","path":"/docs/container-registry"},{"site":"vercel-docs","path":"/docs/container-registry/getting-started"},{"site":"vercel-docs","path":"/docs/container-registry/public-and-shared-repositories"},{"site":"vercel-kb","path":"/kb/guide/migrate-ghcr-to-vcr"}],"requires":[{"site":"vercel-docs","path":"/docs/container-registry"}],"neighbors":[{"site":"vercel-docs","path":"/docs/container-registry","distance":0.253},{"site":"vercel-docs","path":"/docs/cli/vcr","distance":0.2645},{"site":"vercel-docs","path":"/docs/cli/blob","distance":0.2849},{"site":"vercel-docs","path":"/docs/cli/project","distance":0.2887},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-images","distance":0.3083}],"related":[{"site":"vercel-kb","path":"/kb/guide/migrate-ghcr-to-vcr","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-container-registry","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/vcr","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/blob","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-images","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository-image","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/container-registry/getting-started","title":"Getting Started","summary":"Learn about getting started on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/container-registry"},{"site":"vercel-docs","path":"/docs/container-registry/cli-reference"},{"site":"vercel-docs","path":"/docs/functions/container-images"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/images"}],"inbound":[{"site":"vercel-docs","path":"/docs/container-registry"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/images"},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference"}],"requires":[{"site":"vercel-docs","path":"/docs/container-registry"}],"neighbors":[{"site":"vercel-docs","path":"/docs/container-registry","distance":0.1172},{"site":"vercel-docs","path":"/docs/cli/vcr","distance":0.1605},{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-container-registry","distance":0.1619},{"site":"vercel-kb","path":"/kb/guide/docker","distance":0.2028},{"site":"vercel-docs","path":"/docs/sandbox/quickstart","distance":0.23}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-container-registry","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-ghcr-to-vcr","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/vcr","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/container-registry/public-and-shared-repositories","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds/build-image","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/container-registry/limits-and-pricing","title":"Limits & Pricing","summary":"Storage pricing, size limits, plan limits, and compatibility limits for Vercel Container Registry.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/cli/vcr"},{"site":"vercel-docs","path":"/docs/container-registry"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-container-registry"},{"site":"vercel-kb","path":"/kb/guide/migrate-ghcr-to-vcr"}],"requires":[{"site":"vercel-docs","path":"/docs/container-registry"}],"neighbors":[{"site":"vercel-docs","path":"/docs/container-registry","distance":0.2289},{"site":"vercel-docs","path":"/docs/functions/container-images","distance":0.232},{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-container-registry","distance":0.2328},{"site":"vercel-docs","path":"/docs/cli/vcr","distance":0.2388},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/limits-and-pricing","distance":0.2604}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-container-registry","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/migrate-ghcr-to-vcr","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/container-images","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/vcr","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/limits-and-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/services/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/container-registry/public-and-shared-repositories","title":"Public and Shared Repositories","summary":"Learn about public and shared repositories on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/container-registry/cli-reference"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/images"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli/vcr"},{"site":"vercel-docs","path":"/docs/container-registry"},{"site":"vercel-docs","path":"/docs/container-registry/cli-reference"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/images"}],"requires":[{"site":"vercel-docs","path":"/docs/container-registry"}],"neighbors":[{"site":"vercel-docs","path":"/docs/container-registry","distance":0.1799},{"site":"vercel-docs","path":"/docs/cli/vcr","distance":0.223},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repositories","distance":0.2344},{"site":"vercel-docs","path":"/docs/rest-api/vcr/create-a-repository","distance":0.2432},{"site":"vercel-docs","path":"/docs/container-registry/getting-started","distance":0.2526}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-container-registry","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/vcr","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repositories","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/create-a-repository","via":"neighbor"},{"site":"vercel-docs","path":"/docs/container-registry/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cron-jobs","title":"Cron Jobs","summary":"Learn about cron jobs, how they work, and how to use them on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/build-output-api/configuration"},{"site":"vercel-docs","path":"/docs/cron-jobs/manage-cron-jobs"},{"site":"vercel-docs","path":"/docs/cron-jobs/quickstart"},{"site":"vercel-docs","path":"/docs/cron-jobs/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/project-configuration"}],"inbound":[{"site":"vercel-docs","path":"/docs/build-output-api/configuration"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/crons"},{"site":"vercel-docs","path":"/docs/cron-jobs/manage-cron-jobs"},{"site":"vercel-docs","path":"/docs/cron-jobs/quickstart"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/instant-rollback"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts"},{"site":"vercel-docs","path":"/docs/projects/transferring-projects"},{"site":"vercel-docs","path":"/docs/queues/poll-mode"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/devin"},{"site":"vercel-docs","path":"/docs/vercel-blob/examples"},{"site":"vercel-docs","path":"/docs/vercel-firewall/attack-mode"},{"site":"vercel-kb","path":"/kb/guide/astro-on-vercel-vs-webflow-cloud"},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/deploy-php-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/docker-compose-concepts-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/dot-net-asp-net-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall"},{"site":"vercel-kb","path":"/kb/guide/how-to-setup-cron-jobs-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-an-astro-app-from-webflow-cloud-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-cloud-run-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-containers-from-aws-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-railway-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-render-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare"},{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-cloudflare"},{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-webflow-cloud"},{"site":"vercel-kb","path":"/kb/guide/nextjs-on-vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/ship-a-elysia-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-flask-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-h3-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-hono-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-koa-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nestjs-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/tanstack-start-on-vercel-vs-cloudflare"},{"site":"vercel-kb","path":"/kb/guide/tanstack-start-on-vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-vercel-cron-jobs"},{"site":"vercel-kb","path":"/kb/guide/vercel-kubernetes-support"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-kubernetes"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/cron-jobs/quickstart","distance":0.114},{"site":"vercel-docs","path":"/docs/cron-jobs/manage-cron-jobs","distance":0.1206},{"site":"vercel-kb","path":"/kb/guide/how-to-setup-cron-jobs-on-vercel","distance":0.1233},{"site":"vercel-docs","path":"/docs/cron-jobs/usage-and-pricing","distance":0.1362},{"site":"vercel-docs","path":"/docs/cli/crons","distance":0.1671}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-setup-cron-jobs-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/astro-on-vercel-vs-webflow-cloud","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/deploy-php-on-vercel-with-docker","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker","via":"inbound"},{"site":"vercel-docs","path":"/docs/cli/crons","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/celery","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deploy-hooks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cron-jobs/manage-cron-jobs","title":"Managing Cron Jobs","summary":"Learn how to manage Cron Jobs effectively in Vercel. Explore cron job duration, error handling, deployments, concurrency control, local execution, and more to optimize your serverless workflows.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes"},{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/cron-jobs/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/instant-rollback"},{"site":"vercel-docs","path":"/docs/logs/runtime"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli/crons"},{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/cron-jobs/quickstart"},{"site":"vercel-kb","path":"/kb/guide/kubernetes-manifests-to-vercel-json"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-vercel-cron-jobs"}],"requires":[{"site":"vercel-docs","path":"/docs/cron-jobs"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cron-jobs","distance":0.1206},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-vercel-cron-jobs","distance":0.162},{"site":"vercel-docs","path":"/docs/cron-jobs/quickstart","distance":0.1772},{"site":"vercel-kb","path":"/kb/guide/how-to-setup-cron-jobs-on-vercel","distance":0.1905},{"site":"vercel-docs","path":"/docs/cron-jobs/usage-and-pricing","distance":0.2005}],"related":[{"site":"vercel-kb","path":"/kb/guide/kubernetes-manifests-to-vercel-json","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-vercel-cron-jobs","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-setup-cron-jobs-on-vercel","via":"neighbor"},{"site":"eve","path":"/docs/schedules","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nestjs-app-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cron-jobs/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/crons","via":"neighbor"},{"site":"vercel-docs","path":"/docs/limits","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/celery","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cron-jobs/quickstart","title":"Getting Started","summary":"Learn how to schedule cron jobs to run at specific times or intervals.","outbound":[{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/cron-jobs/manage-cron-jobs"},{"site":"vercel-docs","path":"/docs/cron-jobs/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/projects"}],"inbound":[{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-vercel-cron-jobs"}],"requires":[{"site":"vercel-docs","path":"/docs/cron-jobs"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cron-jobs","distance":0.114},{"site":"vercel-kb","path":"/kb/guide/how-to-setup-cron-jobs-on-vercel","distance":0.1207},{"site":"vercel-docs","path":"/docs/cli/crons","distance":0.177},{"site":"vercel-docs","path":"/docs/cron-jobs/manage-cron-jobs","distance":0.1772},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-vercel-cron-jobs","distance":0.2091}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-setup-cron-jobs-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-vercel-cron-jobs","via":"inbound"},{"site":"vercel-docs","path":"/docs/cli/crons","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/builds","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/cron-jobs/usage-and-pricing","title":"Usage & Pricing","summary":"Learn about cron jobs usage and pricing details.","outbound":[{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"}],"inbound":[{"site":"chat-sdk","path":"/docs/create-chat-sdk"},{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/cron-jobs/manage-cron-jobs"},{"site":"vercel-docs","path":"/docs/cron-jobs/quickstart"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-kb","path":"/kb/guide/devin-outposts-vercel-sandbox"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-vercel-cron-jobs"}],"requires":[{"site":"vercel-docs","path":"/docs/cron-jobs"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cron-jobs","distance":0.1362},{"site":"vercel-docs","path":"/docs/cron-jobs/manage-cron-jobs","distance":0.2005},{"site":"vercel-docs","path":"/docs/cron-jobs/quickstart","distance":0.2301},{"site":"vercel-kb","path":"/kb/guide/how-to-setup-cron-jobs-on-vercel","distance":0.2468},{"site":"vercel-docs","path":"/docs/cli/crons","distance":0.2496}],"related":[{"site":"chat-sdk","path":"/docs/create-chat-sdk","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/devin-outposts-vercel-sandbox","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-vercel-cron-jobs","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-setup-cron-jobs-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cron-jobs/manage-cron-jobs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cron-jobs/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/crons","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/custom-error-pages","title":"Custom Error Pages","summary":"Learn how to configure custom error pages for 5xx server errors on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/headers/request-headers"}],"inbound":[{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/glossary"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/custom-404-page","distance":0.2343},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-error","distance":0.2873},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/troubleshooting","distance":0.3343},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/custom-subpaths","distance":0.3357},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-404-errors","distance":0.3392}],"related":[{"site":"vercel-kb","path":"/kb/guide/custom-404-page","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-error","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-404-errors","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/avoiding-duplicate-content-with-vercel-app-urls","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-when-i-run-into-build-output-limits-with-next-js-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/troubleshooting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects/configuration-redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/build-output-api/features","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds/build-features","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/deploy-hooks","title":"Deploy Hooks","summary":"Learn how to create and trigger deploy hooks to integrate Vercel deployments with other systems.","outbound":[{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-project-collaboration"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/project-configuration/git-configuration"},{"site":"vercel-docs","path":"/docs/projects"}],"inbound":[{"site":"vercel-docs","path":"/docs/audit-log"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/deploy-hooks"},{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/deployments/deployment-policy"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/project-configuration/git-settings"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/deploy-hooks","distance":0.1284},{"site":"vercel-kb","path":"/kb/guide/set-up-and-use-deploy-hooks-with-vercel-and-headless-cms","distance":0.1557},{"site":"vercel-docs","path":"/docs/deployments","distance":0.1934},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments","distance":0.2518},{"site":"vercel-docs","path":"/docs/webhooks","distance":0.2569}],"related":[{"site":"vercel-kb","path":"/kb/guide/set-up-and-use-deploy-hooks-with-vercel-and-headless-cms","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-aren-t-commits-triggering-deployments-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploy-hooks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/webhooks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/git-settings","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/deployment-checks","title":"Deployment Checks","summary":"Set conditions that must be met before proceeding to the next phase of the deployment lifecycle.","outbound":[{"site":"vercel-docs","path":"/docs/deployments/promoting-a-deployment"},{"site":"vercel-docs","path":"/docs/git/vercel-for-github"},{"site":"vercel-docs","path":"/docs/rolling-releases"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk"}],"inbound":[{"site":"vercel-docs","path":"/docs/glossary"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/checks","distance":0.2073},{"site":"vercel-docs","path":"/docs/checks/creating-checks","distance":0.2259},{"site":"vercel-docs","path":"/docs/git/vercel-for-github","distance":0.2377},{"site":"vercel-docs","path":"/docs/git","distance":0.2525},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","distance":0.2576}],"related":[{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-github-actions-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-aren-t-commits-triggering-deployments-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/checks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/checks/creating-checks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/git-configuration","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/deployment-protection","title":"Deployment Protection","summary":"Learn how to control access to your Vercel project's preview and production URLs with Deployment Protection. Configure protection methods and scope at the project level.","outbound":[{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/deployment-protection-exceptions"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/password-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication"},{"site":"vercel-docs","path":"/docs/deployment-protection/protected-source-maps"},{"site":"vercel-docs","path":"/docs/deployments/generated-urls"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain"},{"site":"vercel-docs","path":"/docs/environment-variables/system-environment-variables"},{"site":"vercel-docs","path":"/docs/passport"},{"site":"vercel-docs","path":"/docs/plans"}],"inbound":[{"site":"vercel-docs","path":"/docs/analytics/custom-events"},{"site":"vercel-docs","path":"/docs/cli/curl"},{"site":"vercel-docs","path":"/docs/cli/httpstat"},{"site":"vercel-docs","path":"/docs/deployment-protection/automated-agent-access"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/deployment-protection-exceptions"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/password-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication"},{"site":"vercel-docs","path":"/docs/deployments/generated-urls"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments"},{"site":"vercel-docs","path":"/docs/deployments/og-preview"},{"site":"vercel-docs","path":"/docs/deployments/sharing-deployments"},{"site":"vercel-docs","path":"/docs/integrations/cms/sitecore"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel"},{"site":"vercel-docs","path":"/docs/microfrontends/local-development"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/security"},{"site":"vercel-docs","path":"/docs/passport"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/production-checklist"},{"site":"vercel-docs","path":"/docs/products"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"},{"site":"vercel-docs","path":"/docs/projects"},{"site":"vercel-docs","path":"/docs/projects/transferring-projects"},{"site":"vercel-docs","path":"/docs/rest-api/networking/configures-static-ip-s-for-a-project"},{"site":"vercel-docs","path":"/docs/security/access-control"},{"site":"vercel-docs","path":"/docs/security/security-dashboard"},{"site":"vercel-docs","path":"/docs/security/shared-responsibility"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-concepts"},{"site":"vercel-kb","path":"/kb/guide/application-authentication-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/are-vercel-preview-deployment-indexed-by-search-engines"},{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-run-end-to-end-tests-after-my-vercel-preview-deployment"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-password-protection-to-my-vercel-deployment"},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime"},{"site":"vercel-kb","path":"/kb/guide/mcp-server-chatgpt-connector"},{"site":"vercel-kb","path":"/kb/guide/run-claude-managed-agent-tools-with-vercel-sandbox"},{"site":"vercel-kb","path":"/kb/guide/vercel-passport"},{"site":"vercel-kb","path":"/kb/guide/vercel-passport-nextjs"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments","distance":0.1015},{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","distance":0.1201},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication","distance":0.1234},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection","distance":0.14},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-password-protection-to-my-vercel-deployment","distance":0.1669}],"related":[{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/application-authentication-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/are-vercel-preview-deployment-indexed-by-search-engines","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-run-end-to-end-tests-after-my-vercel-preview-deployment","via":"inbound"},{"site":"vercel-docs","path":"/docs/security/access-control","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/security-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/custom-events","via":"inbound"},{"site":"vercel-docs","path":"/docs/cli/curl","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/deployment-protection/automated-agent-access","title":"Automated & Agent Access","summary":"Grant AI agents, CI/CD pipelines, MCP servers, and testing tools access to Vercel deployments that have Deployment Protection enabled.","outbound":[{"site":"vercel-docs","path":"/docs/cli/curl"},{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/deployment-protection-exceptions"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips"},{"site":"vercel-docs","path":"/docs/environment-variables/system-environment-variables"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-password-protection-to-my-vercel-deployment"}],"requires":[{"site":"vercel-docs","path":"/docs/deployment-protection"}],"neighbors":[{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation","distance":0.1096},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection","distance":0.117},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-password-protection-to-my-vercel-deployment","distance":0.1788},{"site":"vercel-docs","path":"/docs/deployment-protection","distance":0.187},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments","distance":0.206}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-password-protection-to-my-vercel-deployment","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/test-slack-bot-with-vercel-preview-deployment","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/application-authentication-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-protection-bypass-for-automation","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection","title":"Bypass Deployment Protection","summary":"Learn how to bypass Deployment Protection for specific domains, or for all deployments in a project.","outbound":[{"site":"vercel-docs","path":"/docs/comments"},{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/deployment-protection-exceptions"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/options-allowlist"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/sharable-links"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/password-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication"}],"inbound":[{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/automated-agent-access"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments"},{"site":"vercel-docs","path":"/docs/deployment-protection/protected-source-maps"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/security"}],"requires":[{"site":"vercel-docs","path":"/docs/deployment-protection"}],"neighbors":[{"site":"vercel-docs","path":"/docs/deployment-protection/automated-agent-access","distance":0.117},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation","distance":0.1329},{"site":"vercel-docs","path":"/docs/deployment-protection","distance":0.14},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments","distance":0.1425},{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","distance":0.1589}],"related":[{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/test-slack-bot-with-vercel-preview-deployment","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-password-protection-to-my-vercel-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/automated-agent-access","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/protected-source-maps","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/curl","via":"neighbor"},{"site":"vercel-docs","path":"/docs/passport","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-protection-bypass-for-automation","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/deployment-protection-exceptions","title":"Exceptions","summary":"Disable Deployment Protection for a list of preview domains.","outbound":[{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/password-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication"}],"inbound":[{"site":"eve","path":"/docs/channels/slack"},{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/automated-agent-access"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/security"}],"requires":[{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection"}],"neighbors":[{"site":"vercel-docs","path":"/docs/deployment-protection","distance":0.1837},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection","distance":0.1893},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments","distance":0.2027},{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","distance":0.2162},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication","distance":0.2482}],"related":[{"site":"eve","path":"/docs/channels/slack","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/options-allowlist","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/automated-agent-access","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/access-control","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/preview-deployment-suffix","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/options-allowlist","title":"OPTIONS Allowlist","summary":"Learn how to disable Deployment Protection for CORS preflight requests for a list of paths.","outbound":[{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/password-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication"}],"inbound":[{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/security"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-password-protection-to-my-vercel-deployment"},{"site":"vercel-kb","path":"/kb/guide/how-to-enable-cors"}],"requires":[{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection"}],"neighbors":[{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection","distance":0.2021},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments","distance":0.2222},{"site":"vercel-docs","path":"/docs/deployment-protection","distance":0.2356},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/deployment-protection-exceptions","distance":0.2506},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication","distance":0.2551}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-password-protection-to-my-vercel-deployment","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-enable-cors","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/deployment-protection-exceptions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/security-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/access-control","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/networking/configures-static-ip-s-for-a-project","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation","title":"Protection Bypass for Automation","summary":"Learn how to bypass Vercel Deployment Protection for automated tooling \\(e.g. E2E testing\\).","outbound":[{"site":"vercel-docs","path":"/docs/bot-management"},{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/password-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication"},{"site":"vercel-docs","path":"/docs/environment-variables/system-environment-variables"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation"}],"inbound":[{"site":"eve","path":"/docs/channels/slack"},{"site":"vercel-docs","path":"/docs/analytics/custom-events"},{"site":"vercel-docs","path":"/docs/cli/curl"},{"site":"vercel-docs","path":"/docs/cli/httpstat"},{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/automated-agent-access"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/password-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication"},{"site":"vercel-docs","path":"/docs/deployment-protection/protected-source-maps"},{"site":"vercel-docs","path":"/docs/microfrontends/local-development"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/security"},{"site":"vercel-docs","path":"/docs/passport"},{"site":"vercel-docs","path":"/docs/passport/read-identity"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/quickstart"},{"site":"vercel-docs","path":"/docs/rest-api/networking/configures-static-ip-s-for-a-project"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting-sdk"},{"site":"vercel-kb","path":"/kb/guide/full-stack-preview-deployments-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-run-end-to-end-tests-after-my-vercel-preview-deployment"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-password-protection-to-my-vercel-deployment"},{"site":"vercel-kb","path":"/kb/guide/test-slack-bot-with-vercel-preview-deployment"}],"requires":[{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection"}],"neighbors":[{"site":"vercel-docs","path":"/docs/deployment-protection/automated-agent-access","distance":0.1096},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection","distance":0.1329},{"site":"vercel-kb","path":"/kb/guide/test-slack-bot-with-vercel-preview-deployment","distance":0.1853},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-password-protection-to-my-vercel-deployment","distance":0.235},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-protection-bypass-for-automation","distance":0.2474}],"related":[{"site":"eve","path":"/docs/channels/slack","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/full-stack-preview-deployments-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-run-end-to-end-tests-after-my-vercel-preview-deployment","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-password-protection-to-my-vercel-deployment","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/test-slack-bot-with-vercel-preview-deployment","via":"inbound"},{"site":"vercel-docs","path":"/docs/deployment-protection/automated-agent-access","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-protection-bypass-for-automation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/access-control","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/custom-events","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/sharable-links","title":"Sharable Links","summary":"Learn how to share your deployments with external users.","outbound":[{"site":"vercel-docs","path":"/docs/comments"},{"site":"vercel-docs","path":"/docs/deployments/sharing-deployments"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/password-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication"},{"site":"vercel-docs","path":"/docs/deployments/sharing-deployments"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/security"},{"site":"vercel-docs","path":"/docs/plans/hobby"},{"site":"vercel-docs","path":"/docs/rest-api/networking/configures-static-ip-s-for-a-project"}],"requires":[{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection"}],"neighbors":[{"site":"vercel-docs","path":"/docs/deployments/sharing-deployments","distance":0.1757},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection","distance":0.2766},{"site":"vercel-docs","path":"/docs/deployments/generated-urls","distance":0.2933},{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","distance":0.2934},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments","distance":0.3058}],"related":[{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/generated-urls","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/shared-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments","title":"Protect Deployments","summary":"Vercel offers several methods to protect your deployments: Vercel Authentication, Passport, Password Protection, and Trusted IPs.","outbound":[{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/password-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication"},{"site":"vercel-docs","path":"/docs/passport"}],"inbound":[{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection"},{"site":"vercel-docs","path":"/docs/deployments/sharing-deployments"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/security"},{"site":"vercel-docs","path":"/docs/passport"},{"site":"vercel-kb","path":"/kb/guide/vercel-passport"},{"site":"vercel-kb","path":"/kb/guide/vercel-passport-nextjs"}],"requires":[{"site":"vercel-docs","path":"/docs/deployment-protection"}],"neighbors":[{"site":"vercel-docs","path":"/docs/deployment-protection","distance":0.1015},{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","distance":0.121},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication","distance":0.1337},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection","distance":0.1425},{"site":"vercel-docs","path":"/docs/passport","distance":0.1519}],"related":[{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-passport","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-passport-nextjs","via":"inbound"},{"site":"vercel-docs","path":"/docs/security/access-control","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/deployment-protection-exceptions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/security-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/networking/configures-static-ip-s-for-a-project","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/password-protection","title":"Password Protection","summary":"Require visitors to enter a password before they can view your deployments.","outbound":[{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/sharable-links"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication"},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-an-existing-project"}],"inbound":[{"site":"vercel-docs","path":"/docs/analytics/custom-events"},{"site":"vercel-docs","path":"/docs/audit-log"},{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/deployment-protection-exceptions"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/options-allowlist"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication"},{"site":"vercel-docs","path":"/docs/deployment-protection/protected-source-maps"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments"},{"site":"vercel-docs","path":"/docs/deployments/sharing-deployments"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/security"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/plans/hobby"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"},{"site":"vercel-docs","path":"/docs/rest-api/networking/configures-static-ip-s-for-a-project"},{"site":"vercel-docs","path":"/docs/security/access-control"},{"site":"vercel-docs","path":"/docs/security/shared-responsibility"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-password-protection-to-my-vercel-deployment"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-render"}],"requires":[{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments"}],"neighbors":[{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments","distance":0.158},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication","distance":0.1667},{"site":"vercel-docs","path":"/docs/deployment-protection","distance":0.1722},{"site":"vercel-docs","path":"/docs/security/access-control","distance":0.1744},{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","distance":0.1881}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-password-protection-to-my-vercel-deployment","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-render","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/access-control","via":"neighbor"},{"site":"vercel-docs","path":"/docs/passport","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/security-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/networking/configures-static-ip-s-for-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/custom-events","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips","title":"Trusted IPs","summary":"Trusted IPs let you restrict access to your deployments to a list of allowed IP addresses.","outbound":[{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/sharable-links"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/password-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-an-existing-project"},{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/ip-blocking"},{"site":"vercel-kb","path":"/kb/guide/can-i-use-a-proxy-on-top-of-my-vercel-deployment"}],"inbound":[{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/automated-agent-access"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/deployment-protection-exceptions"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/options-allowlist"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/password-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication"},{"site":"vercel-docs","path":"/docs/deployment-protection/protected-source-maps"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/security"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/rest-api/networking/configures-static-ip-s-for-a-project"},{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address"},{"site":"vercel-kb","path":"/kb/guide/how-to-effectively-load-test-your-vercel-application"},{"site":"vercel-kb","path":"/kb/guide/how-to-setup-verified-proxy"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-render"}],"requires":[{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments"}],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/networking/configures-static-ip-s-for-a-project","distance":0},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments","distance":0.2056},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication","distance":0.242},{"site":"vercel-docs","path":"/docs/deployment-protection","distance":0.2653},{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","distance":0.2727}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/networking/configures-static-ip-s-for-a-project","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-effectively-load-test-your-vercel-application","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-setup-verified-proxy","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","via":"inbound"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/options-allowlist","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/security-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/security","via":"inbound"},{"site":"vercel-docs","path":"/docs/plans/enterprise","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication","title":"Restrict access to deployments with Vercel Authentication","summary":"Vercel Authentication restricts access to your deployments so only authorized users can view and comment on your site.","outbound":[{"site":"vercel-docs","path":"/docs/comments"},{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/sharable-links"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/password-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/trials"},{"site":"vercel-docs","path":"/docs/rbac/access-groups"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-an-existing-project"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools"},{"site":"vercel-docs","path":"/docs/analytics/custom-events"},{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/deployment-protection-exceptions"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/options-allowlist"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/password-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips"},{"site":"vercel-docs","path":"/docs/deployment-protection/protected-source-maps"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments"},{"site":"vercel-docs","path":"/docs/deployments/sharing-deployments"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/security"},{"site":"vercel-docs","path":"/docs/passport"},{"site":"vercel-docs","path":"/docs/plans/hobby"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"},{"site":"vercel-docs","path":"/docs/rest-api/networking/configures-static-ip-s-for-a-project"},{"site":"vercel-docs","path":"/docs/security/access-control"},{"site":"vercel-docs","path":"/docs/security/shared-responsibility"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/manage-from-dashboard"},{"site":"vercel-kb","path":"/kb/guide/how-to-enable-cors"},{"site":"vercel-kb","path":"/kb/guide/vercel-passport"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-render"}],"requires":[{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments"}],"neighbors":[{"site":"vercel-docs","path":"/docs/deployment-protection","distance":0.1234},{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","distance":0.1334},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments","distance":0.1337},{"site":"vercel-docs","path":"/docs/security/access-control","distance":0.1554},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/password-protection","distance":0.1667}],"related":[{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-enable-cors","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-passport","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","via":"inbound"},{"site":"vercel-docs","path":"/docs/security/access-control","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/security-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/automated-agent-access","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/security","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/deployment-protection/protected-source-maps","title":"Protected Source Maps","summary":"Protected Source Maps gates requests for browser source maps behind Vercel Authentication, so only authorized users can view your production source code.","outbound":[{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/password-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication"},{"site":"vercel-docs","path":"/docs/rbac/access-groups"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-an-existing-project"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"}],"inbound":[{"site":"vercel-docs","path":"/docs/deployment-protection"}],"requires":[{"site":"vercel-docs","path":"/docs/deployment-protection"}],"neighbors":[{"site":"vercel-docs","path":"/docs/deployment-protection","distance":0.1902},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication","distance":0.2174},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection","distance":0.2367},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments","distance":0.2386},{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","distance":0.2393}],"related":[{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-password-protection-to-my-vercel-deployment","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-cross-origin-errors-neterr-blocked-by-orb-with-deployment-protection","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/automated-agent-access","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/security-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/access-control","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/deployment-retention","title":"Deployment Retention","summary":"Learn how Deployment Retention policies affect a deployment's lifecycle","outbound":[{"site":"vercel-docs","path":"/docs/cli/list"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/assign-domain-to-a-git-branch"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli/list"},{"site":"vercel-docs","path":"/docs/deployments/generated-urls"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"},{"site":"vercel-docs","path":"/docs/project-configuration/security-settings"},{"site":"vercel-docs","path":"/docs/skew-protection"},{"site":"vercel-docs","path":"/docs/webhooks/webhooks-api"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-delete-an-individual-deployment","distance":0.1195},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments","distance":0.2071},{"site":"vercel-docs","path":"/docs/deployments/deployment-policy","distance":0.2288},{"site":"vercel-docs","path":"/docs/deployments","distance":0.2514},{"site":"vercel-docs","path":"/docs/cli/list","distance":0.2585}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-delete-an-individual-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/deployment-policy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/instant-rollback","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/deployments","title":"Deployments","summary":"Learn how to create and manage deployments on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/deploy-hooks"},{"site":"vercel-docs","path":"/docs/deployments/deployment-policy"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments"},{"site":"vercel-docs","path":"/docs/deployments/rollback-production-deployment"},{"site":"vercel-docs","path":"/docs/drop"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/git/vercel-for-azure-pipelines"},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket"},{"site":"vercel-docs","path":"/docs/git/vercel-for-github"},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli"},{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/create-a-new-deployment"},{"site":"vercel-docs","path":"/docs/routing-middleware/api"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-generate-an-sha-for-uploading-a-file-to-the-vercel-api"}],"inbound":[{"site":"turborepo","path":"/docs/core-concepts/remote-caching"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools"},{"site":"vercel-docs","path":"/docs/audit-log"},{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/checks"},{"site":"vercel-docs","path":"/docs/deployments/deployment-policy"},{"site":"vercel-docs","path":"/docs/deployments/generated-urls"},{"site":"vercel-docs","path":"/docs/deployments/logs"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing"},{"site":"vercel-docs","path":"/docs/fundamentals/builds"},{"site":"vercel-docs","path":"/docs/git/vercel-for-azure-pipelines"},{"site":"vercel-docs","path":"/docs/headers/response-headers"},{"site":"vercel-docs","path":"/docs/integrations/lovable"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/limits/fair-use-guidelines"},{"site":"vercel-docs","path":"/docs/microfrontends/routing"},{"site":"vercel-docs","path":"/docs/notifications"},{"site":"vercel-docs","path":"/docs/products"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"},{"site":"vercel-docs","path":"/docs/projects"},{"site":"vercel-docs","path":"/docs/projects/transferring-projects"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"},{"site":"vercel-kb","path":"/kb/guide/are-vercel-preview-deployment-indexed-by-search-engines"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare"},{"site":"vercel-kb","path":"/kb/guide/test-container-image-vercel-sandbox"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/deployments/managing-deployments","distance":0.1123},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","distance":0.1137},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","distance":0.1298},{"site":"vercel-docs","path":"/docs/cli/deploy","distance":0.1486},{"site":"vercel-docs","path":"/docs/git","distance":0.1488}],"related":[{"site":"turborepo","path":"/docs/core-concepts/remote-caching","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/are-vercel-preview-deployment-indexed-by-search-engines","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/test-container-image-vercel-sandbox","via":"inbound"},{"site":"v0","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/deployments/claim-deployments","title":"Claim Deployments","summary":"Learn how to take ownership of deployments on Vercel with the Claim Deployments feature.","outbound":[{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-flows"},{"site":"vercel-docs","path":"/docs/projects/transferring-projects"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/create-a-new-deployment"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/upload-deployment-files"},{"site":"vercel-docs","path":"/docs/rest-api/projects/accept-project-transfer-request"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-project-transfer-request"}],"inbound":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-flows"},{"site":"vercel-kb","path":"/kb/guide/ai-agents"}],"requires":[{"site":"vercel-docs","path":"/docs/deployments"}],"neighbors":[{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/claim-deployment","distance":0.2035},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-flows","distance":0.239},{"site":"vercel-kb","path":"/kb/guide/ai-agents","distance":0.2578},{"site":"vercel-docs","path":"/docs/deployments","distance":0.2764},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments","distance":0.2792}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-agents","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/domain-linked-to-another-account","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/claim-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/claim-domain-ownership","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains/claim-domain-ownership","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/deployments/deployment-policy","title":"Deployment Policies","summary":"Use a deployment policy to control which Git sources and deployment mechanisms can deploy to your team and projects, per environment.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/deploy-hooks"},{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments"},{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"v0","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/deployments"}],"requires":[{"site":"vercel-docs","path":"/docs/deployments"}],"neighbors":[{"site":"vercel-docs","path":"/docs/deployment-retention","distance":0.2288},{"site":"vercel-docs","path":"/docs/deployments","distance":0.2308},{"site":"vercel-docs","path":"/docs/project-configuration/security-settings","distance":0.256},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments","distance":0.2579},{"site":"vercel-docs","path":"/docs/git","distance":0.2605}],"related":[{"site":"v0","path":"/docs/deployments","via":"inbound"},{"site":"vercel-docs","path":"/docs/deployment-retention","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/security-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/deployments/environments","title":"Environments","summary":"Environments are for developing locally, testing changes in a pre-production environment, and serving end-users in production.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/connect/concepts/project-links"},{"site":"vercel-docs","path":"/docs/connect/concepts/triggers"},{"site":"vercel-docs","path":"/docs/deployments/generated-urls"},{"site":"vercel-docs","path":"/docs/deployments/promoting-a-deployment"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain-to-environment"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/builds/managing-builds"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/cli/build"},{"site":"vercel-docs","path":"/docs/cli/deploy"},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli"},{"site":"vercel-docs","path":"/docs/cli/list"},{"site":"vercel-docs","path":"/docs/cli/pull"},{"site":"vercel-docs","path":"/docs/cli/redeploy"},{"site":"vercel-docs","path":"/docs/comments"},{"site":"vercel-docs","path":"/docs/connect/concepts/project-links"},{"site":"vercel-docs","path":"/docs/connect/concepts/triggers"},{"site":"vercel-docs","path":"/docs/connect/quickstart"},{"site":"vercel-docs","path":"/docs/cron-jobs/quickstart"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication"},{"site":"vercel-docs","path":"/docs/deployment-retention"},{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/deployments/deployment-policy"},{"site":"vercel-docs","path":"/docs/deployments/generated-urls"},{"site":"vercel-docs","path":"/docs/deployments/preview-deployment-suffix"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain-to-environment"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/assign-domain-to-a-git-branch"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting"},{"site":"vercel-docs","path":"/docs/drop"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/environment-variables/managing-environment-variables"},{"site":"vercel-docs","path":"/docs/environment-variables/rotating-secrets"},{"site":"vercel-docs","path":"/docs/environment-variables/sensitive-environment-variables"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/feature-flag"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/backend"},{"site":"vercel-docs","path":"/docs/frameworks/backend/elysia"},{"site":"vercel-docs","path":"/docs/frameworks/backend/express"},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastify"},{"site":"vercel-docs","path":"/docs/frameworks/backend/hono"},{"site":"vercel-docs","path":"/docs/frameworks/backend/koa"},{"site":"vercel-docs","path":"/docs/frameworks/backend/nestjs"},{"site":"vercel-docs","path":"/docs/frameworks/backend/nitro"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/create-react-app"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket"},{"site":"vercel-docs","path":"/docs/git/vercel-for-github"},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab"},{"site":"vercel-docs","path":"/docs/headers/response-headers"},{"site":"vercel-docs","path":"/docs/instant-rollback"},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes"},{"site":"vercel-docs","path":"/docs/logs/runtime"},{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends"},{"site":"vercel-docs","path":"/docs/microfrontends/quickstart"},{"site":"vercel-docs","path":"/docs/microfrontends/routing"},{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-docs","path":"/docs/oidc/api"},{"site":"vercel-docs","path":"/docs/plans"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/quickstart"},{"site":"vercel-docs","path":"/docs/pricing/legacy"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli"},{"site":"vercel-docs","path":"/docs/query/monitoring/monitoring-reference"},{"site":"vercel-docs","path":"/docs/query/reference"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"},{"site":"vercel-docs","path":"/docs/routing/redirects"},{"site":"vercel-docs","path":"/docs/saml"},{"site":"vercel-docs","path":"/docs/security/access-control"},{"site":"vercel-docs","path":"/docs/speed-insights"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/interaction-timing-tool"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/layout-shift-tool"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/managing-toolbar"},{"site":"vercel-kb","path":"/kb/guide/are-vercel-preview-deployment-indexed-by-search-engines"},{"site":"vercel-kb","path":"/kb/guide/black-friday-preparation"},{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address"},{"site":"vercel-kb","path":"/kb/guide/can-i-use-a-non-default-branch-for-production"},{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/deploy-php-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/dot-net-asp-net-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/full-stack-preview-deployments-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-flags-across-projects"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-resolves-environments"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-netlify"},{"site":"vercel-kb","path":"/kb/guide/ship-a-elysia-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-flask-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-h3-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-hono-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-koa-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nestjs-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-render"}],"requires":[{"site":"vercel-docs","path":"/docs/deployments"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/set-up-a-staging-environment-on-vercel","distance":0.1644},{"site":"vercel-docs","path":"/docs/environment-variables","distance":0.1745},{"site":"vercel-docs","path":"/docs/environment-variables/manage-across-environments","distance":0.1884},{"site":"vercel-docs","path":"/docs/rest-api/environment/create-a-custom-environment-for-the-current-project","distance":0.1965},{"site":"vercel-docs","path":"/docs/git","distance":0.205}],"related":[{"site":"vercel-kb","path":"/kb/guide/are-vercel-preview-deployment-indexed-by-search-engines","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/black-friday-preparation","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/can-i-use-a-non-default-branch-for-production","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel","via":"inbound"},{"site":"vercel-docs","path":"/docs/environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/manage-across-environments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/create-a-custom-environment-for-the-current-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/retrieve-a-custom-environment","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/deployments/generated-urls","title":"Generated URLs","summary":"When you create a new deployment, Vercel will automatically generate a unique URL which you can use to access that particular deployment.","outbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/cli/deploy"},{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-retention"},{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/deployments/preview-deployment-suffix"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain"},{"site":"vercel-docs","path":"/docs/projects"},{"site":"vercel-docs","path":"/docs/rbac"}],"inbound":[{"site":"vercel-docs","path":"/docs/audit-log"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge"},{"site":"vercel-docs","path":"/docs/checks/creating-checks"},{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/deployments/sharing-deployments"},{"site":"vercel-docs","path":"/docs/drains/reference/logs"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/production-checklist"},{"site":"vercel-docs","path":"/docs/projects/transferring-projects"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"},{"site":"vercel-kb","path":"/kb/guide/debug-routing-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-change-the-name-of-my-vercel-project"},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-404-errors"},{"site":"vercel-kb","path":"/kb/guide/nextjs-multi-tenant-application"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-cross-origin-errors-neterr-blocked-by-orb-with-deployment-protection"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-vercel-deployment-url-being-shortened"}],"requires":[{"site":"vercel-docs","path":"/docs/deployments"}],"neighbors":[{"site":"vercel-docs","path":"/docs/deployments/preview-deployment-suffix","distance":0.1765},{"site":"vercel-docs","path":"/docs/deployments","distance":0.193},{"site":"vercel-kb","path":"/kb/guide/why-do-my-vercel-deployments-have-multiple-domains","distance":0.1986},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","distance":0.2229},{"site":"vercel-kb","path":"/kb/guide/why-is-my-vercel-deployment-url-being-shortened","distance":0.2236}],"related":[{"site":"vercel-kb","path":"/kb/guide/debug-routing-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-change-the-name-of-my-vercel-project","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-404-errors","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/nextjs-multi-tenant-application","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-cross-origin-errors-neterr-blocked-by-orb-with-deployment-protection","via":"inbound"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds/build-features","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git","via":"neighbor"},{"site":"vercel-docs","path":"/docs/audit-log","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/deployments/logs","title":"Accessing Build Logs","summary":"Learn how to use Vercel's build logs to monitor the progress of building or running your deployment, and check for possible errors or build failures.","outbound":[{"site":"vercel-docs","path":"/docs/activity-log"},{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/environment-variables/sensitive-environment-variables"},{"site":"vercel-docs","path":"/docs/rbac/managing-team-members"}],"inbound":[{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build"},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/logs"},{"site":"vercel-docs","path":"/docs/projects/transferring-projects"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-resolve-a-module-not-found-error"},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-404-errors"}],"requires":[{"site":"vercel-docs","path":"/docs/deployments"}],"neighbors":[{"site":"vercel-docs","path":"/docs/logs","distance":0.1275},{"site":"vercel-docs","path":"/docs/builds","distance":0.2553},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","distance":0.2578},{"site":"vercel-docs","path":"/docs/rest-api/logs/get-logs-for-a-deployment","distance":0.2636},{"site":"vercel-docs","path":"/docs/builds/build-features","distance":0.2649}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-resolve-a-module-not-found-error","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-404-errors","via":"inbound"},{"site":"vercel-docs","path":"/docs/logs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logs/get-logs-for-a-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds/build-features","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments","title":"Managing Deployments","summary":"Learn how to manage your current and previously deployed projects to Vercel through the dashboard. You can redeploy at any time and even delete a deployment.","outbound":[{"site":"vercel-docs","path":"/docs/analytics/quickstart"},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli"},{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/password-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication"},{"site":"vercel-docs","path":"/docs/deployment-retention"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-events"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides/memory-usage"},{"site":"vercel-docs","path":"/docs/cli/redeploy"},{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/deployments/deployment-policy"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build"},{"site":"vercel-docs","path":"/docs/drop"},{"site":"vercel-docs","path":"/docs/environment-variables/managing-environment-variables"},{"site":"vercel-docs","path":"/docs/environment-variables/rotating-secrets"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/production-checklist"},{"site":"vercel-docs","path":"/docs/projects/managing-projects"},{"site":"vercel-docs","path":"/docs/skew-protection"},{"site":"vercel-kb","path":"/kb/guide/blue_green_deployments_on_vercel"},{"site":"vercel-kb","path":"/kb/guide/bolt-vercel-drop"},{"site":"vercel-kb","path":"/kb/guide/claude-design"},{"site":"vercel-kb","path":"/kb/guide/google-stitch-vercel-drop"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-delete-an-individual-deployment"},{"site":"vercel-kb","path":"/kb/guide/implementing_canary_deployments_on_vercel"},{"site":"vercel-kb","path":"/kb/guide/missing-routes-manifest-or-output-turborepo-nx"},{"site":"vercel-kb","path":"/kb/guide/webflow-vercel-drop"}],"requires":[{"site":"vercel-docs","path":"/docs/deployments"}],"neighbors":[{"site":"vercel-docs","path":"/docs/deployments","distance":0.1123},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","distance":0.1904},{"site":"vercel-docs","path":"/docs/cli/redeploy","distance":0.1957},{"site":"vercel-docs","path":"/docs/deployments/promoting-a-deployment","distance":0.1988},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","distance":0.201}],"related":[{"site":"nextjs","path":"/docs/app/guides/memory-usage","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/blue_green_deployments_on_vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/bolt-vercel-drop","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/claude-design","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/google-stitch-vercel-drop","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-delete-an-individual-deployment","via":"inbound"},{"site":"vercel-docs","path":"/docs/cli/redeploy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/managing-projects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/deployments/og-preview","title":"Inspect OG Metadata","summary":"Learn how to inspect and validate your Open Graph metadata through the Open Graph deployment tab.","outbound":[{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/og-image-generation"}],"inbound":[{"site":"vercel-docs","path":"/docs/og-image-generation"}],"requires":[{"site":"vercel-docs","path":"/docs/deployments"}],"neighbors":[{"site":"vercel-docs","path":"/docs/og-image-generation","distance":0.2922},{"site":"vercel-docs","path":"/docs/deployments","distance":0.307},{"site":"vercel-docs","path":"/docs/deployments/generated-urls","distance":0.3086},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","distance":0.3112},{"site":"vercel-kb","path":"/kb/guide/displaying-article-headlines-in-social-previews","distance":0.3273}],"related":[{"site":"vercel-kb","path":"/kb/guide/displaying-article-headlines-in-social-previews","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/generated-urls","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments/managing-comments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability/insights","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/deployments/preview-deployment-suffix","title":"Preview Deployment Suffix","summary":"When you create a new deployment, Vercel will automatically generate a unique URL which you can use to access that particular deployment.","outbound":[{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-kb","path":"/kb/guide/preview-deployment-suffix-without-vercel-nameservers"}],"inbound":[{"site":"vercel-docs","path":"/docs/deployments/generated-urls"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-kb","path":"/kb/guide/are-vercel-preview-deployment-indexed-by-search-engines"}],"requires":[{"site":"vercel-docs","path":"/docs/deployments"}],"neighbors":[{"site":"vercel-docs","path":"/docs/deployments/generated-urls","distance":0.1765},{"site":"vercel-kb","path":"/kb/guide/preview-deployment-suffix-without-vercel-nameservers","distance":0.1835},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/preview-url-prefixes","distance":0.2023},{"site":"vercel-kb","path":"/kb/guide/why-do-my-vercel-deployments-have-multiple-domains","distance":0.2051},{"site":"vercel-kb","path":"/kb/guide/are-vercel-preview-deployment-indexed-by-search-engines","distance":0.241}],"related":[{"site":"vercel-kb","path":"/kb/guide/are-vercel-preview-deployment-indexed-by-search-engines","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/why-do-my-vercel-deployments-have-multiple-domains","via":"neighbor"},{"site":"v0","path":"/docs/custom-domains","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/avoiding-duplicate-content-with-vercel-app-urls","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/generated-urls","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans/pro-plan","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/deployments/promote-preview-to-production","title":"Promote Preview to Production","summary":"Test a preview deployment and promote it to production using the CLI.","outbound":[{"site":"vercel-docs","path":"/docs/cli/curl"},{"site":"vercel-docs","path":"/docs/cli/inspect"},{"site":"vercel-docs","path":"/docs/cli/logs"},{"site":"vercel-docs","path":"/docs/cli/project-linking"},{"site":"vercel-docs","path":"/docs/cli/promote"},{"site":"vercel-docs","path":"/docs/deployments/rollback-production-deployment"},{"site":"vercel-docs","path":"/docs/environment-variables"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/workflows"},{"site":"vercel-kb","path":"/kb/guide/can-i-use-a-non-default-branch-for-production"}],"requires":[{"site":"vercel-docs","path":"/docs/deployments"}],"neighbors":[{"site":"vercel-docs","path":"/docs/deployments/promoting-a-deployment","distance":0.1142},{"site":"vercel-docs","path":"/docs/cli/promote","distance":0.1494},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","distance":0.1669},{"site":"vercel-docs","path":"/docs/deployments/rollback-production-deployment","distance":0.1944},{"site":"vercel-docs","path":"/docs/rolling-releases/rolling-release-deployment","distance":0.218}],"related":[{"site":"vercel-kb","path":"/kb/guide/can-i-use-a-non-default-branch-for-production","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/full-stack-preview-deployments-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/promoting-a-deployment","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/set-up-a-staging-environment-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rolling-releases/rolling-release-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploy","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/deployments/promoting-a-deployment","title":"Promoting Deployments","summary":"Learn how to promote deployments to production on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/instant-rollback"}],"inbound":[{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge"},{"site":"vercel-docs","path":"/docs/deployment-checks"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/headers/response-headers"},{"site":"vercel-docs","path":"/docs/instant-rollback"},{"site":"vercel-docs","path":"/docs/webhooks/webhooks-api"},{"site":"vercel-kb","path":"/kb/guide/are-vercel-preview-deployment-indexed-by-search-engines"},{"site":"vercel-kb","path":"/kb/guide/using-vercel-cli-for-custom-workflows"}],"requires":[{"site":"vercel-docs","path":"/docs/deployments"}],"neighbors":[{"site":"vercel-docs","path":"/docs/deployments/promote-preview-to-production","distance":0.1142},{"site":"vercel-docs","path":"/docs/deployments","distance":0.1755},{"site":"vercel-docs","path":"/docs/instant-rollback","distance":0.1812},{"site":"vercel-kb","path":"/kb/guide/set-up-a-staging-environment-on-vercel","distance":0.1866},{"site":"vercel-docs","path":"/docs/cli/promote","distance":0.1968}],"related":[{"site":"vercel-kb","path":"/kb/guide/are-vercel-preview-deployment-indexed-by-search-engines","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/using-vercel-cli-for-custom-workflows","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/set-up-a-staging-environment-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-i-use-a-non-default-branch-for-production","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/promote-preview-to-production","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/promote","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/rollback-production-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rolling-releases/rolling-release-deployment","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/deployments/rollback-production-deployment","title":"Rollback Production","summary":"Recover from a bad production deployment by rolling back, investigating the root cause, and redeploying a fix.","outbound":[{"site":"vercel-docs","path":"/docs/cli/bisect"},{"site":"vercel-docs","path":"/docs/cli/inspect"},{"site":"vercel-docs","path":"/docs/cli/project-linking"},{"site":"vercel-docs","path":"/docs/cli/promote"},{"site":"vercel-docs","path":"/docs/cli/rollback"},{"site":"vercel-docs","path":"/docs/instant-rollback"},{"site":"vercel-docs","path":"/docs/observability/debug-production-errors"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources"},{"site":"vercel-docs","path":"/docs/agent-resources/workflows"},{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/deployments/promote-preview-to-production"},{"site":"vercel-docs","path":"/docs/rolling-releases/rolling-release-deployment"}],"requires":[{"site":"vercel-docs","path":"/docs/deployments"}],"neighbors":[{"site":"vercel-docs","path":"/docs/observability/debug-production-errors","distance":0.1446},{"site":"vercel-docs","path":"/docs/instant-rollback","distance":0.1482},{"site":"vercel-docs","path":"/docs/rolling-releases/rolling-release-deployment","distance":0.1585},{"site":"vercel-docs","path":"/docs/cli/rollback","distance":0.1606},{"site":"vercel-docs","path":"/docs/deployments/promote-preview-to-production","distance":0.1944}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-gradually-roll-out-new-versions-of-your-backend","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-determine-which-vercel-deployment-introduced-an-issue","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rolling-releases/rolling-release-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/promote-preview-to-production","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/promoting-a-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/deployments/sharing-deployments","title":"Sharing a Preview Deployment","summary":"Learn how to share a preview deployment with your team and external collaborators.","outbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/comments"},{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/sharable-links"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/password-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication"},{"site":"vercel-docs","path":"/docs/deployments/generated-urls"},{"site":"vercel-docs","path":"/docs/notifications"},{"site":"vercel-docs","path":"/docs/rbac/access-roles/project-level-roles"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"}],"inbound":[{"site":"vercel-docs","path":"/docs/comments"},{"site":"vercel-docs","path":"/docs/comments/how-comments-work"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/sharable-links"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"}],"requires":[{"site":"vercel-docs","path":"/docs/deployments"}],"neighbors":[{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/sharable-links","distance":0.1757},{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","distance":0.2308},{"site":"vercel-docs","path":"/docs/deployments/generated-urls","distance":0.2534},{"site":"vercel-docs","path":"/docs/deployment-protection","distance":0.2559},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication","distance":0.256}],"related":[{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments/managing-comments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/preview-deployment-suffix","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments/using-comments","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","title":"Troubleshoot Build Errors","summary":"Learn how to resolve common scenarios you may encounter during the Build step, including build errors that cancel a deployment and long build times.","outbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/builds/managing-builds"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/deploy"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/deployments/logs"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/advanced-configuration"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching"},{"site":"vercel-docs","path":"/docs/project-configuration"},{"site":"vercel-docs","path":"/docs/projects"},{"site":"vercel-docs","path":"/docs/rbac"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/create-a-new-deployment"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-reduce-my-build-time-with-next-js-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-resolve-a-module-not-found-error"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-the-ignored-build-step-field-on-vercel"}],"inbound":[{"site":"vercel-docs","path":"/docs/builds"},{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/builds/managing-builds"},{"site":"vercel-docs","path":"/docs/cli/deploy"},{"site":"vercel-docs","path":"/docs/deploy-hooks"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments"},{"site":"vercel-docs","path":"/docs/fundamentals/builds"},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/plans/enterprise"}],"requires":[{"site":"vercel-docs","path":"/docs/deployments"}],"neighbors":[{"site":"vercel-docs","path":"/docs/builds","distance":0.1586},{"site":"vercel-docs","path":"/docs/monorepos/turborepo","distance":0.2058},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-build-error-build-step-did-not-complete-within-45-minutes","distance":0.21},{"site":"vercel-docs","path":"/docs/builds/managing-builds","distance":0.2132},{"site":"vercel-docs","path":"/docs/fundamentals/builds","distance":0.2137}],"related":[{"site":"vercel-kb","path":"/kb/guide/troubleshooting-build-error-build-step-did-not-complete-within-45-minutes","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-sigkill-out-of-memory-errors","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-404-errors","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-are-my-vercel-builds-queued","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds","via":"neighbor"},{"site":"vercel-docs","path":"/docs/monorepos/turborepo","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/debug-cache-issues","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds/build-features","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deploy-hooks","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-project-collaboration","title":"Troubleshoot project collaboration","summary":"Learn about common reasons for deployment issues related to team member requirements and how to resolve them.","outbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/plans/hobby"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"}],"inbound":[{"site":"vercel-docs","path":"/docs/deploy-hooks"}],"requires":[{"site":"vercel-docs","path":"/docs/deployments"}],"neighbors":[{"site":"vercel-docs","path":"/docs/accounts","distance":0.2139},{"site":"vercel-docs","path":"/docs/git","distance":0.2391},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","distance":0.2486},{"site":"vercel-docs","path":"/docs/git/vercel-for-github","distance":0.2499},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket","distance":0.2528}],"related":[{"site":"vercel-kb","path":"/kb/guide/connecting-teams-with-personal-git-accounts","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-aren-t-commits-triggering-deployments-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/unable-to-find-github-repository","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-github","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/git-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rbac/managing-team-members","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/directory-sync","title":"Directory Sync","summary":"Learn how to configure Directory Sync for your Vercel Team.","outbound":[{"site":"vercel-docs","path":"/docs/rbac/access-roles"},{"site":"vercel-docs","path":"/docs/rbac/managing-team-members"},{"site":"vercel-docs","path":"/docs/saml"}],"inbound":[{"site":"v0","path":"/docs/enterprise"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/rbac/access-groups"},{"site":"vercel-docs","path":"/docs/saml"},{"site":"vercel-docs","path":"/docs/security/enterprise-managed-users"},{"site":"vercel-docs","path":"/docs/security/enterprise-managed-users-account-update"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rbac/access-groups","distance":0.1936},{"site":"vercel-docs","path":"/docs/saml","distance":0.1967},{"site":"vercel-docs","path":"/docs/rbac/managing-team-members","distance":0.2212},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-team-directory-sync-role-mappings","distance":0.2299},{"site":"vercel-docs","path":"/docs/rbac/access-roles/team-level-roles","distance":0.2574}],"related":[{"site":"v0","path":"/docs/enterprise","via":"inbound"},{"site":"vercel-docs","path":"/docs/rbac/access-groups","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-team-directory-sync-role-mappings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rbac/access-roles/team-level-roles","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rbac","via":"neighbor"},{"site":"vercel-docs","path":"/docs/accounts","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/domains","title":"Domains","summary":"Learn the fundamentals of how domains, DNS, and nameservers work on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/domains/registrar-api"},{"site":"vercel-docs","path":"/docs/domains/troubleshooting"},{"site":"vercel-docs","path":"/docs/domains/working-with-dns"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains"},{"site":"vercel-docs","path":"/docs/domains/working-with-nameservers"},{"site":"vercel-docs","path":"/docs/domains/working-with-ssl"}],"inbound":[{"site":"v0","path":"/docs/custom-domains"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools"},{"site":"vercel-docs","path":"/docs/audit-log"},{"site":"vercel-docs","path":"/docs/build-output-api/configuration"},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains"},{"site":"vercel-docs","path":"/docs/fundamentals/builds"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes"},{"site":"vercel-docs","path":"/docs/logs/runtime"},{"site":"vercel-docs","path":"/docs/notifications"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/products"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"},{"site":"vercel-docs","path":"/docs/projects"},{"site":"vercel-docs","path":"/docs/projects/transferring-projects"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"},{"site":"vercel-kb","path":"/kb/guide/debug-routing-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-containers-from-aws-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/why-has-email-stopped-working"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains","distance":0.1101},{"site":"vercel-docs","path":"/docs/domains/working-with-dns","distance":0.1467},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","distance":0.1601},{"site":"vercel-docs","path":"/docs/domains/working-with-nameservers","distance":0.1632},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","distance":0.1745}],"related":[{"site":"v0","path":"/docs/custom-domains","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/debug-routing-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/migrate-containers-from-aws-to-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/why-has-email-stopped-working","via":"inbound"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains/list-all-the-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains/get-a-domain-s-configuration","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/domains/custom-ssl-certificate","title":"Custom SSL Certificates","summary":"By default, Vercel provides all domains with a custom SSL certificates. However, Enterprise teams can upload their own custom SSL certificate.","outbound":[{"site":"vercel-docs","path":"/docs/rest-api/certs/upload-a-cert"}],"inbound":[{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/limits"}],"requires":[{"site":"vercel-docs","path":"/docs/domains"}],"neighbors":[{"site":"vercel-docs","path":"/docs/domains/working-with-ssl","distance":0.1639},{"site":"vercel-docs","path":"/docs/domains/pre-generating-ssl-certs","distance":0.212},{"site":"vercel-docs","path":"/docs/rest-api/certs/upload-a-cert","distance":0.2167},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","distance":0.2725},{"site":"vercel-docs","path":"/docs/cdn-security/encryption","distance":0.273}],"related":[{"site":"vercel-docs","path":"/docs/domains/working-with-ssl","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/pre-generating-ssl-certs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security/encryption","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/domains/domain-connect","title":"Domain Connect","summary":"Learn how to integrate your service with Vercel DNS using the Domain Connect protocol to automatically configure DNS records for your users.","outbound":[{"site":"vercel-docs","path":"/docs/domains/managing-nameservers"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records"}],"requires":[{"site":"vercel-docs","path":"/docs/domains"}],"neighbors":[{"site":"vercel-docs","path":"/docs/domains/troubleshooting","distance":0.2727},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records","distance":0.2808},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","distance":0.2824},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","distance":0.2943},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","distance":0.2967}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/a-record-and-caa-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/nuxt-and-vercel-connect","via":"neighbor"},{"site":"v0","path":"/docs/vercel-connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/zero-downtime-migration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/troubleshooting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-dns","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/reference","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/domains/free-domain-with-pro","title":"Free Domain with Pro","summary":"Learn about free domain with pro on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/domains/supported-domains"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/renew-a-domain"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/trials"}],"inbound":[{"site":"vercel-docs","path":"/docs/plans/pro-plan"}],"requires":[{"site":"vercel-docs","path":"/docs/domains"}],"neighbors":[{"site":"vercel-docs","path":"/docs/plans/pro-plan","distance":0.1941},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","distance":0.222},{"site":"vercel-docs","path":"/docs/plans/pro-plan/trials","distance":0.2577},{"site":"vercel-docs","path":"/docs/plans/hobby","distance":0.2667},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/renew-a-domain","distance":0.307}],"related":[{"site":"vercel-kb","path":"/kb/guide/domain-linked-to-another-account","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans/hobby","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/transfer-your-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/registrar-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains/claim-domain-ownership","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","title":"Managing DNS Records","summary":"Learn how to add, verify, and remove DNS records for your domains on Vercel with this guide.","outbound":[{"site":"vercel-docs","path":"/docs/domains/managing-nameservers"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain"},{"site":"vercel-kb","path":"/kb/guide/cloudflare-with-vercel"},{"site":"vercel-kb","path":"/kb/guide/use-my-domain-bluesky"}],"inbound":[{"site":"vercel-docs","path":"/docs/domains/pre-generating-ssl-certs"},{"site":"vercel-docs","path":"/docs/domains/troubleshooting"},{"site":"vercel-docs","path":"/docs/domains/working-with-dns"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/transfer-your-domain"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records"},{"site":"vercel-kb","path":"/kb/guide/sending-emails-from-an-application-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/why-has-email-stopped-working"}],"requires":[{"site":"vercel-docs","path":"/docs/domains"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records","distance":0.1153},{"site":"vercel-docs","path":"/docs/domains/working-with-dns","distance":0.1219},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","distance":0.1617},{"site":"vercel-docs","path":"/docs/domains/troubleshooting","distance":0.1619},{"site":"vercel-kb","path":"/kb/guide/zero-downtime-migration","distance":0.1655}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/sending-emails-from-an-application-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/why-has-email-stopped-working","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/zero-downtime-migration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/zero-downtime-migration-for-dns","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-dns","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/troubleshooting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-nameservers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/pre-generating-ssl-certs","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/domains/managing-nameservers","title":"Managing Nameservers","summary":"Learn how to add custom nameservers and restore original nameservers for your domains on Vercel with this guide.","outbound":[{"site":"vercel-docs","path":"/docs/domains/working-with-nameservers"}],"inbound":[{"site":"vercel-docs","path":"/docs/domains/domain-connect"},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records"},{"site":"vercel-docs","path":"/docs/domains/working-with-nameservers"}],"requires":[{"site":"vercel-docs","path":"/docs/domains"}],"neighbors":[{"site":"vercel-docs","path":"/docs/domains/working-with-nameservers","distance":0.1225},{"site":"vercel-kb","path":"/kb/guide/how-do-i-change-my-nameservers-on-vercel","distance":0.1315},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","distance":0.1763},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/update-nameservers-for-a-domain","distance":0.2187},{"site":"vercel-docs","path":"/docs/domains","distance":0.2418}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-change-my-nameservers-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-using-vercel-s-nameserver-s-lock-you-in","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/update-nameservers-for-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-dns","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/domains/pre-generating-ssl-certs","title":"Pre-Generate SSL Certificates","summary":"test","outbound":[{"site":"vercel-docs","path":"/docs/cli/certs"},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records"},{"site":"vercel-kb","path":"/kb/guide/a-record-and-caa-with-vercel"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli/certs"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/transfer-your-domain"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare"}],"requires":[{"site":"vercel-docs","path":"/docs/domains"}],"neighbors":[{"site":"vercel-docs","path":"/docs/domains/working-with-ssl","distance":0.1814},{"site":"vercel-docs","path":"/docs/domains/custom-ssl-certificate","distance":0.212},{"site":"vercel-kb","path":"/kb/guide/zero-downtime-migration","distance":0.2195},{"site":"vercel-docs","path":"/docs/cli/certs","distance":0.2423},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","distance":0.2435}],"related":[{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/zero-downtime-migration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/domain-not-generating-ssl-certificate","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/transferring-domains-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-to-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-ssl","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/custom-ssl-certificate","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security/encryption","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/domains/registrar-api","title":"Using Domains API","summary":"Programmatically search, price, purchase, renew, and manage domains with Vercel's domains registrar API endpoints.","outbound":[{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-a-domain"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-multiple-domains"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-a-domain-order"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-a-domain-s-transfer-status"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-availability-for-a-domain"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-availability-for-multiple-domains"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-contact-info-schema"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-price-data-for-a-domain"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-the-auth-code-for-a-domain"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-tld-price-data"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/renew-a-domain"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/transfer-in-a-domain"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/update-auto-renew-for-a-domain"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/update-nameservers-for-a-domain"},{"site":"vercel-docs","path":"/docs/rest-api/sdk"}],"inbound":[{"site":"vercel-docs","path":"/docs/domains"}],"requires":[{"site":"vercel-docs","path":"/docs/domains"}],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-price-data-for-a-domain","distance":0.1864},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-availability-for-a-domain","distance":0.1963},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-availability-for-multiple-domains","distance":0.1998},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-a-domain","distance":0.2026},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-tld-price-data","distance":0.2031}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-contact-verification-status-for-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains/list-all-the-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","title":"Set Up Custom Domain","summary":"Add and configure a custom domain for your Vercel project using the CLI.","outbound":[{"site":"vercel-docs","path":"/docs/cli/certs"},{"site":"vercel-docs","path":"/docs/cli/dns"},{"site":"vercel-docs","path":"/docs/cli/domains"},{"site":"vercel-docs","path":"/docs/cli/project-linking"},{"site":"vercel-docs","path":"/docs/domains"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/workflows"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel"},{"site":"vercel-kb","path":"/kb/guide/a-record-and-caa-with-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records"}],"requires":[{"site":"vercel-docs","path":"/docs/domains"}],"neighbors":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","distance":0.1097},{"site":"vercel-docs","path":"/docs/domains","distance":0.1601},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","distance":0.1617},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","distance":0.1618},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","distance":0.164}],"related":[{"site":"vercel-kb","path":"/kb/guide/a-record-and-caa-with-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain-to-environment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-dns","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/domains/supported-domains","title":"Supported Domains","summary":"Learn about supported domains on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains"}],"inbound":[{"site":"vercel-docs","path":"/docs/domains/free-domain-with-pro"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains"}],"requires":[{"site":"vercel-docs","path":"/docs/domains"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/sitemap","distance":0.4659},{"site":"vercel-docs","path":"/docs/rest-api","distance":0.4805},{"site":"vercel-docs","path":"/docs/rest-api/sdk","distance":0.4828},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/rest-api","distance":0.4846},{"site":"vercel-kb","path":"/kb/guide/agent-readability-spec","distance":0.4867}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/sitemap","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/agent-readability-spec","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-sitemaps","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/rest-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/production-checklist","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/free-domain-with-pro","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/domains/troubleshooting","title":"Troubleshooting Domains","summary":"Learn about common reasons for domain misconfigurations and how to troubleshoot your domain on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records"},{"site":"vercel-docs","path":"/docs/domains/working-with-dns"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/transfer-your-domain"},{"site":"vercel-docs","path":"/docs/domains/working-with-ssl"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-refund-for-a-domain-purchased-or-renewed-with-vercel"},{"site":"vercel-kb","path":"/kb/guide/domain-not-generating-ssl-certificate"},{"site":"vercel-kb","path":"/kb/guide/how-long-to-update-dns-records"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records"},{"site":"vercel-kb","path":"/kb/guide/using-email-with-your-vercel-domain"},{"site":"vercel-kb","path":"/kb/guide/why-has-email-stopped-working"},{"site":"vercel-kb","path":"/kb/guide/why-use-domain-nameservers-method-wildcard-domains"}],"inbound":[{"site":"vercel-docs","path":"/docs/domains"},{"site":"vercel-docs","path":"/docs/domains/working-with-dns"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains"},{"site":"vercel-docs","path":"/docs/domains/working-with-nameservers"},{"site":"vercel-docs","path":"/docs/domains/working-with-ssl"},{"site":"vercel-docs","path":"/docs/production-checklist"},{"site":"vercel-kb","path":"/kb/guide/a-record-and-caa-with-vercel"},{"site":"vercel-kb","path":"/kb/guide/debug-routing-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records"},{"site":"vercel-kb","path":"/kb/guide/how-to-resolve-ip-blocking-issues"}],"requires":[{"site":"vercel-docs","path":"/docs/domains"}],"neighbors":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains","distance":0.1207},{"site":"vercel-kb","path":"/kb/guide/a-record-and-caa-with-vercel","distance":0.139},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records","distance":0.1436},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","distance":0.153},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","distance":0.1619}],"related":[{"site":"vercel-kb","path":"/kb/guide/a-record-and-caa-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/debug-routing-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-resolve-ip-blocking-issues","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-vercel-domain-unverified","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-nameservers","via":"inbound"},{"site":"vercel-docs","path":"/docs/production-checklist","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/domains/working-with-dns","title":"Working with DNS","summary":"Learn how DNS works in order to properly configure your domain.","outbound":[{"site":"vercel-docs","path":"/docs/domains/managing-dns-records"},{"site":"vercel-docs","path":"/docs/domains/troubleshooting"}],"inbound":[{"site":"vercel-docs","path":"/docs/domains"},{"site":"vercel-docs","path":"/docs/domains/troubleshooting"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains"},{"site":"vercel-kb","path":"/kb/guide/a-record-and-caa-with-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-containers-from-aws-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/why-has-email-stopped-working"}],"requires":[{"site":"vercel-docs","path":"/docs/domains"}],"neighbors":[{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","distance":0.1219},{"site":"vercel-docs","path":"/docs/domains","distance":0.1467},{"site":"vercel-docs","path":"/docs/domains/working-with-nameservers","distance":0.148},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records","distance":0.1644},{"site":"vercel-docs","path":"/docs/domains/troubleshooting","distance":0.179}],"related":[{"site":"vercel-kb","path":"/kb/guide/a-record-and-caa-with-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/migrate-containers-from-aws-to-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/why-has-email-stopped-working","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-long-to-update-dns-records","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-nameservers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/dns","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/dns/create-a-dns-record","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","title":"Working with Domains","summary":"Learn how domains work and the options Vercel provides for managing them.","outbound":[{"site":"vercel-docs","path":"/docs/domains"},{"site":"vercel-docs","path":"/docs/domains/supported-domains"},{"site":"vercel-docs","path":"/docs/domains/troubleshooting"},{"site":"vercel-docs","path":"/docs/domains/working-with-dns"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/assign-domain-to-a-git-branch"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/claim-domain-ownership"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/remove-a-domain"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/renew-a-domain"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/view-and-search-domains"},{"site":"vercel-docs","path":"/docs/domains/working-with-nameservers"},{"site":"vercel-docs","path":"/docs/domains/working-with-ssl"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/trials"},{"site":"vercel-kb","path":"/kb/guide/pointing-subdomains-to-external-services"},{"site":"vercel-kb","path":"/kb/guide/using-email-with-your-vercel-domain"}],"inbound":[{"site":"vercel-docs","path":"/docs/domains"},{"site":"vercel-docs","path":"/docs/domains/free-domain-with-pro"},{"site":"vercel-docs","path":"/docs/domains/supported-domains"},{"site":"vercel-docs","path":"/docs/domains/troubleshooting"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting"},{"site":"vercel-docs","path":"/docs/domains/working-with-nameservers"},{"site":"vercel-docs","path":"/docs/git/vercel-for-github"},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab"},{"site":"vercel-docs","path":"/docs/projects/transferring-projects"},{"site":"vercel-docs","path":"/docs/vercel-blob/private-storage"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records"},{"site":"vercel-kb","path":"/kb/guide/why-use-domain-nameservers-method-wildcard-domains"}],"requires":[{"site":"vercel-docs","path":"/docs/domains"}],"neighbors":[{"site":"vercel-docs","path":"/docs/domains","distance":0.1101},{"site":"vercel-docs","path":"/docs/domains/troubleshooting","distance":0.1207},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","distance":0.1274},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","distance":0.1504},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","distance":0.164}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/why-use-domain-nameservers-method-wildcard-domains","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/free-domain-with-pro","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","title":"Adding a Domain","summary":"Learn how to add a custom domain to your Vercel project, verify it, and correctly set the DNS or Nameserver values.","outbound":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting"}],"inbound":[{"site":"v0","path":"/docs/custom-domains"},{"site":"vercel-docs","path":"/docs/builds/build-features"},{"site":"vercel-docs","path":"/docs/checks/creating-checks"},{"site":"vercel-docs","path":"/docs/cli/alias"},{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployments/generated-urls"},{"site":"vercel-docs","path":"/docs/deployments/preview-deployment-suffix"},{"site":"vercel-docs","path":"/docs/domains/free-domain-with-pro"},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records"},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain"},{"site":"vercel-docs","path":"/docs/domains/troubleshooting"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain-to-environment"},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket"},{"site":"vercel-docs","path":"/docs/git/vercel-for-github"},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab"},{"site":"vercel-docs","path":"/docs/incremental-migration"},{"site":"vercel-docs","path":"/docs/notifications"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/quickstart"},{"site":"vercel-docs","path":"/docs/production-checklist"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/projects"},{"site":"vercel-docs","path":"/docs/projects/transferring-projects"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/managing-toolbar"},{"site":"vercel-kb","path":"/kb/guide/a-record-and-caa-with-vercel"},{"site":"vercel-kb","path":"/kb/guide/accessing-vercel-hosted-sites-from-mainland-china"},{"site":"vercel-kb","path":"/kb/guide/debug-routing-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-containers-from-aws-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-cross-origin-errors-neterr-blocked-by-orb-with-deployment-protection"},{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn"},{"site":"vercel-kb","path":"/kb/guide/zero-downtime-migration"}],"requires":[{"site":"vercel-docs","path":"/docs/domains"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","distance":0.0999},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","distance":0.1097},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","distance":0.1274},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","distance":0.1392},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain-to-environment","distance":0.1553}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","via":"neighbor"},{"site":"v0","path":"/docs/custom-domains","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/a-record-and-caa-with-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/accessing-vercel-hosted-sites-from-mainland-china","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/debug-routing-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/migrate-containers-from-aws-to-vercel","via":"inbound"},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain-to-environment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/add-a-domain-to-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/custom-domain","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain-to-environment","title":"Adding a Domain to an Environment","summary":"Learn how to add a custom domain to your Vercel project, verify it, and correctly set the DNS or Nameserver values.","outbound":[{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain"}],"inbound":[{"site":"vercel-docs","path":"/docs/connect/concepts/triggers"},{"site":"vercel-docs","path":"/docs/deployments/environments"}],"requires":[{"site":"vercel-docs","path":"/docs/domains"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains"}],"neighbors":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","distance":0.1553},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","distance":0.1816},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","distance":0.2037},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/assign-domain-to-a-git-branch","distance":0.2238},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","distance":0.2371}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","via":"neighbor"},{"site":"v0","path":"/docs/custom-domains","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/set-up-a-staging-environment-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/assign-domain-to-a-git-branch","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/actions/add-custom-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/managing-nameservers","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/assign-domain-to-a-git-branch","title":"Assigning a Domain to a Git Branch","summary":"Learn how to assign a domain to a different Git branch with this guide.","outbound":[{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/git"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli/alias"},{"site":"vercel-docs","path":"/docs/deployment-retention"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/headers/response-headers"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends"},{"site":"vercel-docs","path":"/docs/microfrontends/routing"},{"site":"vercel-kb","path":"/kb/guide/are-vercel-preview-deployment-indexed-by-search-engines"},{"site":"vercel-kb","path":"/kb/guide/set-up-a-staging-environment-on-vercel"}],"requires":[{"site":"vercel-docs","path":"/docs/domains"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains"}],"neighbors":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain-to-environment","distance":0.2238},{"site":"vercel-docs","path":"/docs/git","distance":0.2469},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting","distance":0.2593},{"site":"vercel-kb","path":"/kb/guide/can-i-use-a-non-default-branch-for-production","distance":0.2665},{"site":"vercel-kb","path":"/kb/guide/why-do-my-vercel-deployments-have-multiple-domains","distance":0.2741}],"related":[{"site":"vercel-kb","path":"/kb/guide/are-vercel-preview-deployment-indexed-by-search-engines","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/set-up-a-staging-environment-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/can-i-use-a-non-default-branch-for-production","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-do-my-vercel-deployments-have-multiple-domains","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/branch-variables-and-domains-not-linked-to-cli-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain-to-environment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/claim-domain-ownership","title":"Claiming Ownership","summary":"Learn how to claim ownership of a domain that is registered with another Vercel account by verifying DNS ownership.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains"}],"requires":[{"site":"vercel-docs","path":"/docs/domains"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains"}],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/domains/claim-domain-ownership","distance":0.1609},{"site":"vercel-kb","path":"/kb/guide/domain-linked-to-another-account","distance":0.1656},{"site":"vercel-docs","path":"/docs/rest-api/domains/get-domain-verification-record","distance":0.25},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/transfer-your-domain","distance":0.2517},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","distance":0.259}],"related":[{"site":"vercel-kb","path":"/kb/guide/domain-linked-to-another-account","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-vercel-domain-unverified","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/transferring-domains-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-out-of-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains/claim-domain-ownership","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains/get-domain-verification-record","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-dns","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting","title":"Deploying & Redirecting Domains","summary":"Learn how to deploy your domains and set up domain redirects with this guide.","outbound":[{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/projects"},{"site":"vercel-docs","path":"/docs/routing/redirects"}],"inbound":[{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/routing/redirects"},{"site":"vercel-kb","path":"/kb/guide/a-record-and-caa-with-vercel"}],"requires":[{"site":"vercel-docs","path":"/docs/domains"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains"}],"neighbors":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","distance":0.164},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","distance":0.1702},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","distance":0.1798},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","distance":0.1916},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","distance":0.1925}],"related":[{"site":"vercel-kb","path":"/kb/guide/a-record-and-caa-with-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-do-my-vercel-deployments-have-multiple-domains","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/transferring-domains-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/avoiding-duplicate-content-with-vercel-app-urls","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects/manage-redirects-at-scale","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/redirects","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/remove-a-domain","title":"Removing a Domain","summary":"Learn how to remove a domain from a Project and from your account completely with this guide.","outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains"}],"requires":[{"site":"vercel-docs","path":"/docs/domains"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains"}],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-a-domain-from-a-project","distance":0.1177},{"site":"vercel-kb","path":"/kb/guide/how-do-i-remove-a-domain-from-my-vercel-account","distance":0.1463},{"site":"vercel-docs","path":"/docs/rest-api/domains/remove-a-domain-by-name","distance":0.2053},{"site":"vercel-docs","path":"/docs/rest-api/projects/add-a-domain-to-a-project","distance":0.2656},{"site":"vercel-docs","path":"/docs/rest-api/projects/delete-a-project","distance":0.266}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-remove-a-domain-from-my-vercel-account","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-a-domain-from-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains/remove-a-domain-by-name","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/add-a-domain-to-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/delete-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/renew-a-domain","title":"Renewing a Domain","summary":"Learn how to manage automatic and manual renewals for custom domains purchased through or registered with Vercel, and how to redeem expired domains with this guide.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/domains/free-domain-with-pro"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains"},{"site":"vercel-docs","path":"/docs/notifications"}],"requires":[{"site":"vercel-docs","path":"/docs/domains"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains"}],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/update-auto-renew-for-a-domain","distance":0.2131},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","distance":0.2181},{"site":"vercel-kb","path":"/kb/guide/lifecycle-of-a-domain","distance":0.2339},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/renew-a-domain","distance":0.2391},{"site":"vercel-kb","path":"/kb/guide/how-can-i-disable-auto-renewals-for-a-domain-registered-with-vercel","distance":0.2516}],"related":[{"site":"vercel-kb","path":"/kb/guide/lifecycle-of-a-domain","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-disable-auto-renewals-for-a-domain-registered-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/update-auto-renew-for-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/renew-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/registrar-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/transfer-your-domain","title":"Transferring Domains","summary":"Domains can be transferred to another team or project within Vercel, or to and from a third-party registrar. Learn how to transfer domains with this guide.","outbound":[{"site":"vercel-docs","path":"/docs/cli/alias"},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records"},{"site":"vercel-docs","path":"/docs/domains/pre-generating-ssl-certs"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"},{"site":"vercel-kb","path":"/kb/guide/how-to-move-a-domain-between-vercel-projects-with-zero-downtime"}],"inbound":[{"site":"vercel-docs","path":"/docs/domains/troubleshooting"},{"site":"vercel-docs","path":"/docs/notifications"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-delete-a-vercel-team"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare"}],"requires":[{"site":"vercel-docs","path":"/docs/domains"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/transferring-domains-to-vercel","distance":0.1119},{"site":"vercel-kb","path":"/kb/guide/how-can-i-move-a-domain-to-a-team","distance":0.1201},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-to-vercel","distance":0.1371},{"site":"vercel-docs","path":"/docs/projects/transferring-projects","distance":0.1494},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-out-of-vercel","distance":0.1662}],"related":[{"site":"vercel-kb","path":"/kb/guide/transferring-domains-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-move-a-domain-to-a-team","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-delete-a-vercel-team","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare","via":"inbound"},{"site":"vercel-docs","path":"/docs/projects/transferring-projects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/notifications","via":"inbound"},{"site":"vercel-docs","path":"/docs/plans/pro-plan","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/view-and-search-domains","title":"Viewing & Searching Domains","summary":"Learn how to view and search all registered domains that are assigned to Vercel Projects through the Vercel dashboard.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains"}],"requires":[{"site":"vercel-docs","path":"/docs/domains"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains"}],"neighbors":[{"site":"vercel-docs","path":"/docs/domains","distance":0.2011},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","distance":0.208},{"site":"vercel-docs","path":"/docs/cli/domains","distance":0.2114},{"site":"vercel-docs","path":"/docs/rest-api/domains/list-all-the-domains","distance":0.2381},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","distance":0.2449}],"related":[{"site":"vercel-docs","path":"/docs/cli/domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains/list-all-the-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains/list-project-domains-by-apex-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/registrar-api","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/domains/working-with-nameservers","title":"Working with Nameservers","summary":"Learn about nameservers and the benefits Vercel nameservers provide.","outbound":[{"site":"vercel-docs","path":"/docs/domains/managing-nameservers"},{"site":"vercel-docs","path":"/docs/domains/troubleshooting"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains"}],"inbound":[{"site":"vercel-docs","path":"/docs/domains"},{"site":"vercel-docs","path":"/docs/domains/managing-nameservers"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/limits"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/quickstart"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records"}],"requires":[{"site":"vercel-docs","path":"/docs/domains"}],"neighbors":[{"site":"vercel-docs","path":"/docs/domains/managing-nameservers","distance":0.1225},{"site":"vercel-docs","path":"/docs/domains/working-with-dns","distance":0.148},{"site":"vercel-docs","path":"/docs/domains","distance":0.1632},{"site":"vercel-kb","path":"/kb/guide/how-do-i-change-my-nameservers-on-vercel","distance":0.1818},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","distance":0.1853}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-change-my-nameservers-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-using-vercel-s-nameserver-s-lock-you-in","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-vercel-domain-unverified","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-dns","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/update-nameservers-for-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-ssl","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/domains/working-with-ssl","title":"Working with SSL","summary":"Learn how Vercel uses SSL certification to keep your site secure.","outbound":[{"site":"vercel-docs","path":"/docs/domains/troubleshooting"},{"site":"vercel-kb","path":"/kb/guide/renewal-of-ssl-certificates-with-a-vercel-domain"}],"inbound":[{"site":"vercel-docs","path":"/docs/domains"},{"site":"vercel-docs","path":"/docs/domains/troubleshooting"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains"},{"site":"vercel-kb","path":"/kb/guide/a-record-and-caa-with-vercel"},{"site":"vercel-kb","path":"/kb/guide/nextjs-multi-tenant-application"}],"requires":[{"site":"vercel-docs","path":"/docs/domains"}],"neighbors":[{"site":"vercel-docs","path":"/docs/domains/custom-ssl-certificate","distance":0.1639},{"site":"vercel-docs","path":"/docs/domains/pre-generating-ssl-certs","distance":0.1814},{"site":"vercel-docs","path":"/docs/cdn-security/encryption","distance":0.1898},{"site":"vercel-docs","path":"/docs/domains/troubleshooting","distance":0.2295},{"site":"vercel-kb","path":"/kb/guide/domain-not-generating-ssl-certificate","distance":0.2325}],"related":[{"site":"vercel-kb","path":"/kb/guide/a-record-and-caa-with-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/nextjs-multi-tenant-application","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/domain-not-generating-ssl-certificate","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/resolve-err-ssl-protocol-error-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/custom-ssl-certificate","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/pre-generating-ssl-certs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security/encryption","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/certs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/draft-mode","title":"Draft Mode","summary":"Vercel's Draft Mode enables you to view your unpublished headless CMS content on your site before publishing it.","outbound":[{"site":"nextjs","path":"/docs/app/guides/draft-mode"},{"site":"nextjs","path":"/docs/pages/guides/draft-mode"},{"site":"vercel-docs","path":"/docs/build-output-api"},{"site":"vercel-docs","path":"/docs/build-output-api/primitives"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"}],"inbound":[{"site":"vercel-docs","path":"/docs/build-output-api/primitives"},{"site":"vercel-docs","path":"/docs/caching/cache-status"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/integrations/cms"},{"site":"vercel-docs","path":"/docs/project-configuration/general-settings"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/interaction-timing-tool"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/layout-shift-tool"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-render"}],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/draft-mode","distance":0.1751},{"site":"nextjs","path":"/docs/app/guides/draft-mode","distance":0.1788},{"site":"nextjs","path":"/docs/app/api-reference/functions/draft-mode","distance":0.2229},{"site":"nextjs","path":"/docs/pages/guides/preview-mode","distance":0.3012},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/drafts","distance":0.3014}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway","via":"inbound"},{"site":"nextjs","path":"/docs/app/api-reference/functions/draft-mode","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/preview-mode","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/drafts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/build-output-api/features","via":"neighbor"},{"site":"vercel-docs","path":"/docs/edit-mode","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite","via":"neighbor"},{"site":"vercel-docs","path":"/docs/partial-prerendering","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/drains","title":"Drains","summary":"Drains collect logs, traces, speed insights, and analytics from your applications. Forward observability data to custom endpoints or popular services.","outbound":[{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/connect/observability"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-datadog"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-panther"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-s3"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-splunk"},{"site":"vercel-docs","path":"/docs/drains/reference/analytics"},{"site":"vercel-docs","path":"/docs/drains/reference/audit-logs"},{"site":"vercel-docs","path":"/docs/drains/reference/logs"},{"site":"vercel-docs","path":"/docs/drains/reference/speed-insights"},{"site":"vercel-docs","path":"/docs/drains/reference/traces"},{"site":"vercel-docs","path":"/docs/drains/security"},{"site":"vercel-docs","path":"/docs/drains/using-drains"},{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/plans/hobby"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/trials"},{"site":"vercel-docs","path":"/docs/rest-api/drains/create-a-new-drain"},{"site":"vercel-docs","path":"/docs/rest-api/drains/retrieve-a-list-of-all-drains"},{"site":"vercel-docs","path":"/docs/rest-api/drains/update-an-existing-drain"},{"site":"vercel-docs","path":"/docs/rest-api/drains/validate-drain-delivery-configuration"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/trace-drains"},{"site":"vercel-docs","path":"/docs/audit-log/migrating-to-drains"},{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/connect/observability"},{"site":"vercel-docs","path":"/docs/deployments/logs"},{"site":"vercel-docs","path":"/docs/drains/reference/analytics"},{"site":"vercel-docs","path":"/docs/drains/reference/audit-logs"},{"site":"vercel-docs","path":"/docs/drains/reference/logs"},{"site":"vercel-docs","path":"/docs/drains/reference/speed-insights"},{"site":"vercel-docs","path":"/docs/drains/reference/traces"},{"site":"vercel-docs","path":"/docs/drains/security"},{"site":"vercel-docs","path":"/docs/drains/using-drains"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/create-react-app"},{"site":"vercel-docs","path":"/docs/functions/concurrency-scaling"},{"site":"vercel-docs","path":"/docs/functions/logs"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions"},{"site":"vercel-docs","path":"/docs/headers/request-headers"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/logs"},{"site":"vercel-docs","path":"/docs/logs/runtime"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/trials"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/production-checklist"},{"site":"vercel-docs","path":"/docs/projects/transferring-projects"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-v2-observability-schema"},{"site":"vercel-docs","path":"/docs/security/shared-responsibility"},{"site":"vercel-docs","path":"/docs/tracing"},{"site":"vercel-kb","path":"/kb/guide/add-structured-application-logs-to-vercel-functions"},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime"},{"site":"vercel-kb","path":"/kb/guide/migrate-containers-from-aws-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-render"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/drains/using-drains","distance":0.0783},{"site":"vercel-docs","path":"/docs/audit-log/migrating-to-drains","distance":0.1564},{"site":"vercel-docs","path":"/docs/drains/reference/traces","distance":0.1666},{"site":"vercel-docs","path":"/docs/drains/reference/audit-logs","distance":0.1734},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/trace-drains","distance":0.1808}],"related":[{"site":"vercel-kb","path":"/kb/guide/add-structured-application-logs-to-vercel-functions","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/migrate-containers-from-aws-to-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","via":"inbound"},{"site":"vercel-docs","path":"/docs/audit-log/migrating-to-drains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/trace-drains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/creates-a-new-integration-log-drain-deprecated","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/retrieves-a-configurable-log-drain-deprecated","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-datadog","title":"Drain Audit Logs to Datadog","summary":"Learn how to forward Vercel Audit Log Drain events to Datadog using the Datadog Logs API.","outbound":[{"site":"vercel-docs","path":"/docs/drains/reference/audit-logs"},{"site":"vercel-docs","path":"/docs/drains/using-drains"}],"inbound":[{"site":"vercel-docs","path":"/docs/audit-log/migrating-to-drains"},{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/drains/reference/audit-logs"},{"site":"vercel-docs","path":"/docs/drains/using-drains"}],"requires":[{"site":"vercel-docs","path":"/docs/drains"}],"neighbors":[{"site":"vercel-docs","path":"/docs/audit-log/migrating-to-drains","distance":0.141},{"site":"vercel-docs","path":"/docs/drains/reference/audit-logs","distance":0.1456},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-splunk","distance":0.147},{"site":"vercel-docs","path":"/docs/drains/using-drains","distance":0.1586},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-panther","distance":0.1614}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-store-logs-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/audit-log/migrating-to-drains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-splunk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-panther","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-s3","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/reference/analytics","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-panther","title":"Drain Audit Logs to Panther","summary":"Learn how to forward Vercel Audit Log Drain events to Panther using Panther's built-in Vercel source.","outbound":[{"site":"vercel-docs","path":"/docs/drains/reference/audit-logs"},{"site":"vercel-docs","path":"/docs/drains/using-drains"}],"inbound":[{"site":"vercel-docs","path":"/docs/audit-log/migrating-to-drains"},{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/drains/reference/audit-logs"},{"site":"vercel-docs","path":"/docs/drains/using-drains"}],"requires":[{"site":"vercel-docs","path":"/docs/drains"}],"neighbors":[{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-datadog","distance":0.1614},{"site":"vercel-docs","path":"/docs/drains/reference/audit-logs","distance":0.1901},{"site":"vercel-docs","path":"/docs/audit-log/migrating-to-drains","distance":0.2019},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-splunk","distance":0.2185},{"site":"vercel-docs","path":"/docs/drains/using-drains","distance":0.2286}],"related":[{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-datadog","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-store-logs-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/audit-log/migrating-to-drains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-splunk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-s3","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/reference/analytics","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-s3","title":"Drain Audit Logs to S3","summary":"Learn how to configure AWS IAM and Amazon S3 so Vercel can write Audit Log Drain events to your S3 bucket.","outbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/audit-log"},{"site":"vercel-docs","path":"/docs/drains/reference/audit-logs"},{"site":"vercel-docs","path":"/docs/drains/using-drains"}],"inbound":[{"site":"vercel-docs","path":"/docs/audit-log/migrating-to-drains"},{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/drains/reference/audit-logs"},{"site":"vercel-docs","path":"/docs/drains/using-drains"}],"requires":[{"site":"vercel-docs","path":"/docs/drains"}],"neighbors":[{"site":"vercel-docs","path":"/docs/drains/using-drains","distance":0.1693},{"site":"vercel-docs","path":"/docs/drains/reference/audit-logs","distance":0.1792},{"site":"vercel-docs","path":"/docs/audit-log/migrating-to-drains","distance":0.1812},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-datadog","distance":0.2026},{"site":"vercel-docs","path":"/docs/drains","distance":0.2029}],"related":[{"site":"vercel-docs","path":"/docs/audit-log/migrating-to-drains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-datadog","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-splunk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/reference/analytics","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/reference/traces","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-splunk","title":"Drain Audit Logs to Splunk","summary":"Learn how to forward Vercel Audit Log Drain events to Splunk using the HTTP Event Collector \\(HEC\\).","outbound":[{"site":"vercel-docs","path":"/docs/drains/reference/audit-logs"},{"site":"vercel-docs","path":"/docs/drains/using-drains"}],"inbound":[{"site":"vercel-docs","path":"/docs/audit-log/migrating-to-drains"},{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/drains/reference/audit-logs"},{"site":"vercel-docs","path":"/docs/drains/using-drains"}],"requires":[{"site":"vercel-docs","path":"/docs/drains"}],"neighbors":[{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-datadog","distance":0.147},{"site":"vercel-docs","path":"/docs/drains/reference/audit-logs","distance":0.1807},{"site":"vercel-docs","path":"/docs/audit-log/migrating-to-drains","distance":0.1915},{"site":"vercel-docs","path":"/docs/drains/using-drains","distance":0.2099},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-panther","distance":0.2185}],"related":[{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-datadog","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-store-logs-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/audit-log/migrating-to-drains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-panther","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-s3","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/reference/analytics","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/drains/reference/analytics","title":"Web Analytics","summary":"Learn about Web Analytics Drains - data formats and custom events configuration.","outbound":[{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/drains/using-drains"}],"inbound":[{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/drains/using-drains"}],"requires":[{"site":"vercel-docs","path":"/docs/drains"}],"neighbors":[{"site":"vercel-docs","path":"/docs/drains/reference/speed-insights","distance":0.1314},{"site":"vercel-docs","path":"/docs/drains/reference/audit-logs","distance":0.1882},{"site":"vercel-docs","path":"/docs/drains","distance":0.1946},{"site":"vercel-docs","path":"/docs/drains/reference/traces","distance":0.2075},{"site":"vercel-docs","path":"/docs/drains/using-drains","distance":0.2153}],"related":[{"site":"vercel-docs","path":"/docs/drains/reference/speed-insights","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/reference/audit-logs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/reference/traces","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-datadog","via":"neighbor"},{"site":"vercel-docs","path":"/docs/audit-log/migrating-to-drains","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/drains/reference/audit-logs","title":"Audit Logs","summary":"Learn about Audit Log Drains - data formats, fields, and team activity events.","outbound":[{"site":"vercel-docs","path":"/docs/activity-log"},{"site":"vercel-docs","path":"/docs/audit-log"},{"site":"vercel-docs","path":"/docs/audit-log/migrating-to-drains"},{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-datadog"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-panther"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-s3"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-splunk"},{"site":"vercel-docs","path":"/docs/drains/using-drains"}],"inbound":[{"site":"vercel-docs","path":"/docs/audit-log/migrating-to-drains"},{"site":"vercel-docs","path":"/docs/cli/buy"},{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-datadog"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-panther"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-s3"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-splunk"},{"site":"vercel-docs","path":"/docs/drains/using-drains"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/plans/enterprise"}],"requires":[{"site":"vercel-docs","path":"/docs/drains"}],"neighbors":[{"site":"vercel-docs","path":"/docs/audit-log/migrating-to-drains","distance":0.1287},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-datadog","distance":0.1456},{"site":"vercel-docs","path":"/docs/drains/using-drains","distance":0.1679},{"site":"vercel-docs","path":"/docs/drains","distance":0.1734},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-s3","distance":0.1792}],"related":[{"site":"vercel-docs","path":"/docs/drains/reference/analytics","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/reference/logs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/reference/traces","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/reference/speed-insights","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/trace-drains","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/drains/reference/logs","title":"Logs","summary":"Learn about Log Drains - data formats, sources, environments, and security configuration.","outbound":[{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/deployments/generated-urls"},{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/drains/using-drains"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/routing/rewrites"},{"site":"vercel-docs","path":"/docs/vercel-firewall"}],"inbound":[{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/drains/security"},{"site":"vercel-docs","path":"/docs/drains/using-drains"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/vercel-api-integrations"},{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall"}],"requires":[{"site":"vercel-docs","path":"/docs/drains"}],"neighbors":[{"site":"vercel-docs","path":"/docs/drains/reference/audit-logs","distance":0.2372},{"site":"vercel-docs","path":"/docs/drains/using-drains","distance":0.2567},{"site":"vercel-docs","path":"/docs/drains","distance":0.2785},{"site":"vercel-docs","path":"/docs/drains/reference/analytics","distance":0.2926},{"site":"vercel-docs","path":"/docs/drains/reference/traces","distance":0.2987}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-store-logs-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/add-structured-application-logs-to-vercel-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/reference/audit-logs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/reference/analytics","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/reference/traces","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/reference/speed-insights","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/creates-a-new-integration-log-drain-deprecated","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/drains/reference/speed-insights","title":"Speed Insights","summary":"Learn about Speed Insights Drains - data formats and performance metrics configuration.","outbound":[{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/drains/using-drains"}],"inbound":[{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/drains/using-drains"}],"requires":[{"site":"vercel-docs","path":"/docs/drains"}],"neighbors":[{"site":"vercel-docs","path":"/docs/drains/reference/analytics","distance":0.1314},{"site":"vercel-docs","path":"/docs/drains","distance":0.205},{"site":"vercel-docs","path":"/docs/drains/reference/traces","distance":0.2225},{"site":"vercel-docs","path":"/docs/drains/using-drains","distance":0.2376},{"site":"vercel-docs","path":"/docs/drains/reference/audit-logs","distance":0.2567}],"related":[{"site":"vercel-docs","path":"/docs/drains/reference/analytics","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/reference/traces","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/reference/audit-logs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/drains/create-a-new-drain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/package","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/drains/reference/traces","title":"Traces","summary":"Learn about Trace Drains - OpenTelemetry-compliant distributed tracing data formats and configuration.","outbound":[{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/drains/using-drains"},{"site":"vercel-docs","path":"/docs/tracing"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/trace-drains"},{"site":"vercel-docs","path":"/docs/ai-gateway/pricing"},{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/drains/using-drains"},{"site":"vercel-docs","path":"/docs/tracing"},{"site":"vercel-docs","path":"/docs/tracing/instrumentation"},{"site":"vercel-kb","path":"/kb/guide/add-structured-application-logs-to-vercel-functions"}],"requires":[{"site":"vercel-docs","path":"/docs/drains"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/trace-drains","distance":0.144},{"site":"vercel-docs","path":"/docs/drains/using-drains","distance":0.1627},{"site":"vercel-docs","path":"/docs/drains","distance":0.1666},{"site":"vercel-docs","path":"/docs/tracing","distance":0.1881},{"site":"vercel-docs","path":"/docs/drains/reference/analytics","distance":0.2075}],"related":[{"site":"vercel-kb","path":"/kb/guide/add-structured-application-logs-to-vercel-functions","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/trace-drains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/reference/analytics","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/reference/speed-insights","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/reference/audit-logs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-datadog","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/drains/security","title":"Security","summary":"Learn how to secure your Drains endpoints with authentication and signature verification.","outbound":[{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/drains/reference/logs"},{"site":"vercel-docs","path":"/docs/drains/using-drains"},{"site":"vercel-docs","path":"/docs/headers/request-headers"}],"inbound":[{"site":"vercel-docs","path":"/docs/audit-log/migrating-to-drains"},{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/drains/using-drains"},{"site":"vercel-docs","path":"/docs/headers/request-headers"}],"requires":[{"site":"vercel-docs","path":"/docs/drains"}],"neighbors":[{"site":"vercel-docs","path":"/docs/drains/using-drains","distance":0.2284},{"site":"vercel-docs","path":"/docs/drains","distance":0.2306},{"site":"vercel-docs","path":"/docs/rest-api/drains/create-a-new-drain","distance":0.2525},{"site":"vercel-docs","path":"/docs/rest-api/drains/update-an-existing-drain","distance":0.2666},{"site":"vercel-docs","path":"/docs/rest-api/drains/find-a-drain-by-id","distance":0.2719}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/drains/create-a-new-drain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/drains/update-an-existing-drain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/drains/find-a-drain-by-id","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-s3","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/reference/traces","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/drains/using-drains","title":"Using Drains","summary":"Learn how to configure drains to forward observability data to custom HTTP endpoints, dedicated Audit Log destinations, and integrations.","outbound":[{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-datadog"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-panther"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-s3"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-splunk"},{"site":"vercel-docs","path":"/docs/drains/reference/analytics"},{"site":"vercel-docs","path":"/docs/drains/reference/audit-logs"},{"site":"vercel-docs","path":"/docs/drains/reference/logs"},{"site":"vercel-docs","path":"/docs/drains/reference/speed-insights"},{"site":"vercel-docs","path":"/docs/drains/reference/traces"},{"site":"vercel-docs","path":"/docs/drains/security"},{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/tracing"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/trace-drains"},{"site":"vercel-docs","path":"/docs/ai-gateway/pricing"},{"site":"vercel-docs","path":"/docs/audit-log/migrating-to-drains"},{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-datadog"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-panther"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-s3"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-splunk"},{"site":"vercel-docs","path":"/docs/drains/reference/analytics"},{"site":"vercel-docs","path":"/docs/drains/reference/audit-logs"},{"site":"vercel-docs","path":"/docs/drains/reference/logs"},{"site":"vercel-docs","path":"/docs/drains/reference/speed-insights"},{"site":"vercel-docs","path":"/docs/drains/reference/traces"},{"site":"vercel-docs","path":"/docs/drains/security"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/plans/hobby"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"},{"site":"vercel-docs","path":"/docs/routing/redirects"},{"site":"vercel-docs","path":"/docs/routing/rewrites"},{"site":"vercel-docs","path":"/docs/vercel-firewall"}],"requires":[{"site":"vercel-docs","path":"/docs/drains"}],"neighbors":[{"site":"vercel-docs","path":"/docs/drains","distance":0.0783},{"site":"vercel-docs","path":"/docs/audit-log/migrating-to-drains","distance":0.1506},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-datadog","distance":0.1586},{"site":"vercel-docs","path":"/docs/drains/reference/traces","distance":0.1627},{"site":"vercel-docs","path":"/docs/drains/reference/audit-logs","distance":0.1679}],"related":[{"site":"vercel-docs","path":"/docs/audit-log/migrating-to-drains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/trace-drains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/creates-a-new-integration-log-drain-deprecated","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/drains/create-a-new-drain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/creates-a-configurable-log-drain-deprecated","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/drop","title":"Vercel Drop","summary":"Vercel Drop lets you deploy a file or folder by dragging it into your browser, with no Git or CLI required.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/integrations/lovable"},{"site":"vercel-kb","path":"/kb/guide/bolt-vercel-drop"},{"site":"vercel-kb","path":"/kb/guide/claude-design"},{"site":"vercel-kb","path":"/kb/guide/google-stitch-vercel-drop"},{"site":"vercel-kb","path":"/kb/guide/vercel-drop-vs-cloudflare-direct-upload"},{"site":"vercel-kb","path":"/kb/guide/vercel-drop-vs-netlify-drop"},{"site":"vercel-kb","path":"/kb/guide/webflow-vercel-drop"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-drop-vs-netlify-drop","distance":0.1496},{"site":"vercel-kb","path":"/kb/guide/vercel-drop-vs-cloudflare-direct-upload","distance":0.1668},{"site":"vercel-docs","path":"/docs/deployments","distance":0.1714},{"site":"vercel-kb","path":"/kb/guide/bolt-vercel-drop","distance":0.1974},{"site":"vercel-kb","path":"/kb/guide/google-stitch-vercel-drop","distance":0.2177}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-drop-vs-netlify-drop","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/bolt-vercel-drop","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/claude-design","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/google-stitch-vercel-drop","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-drop-vs-cloudflare-direct-upload","via":"inbound"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploy","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/edit-mode","title":"Edit Mode","summary":"Discover how Vercel's Edit Mode enhances content management for headless CMSs, enabling real-time editing, and seamless collaboration.","outbound":[{"site":"vercel-docs","path":"/docs/integrations/cms"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"}],"inbound":[{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/integrations/cms"},{"site":"vercel-docs","path":"/docs/project-configuration/general-settings"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-render"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/cms","distance":0.2192},{"site":"vercel-docs","path":"/docs/integrations/cms/dato-cms","distance":0.2378},{"site":"vercel-docs","path":"/docs/integrations/cms/contentful","distance":0.2542},{"site":"vercel-docs","path":"/docs/integrations/cms/sanity","distance":0.2546},{"site":"vercel-kb","path":"/kb/guide/using-a-headless-cms-with-vercel","distance":0.2832}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway","via":"inbound"},{"site":"v0","path":"/docs/code-editing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/dato-cms","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/contentful","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/sanity","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/butter-cms","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/agility-cms","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/environment-variables","title":"Environment Variables","summary":"Learn more about environment variables on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/build-output-api/primitives"},{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/dev"},{"site":"vercel-docs","path":"/docs/cli/env"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/environment-variables/managing-environment-variables"},{"site":"vercel-docs","path":"/docs/environment-variables/rotating-secrets"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/projects"}],"inbound":[{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables"},{"site":"v0","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai"},{"site":"vercel-docs","path":"/docs/builds/build-features"},{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/cli/deploy"},{"site":"vercel-docs","path":"/docs/cli/env"},{"site":"vercel-docs","path":"/docs/cli/pull"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments"},{"site":"vercel-docs","path":"/docs/deployments/promote-preview-to-production"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build"},{"site":"vercel-docs","path":"/docs/environment-variables/framework-environment-variables"},{"site":"vercel-docs","path":"/docs/environment-variables/manage-across-environments"},{"site":"vercel-docs","path":"/docs/environment-variables/reserved-environment-variables"},{"site":"vercel-docs","path":"/docs/environment-variables/rotating-secrets"},{"site":"vercel-docs","path":"/docs/environment-variables/sensitive-environment-variables"},{"site":"vercel-docs","path":"/docs/environment-variables/shared-environment-variables"},{"site":"vercel-docs","path":"/docs/eve/concepts"},{"site":"vercel-docs","path":"/docs/frameworks/backend/nitro"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/django"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit"},{"site":"vercel-docs","path":"/docs/functions/container-images"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/functions/runtimes/edge"},{"site":"vercel-docs","path":"/docs/functions/runtimes/go"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/advanced-node-configuration"},{"site":"vercel-docs","path":"/docs/fundamentals/builds"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/launchdarkly-global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/statsig-global-config"},{"site":"vercel-docs","path":"/docs/global-config/using-global-config"},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/marketplace-storage"},{"site":"vercel-docs","path":"/docs/monorepos/monorepo-faq"},{"site":"vercel-docs","path":"/docs/monorepos/nx"},{"site":"vercel-docs","path":"/docs/oidc/aws"},{"site":"vercel-docs","path":"/docs/oidc/azure"},{"site":"vercel-docs","path":"/docs/oidc/gcp"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/projects"},{"site":"vercel-docs","path":"/docs/projects/managing-projects"},{"site":"vercel-docs","path":"/docs/projects/transferring-projects"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"},{"site":"vercel-docs","path":"/docs/security/shared-responsibility"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/managing-toolbar"},{"site":"vercel-kb","path":"/kb/guide/add-structured-application-logs-to-vercel-functions"},{"site":"vercel-kb","path":"/kb/guide/bolt-vercel-drop"},{"site":"vercel-kb","path":"/kb/guide/cost-aware-model-routing-with-ai-gateway"},{"site":"vercel-kb","path":"/kb/guide/daily-digest-bot-with-chat-sdk-and-workflow-sdk"},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-shopify-storefront-with-vercel"},{"site":"vercel-kb","path":"/kb/guide/deploy-shopify-app-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/docker-compose-concepts-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ensuring-safe-and-effective-infrastructure-testing"},{"site":"vercel-kb","path":"/kb/guide/hipaa-compliance-guide-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-migrate-away-from-vercel-json-env-and-build-env"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables"},{"site":"vercel-kb","path":"/kb/guide/kubernetes-manifests-to-vercel-json"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-an-astro-app-from-webflow-cloud-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-containers-from-aws-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare"},{"site":"vercel-kb","path":"/kb/guide/sandboxed-coding-agent-with-harnessagent"},{"site":"vercel-kb","path":"/kb/guide/sending-emails-from-an-application-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-function-250mb-limit"},{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations"},{"site":"vercel-kb","path":"/kb/guide/vercel-kubernetes-support"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/environment-variables/managing-environment-variables","distance":0.1242},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","distance":0.147},{"site":"vercel-docs","path":"/docs/environment-variables/manage-across-environments","distance":0.1602},{"site":"vercel-docs","path":"/docs/deployments/environments","distance":0.1745},{"site":"vercel-docs","path":"/docs/cli/env","distance":0.1996}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","via":"inbound"},{"site":"v0","path":"/docs/deployments","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/add-structured-application-logs-to-vercel-functions","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/bolt-vercel-drop","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/cost-aware-model-routing-with-ai-gateway","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/daily-digest-bot-with-chat-sdk-and-workflow-sdk","via":"inbound"},{"site":"v0","path":"/docs/api/v2/guides/environment-variables","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/guides/environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-one-or-more-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/edit-an-environment-variable","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/create-one-or-more-shared-environment-variables","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/environment-variables/framework-environment-variables","title":"Framework Environment Variables","summary":"Framework environment variables are automatically populated by the Vercel, based on your project's framework.","outbound":[{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/environment-variables"}],"inbound":[{"site":"vercel-docs","path":"/docs/security/security-dashboard"}],"requires":[{"site":"vercel-docs","path":"/docs/environment-variables"}],"neighbors":[{"site":"vercel-docs","path":"/docs/environment-variables/system-environment-variables","distance":0.219},{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite","distance":0.3365},{"site":"vercel-docs","path":"/docs/project-configuration/git-configuration","distance":0.3397},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket","distance":0.3462},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","distance":0.3469}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/system-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/git-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/environment-variables/manage-across-environments","title":"Manage Across Environments","summary":"Add, sync, and verify environment variables across development, preview, production, and custom environments using the CLI.","outbound":[{"site":"vercel-docs","path":"/docs/cli/env"},{"site":"vercel-docs","path":"/docs/cli/project-linking"},{"site":"vercel-docs","path":"/docs/cli/pull"},{"site":"vercel-docs","path":"/docs/cli/target"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/workflows"},{"site":"vercel-kb","path":"/kb/guide/full-stack-preview-deployments-on-vercel"}],"requires":[{"site":"vercel-docs","path":"/docs/environment-variables"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/env","distance":0.1301},{"site":"vercel-docs","path":"/docs/environment-variables/managing-environment-variables","distance":0.1537},{"site":"vercel-docs","path":"/docs/environment-variables","distance":0.1602},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","distance":0.163},{"site":"vercel-docs","path":"/docs/deployments/environments","distance":0.1884}],"related":[{"site":"vercel-kb","path":"/kb/guide/full-stack-preview-deployments-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/set-up-a-staging-environment-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/managing-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/environments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/sensitive-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/shared-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/edit-an-environment-variable","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/environment-variables/managing-environment-variables","title":"Managing Environment Variables","summary":"Learn how to create and manage environment variables for Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments"}],"inbound":[{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/advanced-node-configuration"},{"site":"vercel-docs","path":"/docs/microfrontends/configuration"},{"site":"vercel-docs","path":"/docs/microfrontends/troubleshooting"}],"requires":[{"site":"vercel-docs","path":"/docs/environment-variables"}],"neighbors":[{"site":"vercel-docs","path":"/docs/environment-variables","distance":0.1242},{"site":"vercel-docs","path":"/docs/environment-variables/manage-across-environments","distance":0.1537},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","distance":0.1968},{"site":"vercel-docs","path":"/docs/environment-variables/shared-environment-variables","distance":0.2009},{"site":"vercel-docs","path":"/docs/environment-variables/sensitive-environment-variables","distance":0.2047}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-migrate-away-from-vercel-json-env-and-build-env","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/set-up-a-staging-environment-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/manage-across-environments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/shared-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/sensitive-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/edit-an-environment-variable","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-one-or-more-environment-variables","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/environment-variables/reserved-environment-variables","title":"Reserved Environment Variables","summary":"Reserved environment variables are reserved by Vercel Vercel Function runtimes.","outbound":[{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/oidc/aws"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-aws-sdk-environment-variables-on-vercel"}],"inbound":[{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"}],"requires":[{"site":"vercel-docs","path":"/docs/environment-variables"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-aws-sdk-environment-variables-on-vercel","distance":0.2147},{"site":"vercel-docs","path":"/docs/environment-variables","distance":0.2866},{"site":"vercel-docs","path":"/docs/environment-variables/managing-environment-variables","distance":0.2987},{"site":"vercel-docs","path":"/docs/environment-variables/sensitive-environment-variables","distance":0.2996},{"site":"vercel-docs","path":"/docs/functions/limitations","distance":0.3323}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/env-vars","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/managing-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/sensitive-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/limitations","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/system-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/shared-environment-variables","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/environment-variables/rotating-secrets","title":"Rotating Environment Variables","summary":"Safely rotate API keys, tokens, and other secrets in your Vercel environment variables.","outbound":[{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/environment-variables/shared-environment-variables"},{"site":"vercel-docs","path":"/docs/integrations"}],"inbound":[{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/security/security-dashboard"}],"requires":[{"site":"vercel-docs","path":"/docs/environment-variables"}],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/secrets-rotation","distance":0.1753},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-supabase-integration","distance":0.2432},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","distance":0.2549},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-hypertune-integration","distance":0.2617},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secret-for-your-redis-integration","distance":0.2664}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-supabase-integration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-hypertune-integration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secret-for-your-redis-integration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-a-secret-for-a-neon-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/secrets-rotation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/rotate-installation-credential","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/managing-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/manage-across-environments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/sensitive-environment-variables","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/environment-variables/sensitive-environment-variables","title":"Sensitive Environment Variables","summary":"Environment variables that cannot be decrypted once created.","outbound":[{"site":"vercel-docs","path":"/docs/activity-log"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/environment-variables/shared-environment-variables"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"},{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"v0","path":"/docs/vercel-integration"},{"site":"vercel-docs","path":"/docs/cli/env"},{"site":"vercel-docs","path":"/docs/deployments/logs"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/secure-your-resource"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"},{"site":"vercel-docs","path":"/docs/security/security-dashboard"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables"},{"site":"vercel-kb","path":"/kb/guide/sending-emails-from-an-application-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/serverless-functions-and-smtp"}],"requires":[{"site":"vercel-docs","path":"/docs/environment-variables"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","distance":0.1738},{"site":"vercel-docs","path":"/docs/environment-variables/managing-environment-variables","distance":0.2047},{"site":"vercel-docs","path":"/docs/environment-variables","distance":0.2152},{"site":"vercel-docs","path":"/docs/cli/env","distance":0.229},{"site":"vercel-docs","path":"/docs/environment-variables/manage-across-environments","distance":0.2354}],"related":[{"site":"v0","path":"/docs/vercel-integration","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/sending-emails-from-an-application-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/serverless-functions-and-smtp","via":"inbound"},{"site":"vercel-docs","path":"/docs/environment-variables/managing-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/env","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/manage-across-environments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/edit-an-environment-variable","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-one-or-more-environment-variables","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/environment-variables/shared-environment-variables","title":"Shared Environment Variables","summary":"Learn how to use Shared environment variables, which are environment variables that you define at the Team level and can link to multiple projects.","outbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/projects"}],"inbound":[{"site":"v0","path":"/docs/design-systems-2"},{"site":"vercel-docs","path":"/docs/audit-log"},{"site":"vercel-docs","path":"/docs/environment-variables/rotating-secrets"},{"site":"vercel-docs","path":"/docs/environment-variables/sensitive-environment-variables"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables"}],"requires":[{"site":"vercel-docs","path":"/docs/environment-variables"}],"neighbors":[{"site":"vercel-docs","path":"/docs/environment-variables/managing-environment-variables","distance":0.2009},{"site":"vercel-docs","path":"/docs/environment-variables","distance":0.222},{"site":"vercel-docs","path":"/docs/rest-api/environment/create-one-or-more-shared-environment-variables","distance":0.2241},{"site":"vercel-docs","path":"/docs/rest-api/environment/lists-all-shared-environment-variables-for-a-team","distance":0.2397},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","distance":0.2399}],"related":[{"site":"v0","path":"/docs/design-systems-2","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","via":"inbound"},{"site":"vercel-docs","path":"/docs/environment-variables/managing-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/create-one-or-more-shared-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/lists-all-shared-environment-variables-for-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/manage-across-environments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/sensitive-environment-variables","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/environment-variables/system-environment-variables","title":"System Environment Variables","summary":"System environment variables are automatically populated by Vercel, such as the URL of the deployment or the name of the Git branch deployed.","outbound":[{"site":"vercel-docs","path":"/docs/skew-protection"}],"inbound":[{"site":"vercel-docs","path":"/docs/build-output-api/primitives"},{"site":"vercel-docs","path":"/docs/cli/deploy"},{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/automated-agent-access"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/vite-with-nitro"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-sdk-python"},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket"},{"site":"vercel-docs","path":"/docs/git/vercel-for-github"},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"},{"site":"vercel-docs","path":"/docs/skew-protection"},{"site":"vercel-docs","path":"/docs/vercel-blob/client-upload"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting-sdk"},{"site":"vercel-kb","path":"/kb/guide/are-vercel-preview-deployment-indexed-by-search-engines"},{"site":"vercel-kb","path":"/kb/guide/deploy-shopify-app-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables"},{"site":"vercel-kb","path":"/kb/guide/how-to-enable-cors"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-cross-origin-errors-neterr-blocked-by-orb-with-deployment-protection"}],"requires":[{"site":"vercel-docs","path":"/docs/environment-variables"}],"neighbors":[{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","distance":0.1632},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket","distance":0.1668},{"site":"vercel-docs","path":"/docs/environment-variables/framework-environment-variables","distance":0.219},{"site":"vercel-docs","path":"/docs/git/vercel-for-github","distance":0.2227},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","distance":0.2461}],"related":[{"site":"vercel-kb","path":"/kb/guide/are-vercel-preview-deployment-indexed-by-search-engines","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/deploy-shopify-app-to-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-enable-cors","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-cross-origin-errors-neterr-blocked-by-orb-with-deployment-protection","via":"inbound"},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/framework-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/git-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/audit-log","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/eve","title":"eve","summary":"Learn how to deploy and run durable backend AI agents built with the open-source eve framework on Vercel.","outbound":[{"site":"eve","path":"/docs/getting-started"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/eve/concepts"},{"site":"vercel-docs","path":"/docs/eve/observability"},{"site":"vercel-docs","path":"/docs/eve/pricing"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/workflows"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/skills"},{"site":"vercel-docs","path":"/docs/eve/concepts"},{"site":"vercel-kb","path":"/kb/guide/give-eve-agent-secure-access-to-aws-rds-database"},{"site":"vercel-kb","path":"/kb/guide/how-to-run-a-multi-step-research-agent-on-vercel"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/eve/concepts","distance":0.086},{"site":"eve","path":"/docs/getting-started","distance":0.1375},{"site":"eve","path":"/docs/guides/deployment/overview","distance":0.1567},{"site":"eve","path":"/docs/guides/deployment/vercel","distance":0.1572},{"site":"eve","path":"/docs/guides/frontend/nextjs","distance":0.1676}],"related":[{"site":"vercel-kb","path":"/kb/guide/give-eve-agent-secure-access-to-aws-rds-database","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-run-a-multi-step-research-agent-on-vercel","via":"inbound"},{"site":"eve","path":"/docs/guides/deployment/overview","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/vercel","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/nextjs","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/self-hosting","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/skills","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/eve/concepts","title":"Concepts","summary":"Learn how eve agents, sessions, channels, tools, skills, connections, and sandboxes fit together.","outbound":[{"site":"vercel-docs","path":"/docs/agent-resources/skills"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/eve"},{"site":"vercel-docs","path":"/docs/eve/observability"},{"site":"vercel-docs","path":"/docs/eve/pricing"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/workflows"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-eve-subagents"}],"inbound":[{"site":"vercel-docs","path":"/docs/eve"},{"site":"vercel-docs","path":"/docs/eve/observability"},{"site":"vercel-docs","path":"/docs/eve/pricing"}],"requires":[{"site":"vercel-docs","path":"/docs/eve"}],"neighbors":[{"site":"vercel-docs","path":"/docs/eve","distance":0.086},{"site":"eve","path":"/docs/getting-started","distance":0.1511},{"site":"vercel-docs","path":"/docs/eve/observability","distance":0.1837},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","distance":0.1863},{"site":"eve","path":"/docs/concepts/security-model","distance":0.1886}],"related":[{"site":"eve","path":"/docs/getting-started","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"neighbor"},{"site":"eve","path":"/docs/concepts/security-model","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/vercel","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/overview","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/give-eve-agent-secure-access-to-aws-rds-database","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/eve/observability","title":"Observability","summary":"View agent runs in the Vercel dashboard with no setup, and optionally export AI SDK spans through OpenTelemetry.","outbound":[{"site":"vercel-docs","path":"/docs/eve/concepts"},{"site":"vercel-docs","path":"/docs/observability"}],"inbound":[{"site":"vercel-docs","path":"/docs/eve"},{"site":"vercel-docs","path":"/docs/eve/concepts"},{"site":"vercel-docs","path":"/docs/eve/pricing"}],"requires":[{"site":"vercel-docs","path":"/docs/eve"}],"neighbors":[{"site":"eve","path":"/docs/guides/instrumentation","distance":0.1068},{"site":"vercel-docs","path":"/docs/eve/concepts","distance":0.1837},{"site":"vercel-docs","path":"/docs/eve","distance":0.2032},{"site":"eve","path":"/docs/getting-started","distance":0.2695},{"site":"eve","path":"/docs/guides/dev-tui","distance":0.2731}],"related":[{"site":"eve","path":"/docs/guides/instrumentation","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","via":"neighbor"},{"site":"eve","path":"/docs/guides/dev-tui","via":"neighbor"},{"site":"eve","path":"/docs/concepts/security-model","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/overview","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/give-eve-agent-secure-access-to-aws-rds-database","via":"neighbor"},{"site":"vercel-docs","path":"/docs/tracing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/pricing","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/eve/pricing","title":"Pricing and Limits","summary":"Understand how eve usage maps to Vercel resources and inherited platform limits.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/pricing"},{"site":"vercel-docs","path":"/docs/eve/concepts"},{"site":"vercel-docs","path":"/docs/eve/observability"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/sandbox/pricing"},{"site":"vercel-docs","path":"/docs/spend-management"},{"site":"vercel-docs","path":"/docs/workflows/pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/eve"},{"site":"vercel-docs","path":"/docs/eve/concepts"}],"requires":[{"site":"vercel-docs","path":"/docs/eve"}],"neighbors":[{"site":"vercel-docs","path":"/docs/eve/concepts","distance":0.2119},{"site":"vercel-docs","path":"/docs/agent/pricing","distance":0.2272},{"site":"vercel-docs","path":"/docs/eve","distance":0.2286},{"site":"vercel-docs","path":"/docs/pricing","distance":0.2418},{"site":"vercel-docs","path":"/docs/sandbox/pricing","distance":0.2606}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-agent","via":"neighbor"},{"site":"v0","path":"/docs/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/flags","title":"Flags","summary":"Control feature visibility, run experiments, and ship with confidence using Vercel's feature flags platform.","outbound":[{"site":"vercel-docs","path":"/docs/flags/marketplace"},{"site":"vercel-docs","path":"/docs/flags/observability"}],"inbound":[{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/analytics/filtering"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-flows"},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes"},{"site":"vercel-docs","path":"/docs/microfrontends"},{"site":"vercel-docs","path":"/docs/microfrontends/routing"},{"site":"vercel-docs","path":"/docs/products"},{"site":"vercel-docs","path":"/docs/project-configuration/general-settings"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost"},{"site":"vercel-kb","path":"/kb/guide/add-structured-application-logs-to-vercel-functions"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags","distance":0.0905},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard","distance":0.1301},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","distance":0.1464},{"site":"vercel-docs","path":"/docs/flags/marketplace","distance":0.1495},{"site":"flags-sdk","path":"/docs/providers/vercel","distance":0.1702}],"related":[{"site":"vercel-kb","path":"/kb/guide/add-structured-application-logs-to-vercel-functions","via":"inbound"},{"site":"flags-sdk","path":"/docs/providers/vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-flags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics","via":"inbound"},{"site":"vercel-docs","path":"/docs/analytics/filtering","via":"inbound"},{"site":"vercel-docs","path":"/docs/glossary","via":"inbound"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-flows","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/flags/flags-explorer","title":"Flags Explorer","summary":"View and override your application's feature flags from the Vercel Toolbar","outbound":[{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/reference"},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost"}],"inbound":[{"site":"flags-sdk","path":"/docs/frameworks/next"},{"site":"flags-sdk","path":"/docs/providers"},{"site":"flags-sdk","path":"/docs/providers/flagsmith"},{"site":"flags-sdk","path":"/docs/providers/growthbook"},{"site":"flags-sdk","path":"/docs/providers/hypertune"},{"site":"flags-sdk","path":"/docs/providers/launchdarkly"},{"site":"flags-sdk","path":"/docs/providers/posthog"},{"site":"flags-sdk","path":"/docs/providers/reflag"},{"site":"flags-sdk","path":"/docs/providers/statsig"},{"site":"flags-sdk","path":"/docs/providers/vercel"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/run-ab-test"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/set-up-flags-explorer"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-kb","path":"/kb/guide/add-structured-application-logs-to-vercel-functions"}],"requires":[{"site":"vercel-docs","path":"/docs/flags"}],"neighbors":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/set-up-flags-explorer","distance":0.1286},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","distance":0.1327},{"site":"vercel-docs","path":"/docs/flags/vercel-flags","distance":0.1736},{"site":"vercel-docs","path":"/docs/flags","distance":0.1891},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard","distance":0.1948}],"related":[{"site":"flags-sdk","path":"/docs/frameworks/next","via":"inbound"},{"site":"flags-sdk","path":"/docs/providers","via":"inbound"},{"site":"flags-sdk","path":"/docs/providers/flagsmith","via":"inbound"},{"site":"flags-sdk","path":"/docs/providers/growthbook","via":"inbound"},{"site":"flags-sdk","path":"/docs/providers/hypertune","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/add-structured-application-logs-to-vercel-functions","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-resolves-environments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/set-up-flags-explorer","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/run-ab-test","via":"inbound"},{"site":"vercel-docs","path":"/docs/plans/pro-plan","via":"inbound"},{"site":"vercel-docs","path":"/docs/pricing","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","title":"Getting Started","summary":"Learn how to set up the Flags Explorer so you can see and override your application's feature flags","outbound":[{"site":"flags-sdk","path":"/docs/api-reference/core/core"},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/next"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/rewrites"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/link"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/reference"},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference"},{"site":"vercel-docs","path":"/docs/flags/observability/web-analytics"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost"}],"inbound":[{"site":"vercel-docs","path":"/docs/flags/flags-explorer"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/reference"},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference"},{"site":"vercel-docs","path":"/docs/flags/marketplace"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/set-up-flags-explorer"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/drafts"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk"}],"requires":[{"site":"vercel-docs","path":"/docs/flags"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer"}],"neighbors":[{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","distance":0.1292},{"site":"vercel-docs","path":"/docs/flags/flags-explorer","distance":0.1327},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit","distance":0.1351},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk","distance":0.1465},{"site":"flags-sdk","path":"/docs/frameworks/next","distance":0.1468}],"related":[{"site":"flags-sdk","path":"/docs/frameworks/sveltekit","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-resolves-environments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/set-up-flags-explorer","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/marketplace","via":"inbound"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/drafts","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/limits-and-pricing","title":"Pricing","summary":"Learn about pricing for Flags Explorer.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/flags/flags-explorer"}],"requires":[{"site":"vercel-docs","path":"/docs/flags"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer"}],"neighbors":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags/limits-and-pricing","distance":0.1865},{"site":"vercel-docs","path":"/docs/flags/flags-explorer","distance":0.2405},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/set-up-flags-explorer","distance":0.299},{"site":"vercel-docs","path":"/docs/flags","distance":0.31},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","distance":0.3173}],"related":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags/limits-and-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/set-up-flags-explorer","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/limits-and-pricing","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/reference","title":"Reference","summary":"In-depth reference for configuring the Flags Explorer","outbound":[{"site":"flags-sdk","path":"/docs/api-reference/core/core"},{"site":"flags-sdk","path":"/docs/api-reference/core/react"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started"},{"site":"vercel-docs","path":"/docs/flags/observability/web-analytics"},{"site":"vercel-docs","path":"/docs/microfrontends"}],"inbound":[{"site":"vercel-docs","path":"/docs/flags/flags-explorer"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started"},{"site":"vercel-docs","path":"/docs/flags/observability/web-analytics"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk"}],"requires":[{"site":"vercel-docs","path":"/docs/flags"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer"}],"neighbors":[{"site":"flags-sdk","path":"/docs/api-reference/core/core","distance":0.207},{"site":"flags-sdk","path":"/docs/api-reference/core/react","distance":0.2256},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","distance":0.2312},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit","distance":0.2598},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","distance":0.2609}],"related":[{"site":"flags-sdk","path":"/docs/frameworks/sveltekit","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/vercel","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next","via":"neighbor"},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/next","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/statsig","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","title":"Flags SDK","summary":"API reference for the Flags SDK for Next.js and SvelteKit.","outbound":[{"site":"flags-sdk","path":"/docs/api-reference/core/core"},{"site":"flags-sdk","path":"/docs/api-reference/core/react"},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/next"},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/sveltekit"},{"site":"flags-sdk","path":"/docs/frameworks/next"},{"site":"flags-sdk","path":"/docs/providers/vercel"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started"},{"site":"vercel-docs","path":"/docs/flags/observability"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart"}],"inbound":[{"site":"vercel-docs","path":"/docs/flags/flags-explorer"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started"},{"site":"vercel-docs","path":"/docs/flags/marketplace"},{"site":"vercel-docs","path":"/docs/flags/observability"},{"site":"vercel-docs","path":"/docs/flags/observability/web-analytics"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk"}],"requires":[{"site":"vercel-docs","path":"/docs/flags"}],"neighbors":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk","distance":0.105},{"site":"flags-sdk","path":"/docs/frameworks/next","distance":0.1139},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit","distance":0.1282},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","distance":0.1292},{"site":"flags-sdk","path":"/docs/providers/vercel","distance":0.1322}],"related":[{"site":"flags-sdk","path":"/docs/frameworks/sveltekit","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/reflag","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/statsig","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer","via":"inbound"},{"site":"vercel-docs","path":"/docs/flags/marketplace","via":"inbound"},{"site":"vercel-docs","path":"/docs/flags/observability/web-analytics","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/flags/marketplace","title":"Marketplace","summary":"Connect your preferred feature flag provider through the Vercel Marketplace for a unified flags experience.","outbound":[{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started"},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference"},{"site":"vercel-docs","path":"/docs/flags/observability"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/launchdarkly-global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/statsig-global-config"}],"inbound":[{"site":"vercel-docs","path":"/docs/flags"}],"requires":[{"site":"vercel-docs","path":"/docs/flags"}],"neighbors":[{"site":"vercel-docs","path":"/docs/flags","distance":0.1495},{"site":"vercel-docs","path":"/docs/flags/vercel-flags","distance":0.2004},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","distance":0.2293},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard","distance":0.2349},{"site":"flags-sdk","path":"/docs/providers/vercel","distance":0.2397}],"related":[{"site":"flags-sdk","path":"/docs/providers/vercel","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-resolves-environments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/flags/observability","title":"Observability","summary":"Track feature flag evaluations and analyze their impact with Web Analytics.","outbound":[{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference"},{"site":"vercel-docs","path":"/docs/flags/observability/web-analytics"}],"inbound":[{"site":"vercel-docs","path":"/docs/flags"},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference"},{"site":"vercel-docs","path":"/docs/flags/marketplace"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart"}],"requires":[{"site":"vercel-docs","path":"/docs/flags"}],"neighbors":[{"site":"vercel-docs","path":"/docs/flags/observability/web-analytics","distance":0.1645},{"site":"vercel-docs","path":"/docs/flags","distance":0.1776},{"site":"vercel-docs","path":"/docs/flags/vercel-flags","distance":0.2251},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard","distance":0.2306},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","distance":0.2326}],"related":[{"site":"flags-sdk","path":"/docs/providers/vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/evaluation-metrics","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/flags/observability/web-analytics","title":"Web Analytics","summary":"Learn how to tag your page views and custom events with feature flags","outbound":[{"site":"vercel-docs","path":"/docs/flags/flags-explorer/reference"},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference"},{"site":"vercel-docs","path":"/docs/logs/runtime"}],"inbound":[{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/reference"},{"site":"vercel-docs","path":"/docs/flags/observability"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/run-ab-test"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/evaluation-metrics"}],"requires":[{"site":"vercel-docs","path":"/docs/flags"},{"site":"vercel-docs","path":"/docs/flags/observability"}],"neighbors":[{"site":"vercel-docs","path":"/docs/flags/observability","distance":0.1645},{"site":"vercel-docs","path":"/docs/flags/vercel-flags","distance":0.2151},{"site":"vercel-docs","path":"/docs/flags","distance":0.2274},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard","distance":0.2284},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","distance":0.2352}],"related":[{"site":"flags-sdk","path":"/docs/providers/vercel","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/flags/vercel-flags","title":"Vercel Flags","summary":"Use Vercel as your feature flag provider to create and manage flags, define targeting rules, and run experiments directly from the dashboard.","outbound":[{"site":"vercel-docs","path":"/docs/flags/flags-explorer"},{"site":"vercel-docs","path":"/docs/flags/observability"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/drafts"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/entities"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/segments"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/core"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/openfeature"}],"inbound":[{"site":"flags-sdk","path":"/docs/providers/vercel"},{"site":"vercel-docs","path":"/docs/cli/flags"},{"site":"vercel-kb","path":"/kb/guide/how-splits-work-in-vercel-flags"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-are-evaluated"}],"requires":[{"site":"vercel-docs","path":"/docs/flags"}],"neighbors":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard","distance":0.0759},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","distance":0.0836},{"site":"vercel-docs","path":"/docs/flags","distance":0.0905},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/feature-flag","distance":0.1051},{"site":"flags-sdk","path":"/docs/providers/vercel","distance":0.1119}],"related":[{"site":"flags-sdk","path":"/docs/providers/vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-splits-work-in-vercel-flags","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-are-evaluated","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-resolves-environments","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/clean-up-after-rollout","title":"Clean Up After Rollout","summary":"Audit active flags, remove a fully rolled-out flag from your codebase, and archive it using the Vercel CLI.","outbound":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/archive"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/workflows"}],"requires":[{"site":"vercel-docs","path":"/docs/flags"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags"}],"neighbors":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/roll-out-feature","distance":0.2325},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/archive","distance":0.2414},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard","distance":0.2602},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","distance":0.2603},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/run-ab-test","distance":0.2716}],"related":[{"site":"flags-sdk","path":"/docs/providers/vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/roll-out-feature","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/run-ab-test","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/feature-flag","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/roll-out-feature","title":"Roll Out a Feature","summary":"Create a feature flag, wire it into your application with the Flags SDK, and start a staged rollout using the Vercel CLI.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/workflows"}],"requires":[{"site":"vercel-docs","path":"/docs/flags"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/flags","distance":0.2023},{"site":"vercel-docs","path":"/docs/flags/vercel-flags","distance":0.2265},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/feature-flag","distance":0.2321},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/clean-up-after-rollout","distance":0.2325},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","distance":0.234}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-are-evaluated","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-splits-work-in-vercel-flags","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-resolves-environments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/flags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/feature-flag","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/clean-up-after-rollout","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/run-ab-test","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/run-ab-test","title":"Run an A/B Test","summary":"Set up an A/B test with a feature flag, track results through Web Analytics, and clean up afterward using the Vercel CLI.","outbound":[{"site":"vercel-docs","path":"/docs/flags/flags-explorer"},{"site":"vercel-docs","path":"/docs/flags/observability/web-analytics"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/workflows"},{"site":"vercel-kb","path":"/kb/guide/how-splits-work-in-vercel-flags"}],"requires":[{"site":"vercel-docs","path":"/docs/flags"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags"}],"neighbors":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/roll-out-feature","distance":0.2602},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/feature-flag","distance":0.265},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/clean-up-after-rollout","distance":0.2716},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","distance":0.272},{"site":"vercel-kb","path":"/kb/guide/how-to-integrate-optimizely-feature-experimentation-next-vercel","distance":0.2721}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-splits-work-in-vercel-flags","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-integrate-optimizely-feature-experimentation-next-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ab-testing-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-are-evaluated","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/roll-out-feature","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/clean-up-after-rollout","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/workflows","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/set-up-flags-explorer","title":"Set Up Flags Explorer","summary":"Add the Flags Explorer to the Vercel Toolbar so you can override flag values on preview deployments without affecting other users.","outbound":[{"site":"vercel-docs","path":"/docs/flags/flags-explorer"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/workflows"}],"requires":[{"site":"vercel-docs","path":"/docs/flags"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags"}],"neighbors":[{"site":"vercel-docs","path":"/docs/flags/flags-explorer","distance":0.1286},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","distance":0.1758},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk","distance":0.2033},{"site":"vercel-docs","path":"/docs/flags","distance":0.2083},{"site":"vercel-docs","path":"/docs/flags/vercel-flags","distance":0.2095}],"related":[{"site":"flags-sdk","path":"/docs/providers/vercel","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-resolves-environments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/drafts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/marketplace","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/workflows","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard","title":"Dashboard","summary":"Learn how to manage your feature flags using the Vercel Dashboard.","outbound":[{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started"},{"site":"vercel-docs","path":"/docs/flags/observability"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/archive"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/drafts"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/entities"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/feature-flag"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/sdk-keys"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/segments"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli/flags"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/archive"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk"}],"requires":[{"site":"vercel-docs","path":"/docs/flags"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags"}],"neighbors":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags","distance":0.0759},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","distance":0.0879},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/feature-flag","distance":0.0907},{"site":"vercel-docs","path":"/docs/flags","distance":0.1301},{"site":"flags-sdk","path":"/docs/providers/vercel","distance":0.1466}],"related":[{"site":"flags-sdk","path":"/docs/providers/vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-resolves-environments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-are-evaluated","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/set-up-flags-explorer","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/archive","title":"Archive","summary":"Archive unused feature flags and restore them when needed.","outbound":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/feature-flag"}],"inbound":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/clean-up-after-rollout"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/drafts"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/feature-flag"}],"requires":[{"site":"vercel-docs","path":"/docs/flags"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags"}],"neighbors":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/clean-up-after-rollout","distance":0.2414},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard","distance":0.256},{"site":"vercel-docs","path":"/docs/flags/vercel-flags","distance":0.2821},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/delete-a-flag","distance":0.2891},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/feature-flag","distance":0.2929}],"related":[{"site":"flags-sdk","path":"/docs/providers/vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/clean-up-after-rollout","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/delete-a-flag","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/drafts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/run-ab-test","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/drafts","title":"Drafts","summary":"Learn how draft flags work and how to promote them to Vercel Flags.","outbound":[{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/archive"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/feature-flag"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk"}],"inbound":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk"}],"requires":[{"site":"vercel-docs","path":"/docs/flags"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags"}],"neighbors":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard","distance":0.1649},{"site":"vercel-docs","path":"/docs/flags/vercel-flags","distance":0.17},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","distance":0.1844},{"site":"flags-sdk","path":"/docs/providers/vercel","distance":0.2272},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/feature-flag","distance":0.2316}],"related":[{"site":"flags-sdk","path":"/docs/providers/vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-resolves-environments","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/set-up-flags-explorer","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/entities","title":"Entities","summary":"Define entities and their attributes for precise feature flag targeting.","outbound":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/feature-flag"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/segments"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk"}],"inbound":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/feature-flag"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/segments"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/core"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/openfeature"},{"site":"vercel-kb","path":"/kb/guide/how-splits-work-in-vercel-flags"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-are-evaluated"}],"requires":[{"site":"vercel-docs","path":"/docs/flags"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-are-evaluated","distance":0.1865},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/segments","distance":0.2372},{"site":"vercel-docs","path":"/docs/flags/vercel-flags","distance":0.2442},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/feature-flag","distance":0.2503},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard","distance":0.259}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-splits-work-in-vercel-flags","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-are-evaluated","via":"inbound"},{"site":"flags-sdk","path":"/docs/providers/vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-resolves-environments","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/evaluation-context","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next/evaluation-context","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/feature-flag","title":"Feature Flag","summary":"Learn how to configure individual feature flags in the Vercel Dashboard.","outbound":[{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/archive"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/entities"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/sdk-keys"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/segments"}],"inbound":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/archive"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/drafts"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/entities"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/sdk-keys"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/segments"},{"site":"vercel-kb","path":"/kb/guide/how-splits-work-in-vercel-flags"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-flags-across-projects"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-are-evaluated"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-resolves-environments"}],"requires":[{"site":"vercel-docs","path":"/docs/flags"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags"}],"neighbors":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard","distance":0.0907},{"site":"vercel-docs","path":"/docs/flags/vercel-flags","distance":0.1051},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-resolves-environments","distance":0.1193},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-are-evaluated","distance":0.1242},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","distance":0.1252}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-resolves-environments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-are-evaluated","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-splits-work-in-vercel-flags","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-flags-across-projects","via":"inbound"},{"site":"flags-sdk","path":"/docs/providers/vercel","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/drafts","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/sdk-keys","title":"SDK Keys","summary":"Manage SDK Keys for Vercel Flags.","outbound":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/feature-flag"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk"}],"inbound":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/feature-flag"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/evaluation-metrics"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/core"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-flags-across-projects"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-resolves-environments"}],"requires":[{"site":"vercel-docs","path":"/docs/flags"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-flags-across-projects","distance":0.1382},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-resolves-environments","distance":0.1415},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks","distance":0.1452},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk","distance":0.2011},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/feature-flag","distance":0.2137}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-flags-across-projects","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-resolves-environments","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/vercel","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-an-sdk-key","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-all-sdk-keys","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/segments","title":"Segments","summary":"Create reusable user segments for targeting feature flags.","outbound":[{"site":"vercel-docs","path":"/docs/cli/flags"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/entities"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/feature-flag"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli/flags"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/entities"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/feature-flag"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart"},{"site":"vercel-kb","path":"/kb/guide/how-splits-work-in-vercel-flags"}],"requires":[{"site":"vercel-docs","path":"/docs/flags"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags"}],"neighbors":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/feature-flag","distance":0.2139},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-are-evaluated","distance":0.2267},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-a-segment","distance":0.2297},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard","distance":0.233},{"site":"vercel-docs","path":"/docs/flags/vercel-flags","distance":0.2344}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-splits-work-in-vercel-flags","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-are-evaluated","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-resolves-environments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-a-segment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-segments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-a-segment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-a-segment","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/evaluation-metrics","title":"Evaluation Metrics","summary":"Track Vercel Flags evaluations and see which variant each evaluation returns.","outbound":[{"site":"vercel-docs","path":"/docs/flags/observability/web-analytics"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/sdk-keys"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk"}],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/flags"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags"}],"neighbors":[{"site":"vercel-docs","path":"/docs/flags/observability","distance":0.2381},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/core","distance":0.259},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-are-evaluated","distance":0.2855},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/feature-flag","distance":0.2866},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard","distance":0.3034}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-are-evaluated","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-flags-across-projects","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/data-locality","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-resolves-environments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/core","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/limits-and-pricing","title":"Limits and Pricing","summary":"Learn about limits and pricing for Vercel Flags.","outbound":[],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/flags"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags"}],"neighbors":[{"site":"vercel-docs","path":"/docs/flags/flags-explorer/limits-and-pricing","distance":0.1865},{"site":"vercel-docs","path":"/docs/flags/vercel-flags","distance":0.2359},{"site":"vercel-docs","path":"/docs/container-registry/limits-and-pricing","distance":0.2604},{"site":"vercel-docs","path":"/docs/limits/fair-use-guidelines","distance":0.2668},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-a-flag","distance":0.2732}],"related":[{"site":"vercel-docs","path":"/docs/flags/flags-explorer/limits-and-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/container-registry/limits-and-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/limits/fair-use-guidelines","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-a-flag","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/feature-flag","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","title":"Getting Started","summary":"Create your first feature flag and evaluate it in your application using the Flags SDK, OpenFeature, or the core library.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started"},{"site":"vercel-docs","path":"/docs/flags/observability"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/drafts"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/entities"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/segments"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/core"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"}],"inbound":[{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/evaluation-metrics"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/openfeature"}],"requires":[{"site":"vercel-docs","path":"/docs/flags"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags"}],"neighbors":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags","distance":0.0836},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard","distance":0.0879},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/feature-flag","distance":0.1252},{"site":"flags-sdk","path":"/docs/providers/vercel","distance":0.1283},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk","distance":0.1352}],"related":[{"site":"flags-sdk","path":"/docs/providers/vercel","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-resolves-environments","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/feature-flag","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks","title":"SDKs","summary":"Learn how to integrate Vercel Flags into your application using the Flags SDK, OpenFeature, or the core library.","outbound":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/sdk-keys"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/core"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/openfeature"}],"inbound":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/segments"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-flags-across-projects"}],"requires":[{"site":"vercel-docs","path":"/docs/flags"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags"}],"neighbors":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk","distance":0.1359},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/sdk-keys","distance":0.1452},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","distance":0.1553},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-resolves-environments","distance":0.1816},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/core","distance":0.1822}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-flags-across-projects","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-resolves-environments","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/vercel","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/segments","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/core","title":"Core","summary":"Use the Vercel Flags core evaluation library directly for custom setups.","outbound":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/entities"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/sdk-keys"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/openfeature"},{"site":"vercel-docs","path":"/docs/functions/limitations"}],"inbound":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-flags-across-projects"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-resolves-environments"}],"requires":[{"site":"vercel-docs","path":"/docs/flags"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags"}],"neighbors":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk","distance":0.17},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","distance":0.1769},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks","distance":0.1822},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","distance":0.1832},{"site":"vercel-docs","path":"/docs/flags/vercel-flags","distance":0.1882}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-flags-across-projects","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-resolves-environments","via":"inbound"},{"site":"flags-sdk","path":"/docs/providers/vercel","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-are-evaluated","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk","title":"Flags SDK","summary":"Integrate Vercel Flags into your Next.js or SvelteKit application using the Flags SDK.","outbound":[{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/reference"},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/drafts"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/entities"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/sdk-keys"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart"}],"inbound":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/drafts"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/entities"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/sdk-keys"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/evaluation-metrics"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/core"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/openfeature"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-flags-across-projects"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-are-evaluated"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-resolves-environments"}],"requires":[{"site":"vercel-docs","path":"/docs/flags"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags"}],"neighbors":[{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","distance":0.105},{"site":"flags-sdk","path":"/docs/providers/vercel","distance":0.1144},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","distance":0.1352},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks","distance":0.1359},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit","distance":0.1462}],"related":[{"site":"flags-sdk","path":"/docs/providers/vercel","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-flags-across-projects","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-are-evaluated","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-resolves-environments","via":"inbound"},{"site":"flags-sdk","path":"/docs/frameworks/next","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/set-up-flags-explorer","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/openfeature","title":"OpenFeature","summary":"Use the vendor-neutral OpenFeature API with Vercel Flags as your provider.","outbound":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/entities"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk"}],"inbound":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/core"}],"requires":[{"site":"vercel-docs","path":"/docs/flags"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags"}],"neighbors":[{"site":"flags-sdk","path":"/docs/providers/openfeature","distance":0.168},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","distance":0.1775},{"site":"vercel-docs","path":"/docs/flags/vercel-flags","distance":0.1833},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/core","distance":0.1902},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk","distance":0.1995}],"related":[{"site":"flags-sdk","path":"/docs/providers/openfeature","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/vercel","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/devcycle","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/core","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/fluid-compute","title":"Fluid Compute","summary":"Learn about fluid compute, an execution model for Vercel Functions that provides a more flexible and efficient way to run your functions.","outbound":[{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/memory"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/functions/runtimes/bun"},{"site":"vercel-docs","path":"/docs/functions/runtimes/edge"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/node-js-versions"},{"site":"vercel-docs","path":"/docs/functions/runtimes/python"},{"site":"vercel-docs","path":"/docs/functions/runtimes/rust"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/fundamentals/what-is-compute"},{"site":"vercel-docs","path":"/docs/project-configuration"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"}],"inbound":[{"site":"ai-sdk","path":"/docs/troubleshooting/timeout-on-vercel"},{"site":"vercel-docs","path":"/docs/builds/managing-builds"},{"site":"vercel-docs","path":"/docs/eve/concepts"},{"site":"vercel-docs","path":"/docs/frameworks/backend"},{"site":"vercel-docs","path":"/docs/frameworks/backend/elysia"},{"site":"vercel-docs","path":"/docs/frameworks/backend/express"},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastify"},{"site":"vercel-docs","path":"/docs/frameworks/backend/hono"},{"site":"vercel-docs","path":"/docs/frameworks/backend/koa"},{"site":"vercel-docs","path":"/docs/frameworks/backend/nestjs"},{"site":"vercel-docs","path":"/docs/frameworks/backend/nitro"},{"site":"vercel-docs","path":"/docs/frameworks/backend/xmcp"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/tanstack-start"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/vite-with-nitro"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/memory"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/runtimes/bun"},{"site":"vercel-docs","path":"/docs/functions/runtimes/edge"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js"},{"site":"vercel-docs","path":"/docs/functions/runtimes/rust"},{"site":"vercel-docs","path":"/docs/functions/runtimes/wasm"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing"},{"site":"vercel-docs","path":"/docs/functions/websockets"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure"},{"site":"vercel-docs","path":"/docs/fundamentals/what-is-compute"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/arn1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/bom1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cdg1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cle1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cpt1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dxb1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/fra1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/gru1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hkg1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hnd1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/iad1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/icn1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/kix1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/lhr1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/pdx1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sin1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/syd1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/yul1"},{"site":"vercel-docs","path":"/docs/production-checklist"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts"},{"site":"vercel-docs","path":"/docs/queues/concepts"},{"site":"vercel-docs","path":"/docs/queues/poll-mode"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/services/pricing"},{"site":"vercel-docs","path":"/docs/vercel-blob/using-blob-sdk"},{"site":"vercel-docs","path":"/docs/workflows/pricing"},{"site":"vercel-kb","path":"/kb/guide/add-structured-application-logs-to-vercel-functions"},{"site":"vercel-kb","path":"/kb/guide/agent-approval-workflow-stack-guide"},{"site":"vercel-kb","path":"/kb/guide/ai-evaluation-dashboard-architecture-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/astro-on-vercel-vs-webflow-cloud"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-express-starter-template"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-fastapi-starter-template"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-flask-starter-template"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-hono-starter-template"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-nitro-starter-template"},{"site":"vercel-kb","path":"/kb/guide/building-ai-chat-app-with-rag-and-citations-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/connection-pooling-with-functions"},{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/deploy-php-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/docker-compose-concepts-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/dot-net-asp-net-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/efficiently-manage-database-connection-pools-with-fluid-compute"},{"site":"vercel-kb","path":"/kb/guide/fluid-compute-vs-cloud-cost"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app"},{"site":"vercel-kb","path":"/kb/guide/how-to-effectively-load-test-your-vercel-application"},{"site":"vercel-kb","path":"/kb/guide/how-to-enable-cors"},{"site":"vercel-kb","path":"/kb/guide/improve-function-cold-start-performance-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/mcp-server-chatgpt-connector"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-an-astro-app-from-webflow-cloud-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-cloudflare"},{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-webflow-cloud"},{"site":"vercel-kb","path":"/kb/guide/nextjs-on-vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/nitro-vite-plugin"},{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute"},{"site":"vercel-kb","path":"/kb/guide/publish-and-subscribe-to-realtime-data-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/rag-chatbot-production-architecture-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/sending-emails-from-an-application-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/serverless-functions-and-smtp"},{"site":"vercel-kb","path":"/kb/guide/ship-a-elysia-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-flask-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-h3-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-hono-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-koa-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nestjs-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/tanstack-start-on-vercel-vs-cloudflare"},{"site":"vercel-kb","path":"/kb/guide/tanstack-start-on-vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-function-250mb-limit"},{"site":"vercel-kb","path":"/kb/guide/using-xmcp-with-nextjs"},{"site":"vercel-kb","path":"/kb/guide/vercel-services"},{"site":"vercel-kb","path":"/kb/guide/vercel-services-fluid-compute"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-kubernetes"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud"},{"site":"vercel-kb","path":"/kb/guide/weather-api-with-express"},{"site":"vercel-kb","path":"/kb/guide/weather-api-with-fastapi"},{"site":"vercel-kb","path":"/kb/guide/weather-api-with-nitro"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/fundamentals/what-is-compute","distance":0.1264},{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel","distance":0.1827},{"site":"vercel-kb","path":"/kb/guide/vercel-services-fluid-compute","distance":0.1905},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing","distance":0.203},{"site":"vercel-docs","path":"/docs/functions","distance":0.2184}],"related":[{"site":"ai-sdk","path":"/docs/troubleshooting/timeout-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/add-structured-application-logs-to-vercel-functions","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/agent-approval-workflow-stack-guide","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ai-evaluation-dashboard-architecture-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/astro-on-vercel-vs-webflow-cloud","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-express-starter-template","via":"inbound"},{"site":"vercel-docs","path":"/docs/builds/managing-builds","via":"inbound"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"inbound"},{"site":"vercel-docs","path":"/docs/frameworks/backend","via":"inbound"},{"site":"vercel-docs","path":"/docs/frameworks/backend/elysia","via":"inbound"},{"site":"vercel-docs","path":"/docs/frameworks/backend/express","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/frameworks","title":"Supported Frameworks","summary":"Vercel supports a wide range of the most popular frameworks, optimizing how your application builds and runs no matter what tool you use.","outbound":[{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/build-output-api"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/og-image-generation"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/skew-protection"},{"site":"vercel-docs","path":"/docs/speed-insights"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-files-in-serverless-functions"}],"inbound":[{"site":"vercel-docs","path":"/docs/builds"},{"site":"vercel-docs","path":"/docs/cli/init"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/astro"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/create-react-app"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nuxt"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/vite-with-nitro"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/quickstart"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/fundamentals/builds"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works"},{"site":"vercel-docs","path":"/docs/incremental-migration"},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes"},{"site":"vercel-docs","path":"/docs/projects/managing-projects"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/routing/redirects"},{"site":"vercel-kb","path":"/kb/guide/building-ai-chat-app-with-rag-and-citations-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/deploy-php-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/dot-net-asp-net-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/full-stack-preview-deployments-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare"},{"site":"vercel-kb","path":"/kb/guide/rag-chatbot-production-architecture-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/securing-ai-app-rate-limiting"},{"site":"vercel-kb","path":"/kb/guide/vercel-reverse-proxy-rewrites-external"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai"},{"site":"vercel-kb","path":"/kb/guide/wordpress-with-vercel"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack","distance":0.0817},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks","distance":0.1091},{"site":"vercel-docs","path":"/docs/frameworks/frontend","distance":0.112},{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite","distance":0.1846},{"site":"vercel-docs","path":"/docs/fundamentals/builds","distance":0.2061}],"related":[{"site":"vercel-kb","path":"/kb/guide/building-ai-chat-app-with-rag-and-citations-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/deploy-php-on-vercel-with-docker","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/dot-net-asp-net-on-vercel-with-docker","via":"inbound"},{"site":"vercel-docs","path":"/docs/fundamentals/builds","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds/configure-a-build","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/init","via":"inbound"},{"site":"vercel-docs","path":"/docs/fluid-compute","via":"inbound"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/frameworks/backend","title":"Backends","summary":"Vercel supports a wide range of the most popular backend frameworks, optimizing how your application builds and runs no matter what tooling you use.","outbound":[{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/backend/celery"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/functions/websockets"},{"site":"vercel-docs","path":"/docs/instant-rollback"},{"site":"vercel-docs","path":"/docs/rolling-releases"},{"site":"vercel-docs","path":"/docs/vercel-firewall"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/efficiently-manage-database-connection-pools-with-fluid-compute"},{"site":"vercel-kb","path":"/kb/guide/how-to-gradually-roll-out-new-versions-of-your-backend"},{"site":"vercel-kb","path":"/kb/guide/mcp-server-with-weather-tool-express"},{"site":"vercel-kb","path":"/kb/guide/ship-a-h3-app-on-vercel"}],"requires":[{"site":"vercel-docs","path":"/docs/frameworks"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-services-fluid-compute","distance":0.2022},{"site":"vercel-kb","path":"/kb/guide/hosting-backend-apis","distance":0.2038},{"site":"vercel-docs","path":"/docs/functions/websockets","distance":0.2065},{"site":"vercel-docs","path":"/docs/functions","distance":0.2074},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastify","distance":0.2166}],"related":[{"site":"vercel-kb","path":"/kb/guide/efficiently-manage-database-connection-pools-with-fluid-compute","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-gradually-roll-out-new-versions-of-your-backend","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/mcp-server-with-weather-tool-express","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ship-a-h3-app-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-services-fluid-compute","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/frameworks/backend/celery","title":"Celery","summary":"Deploy Celery on Vercel. Learn how Celery workers use Vercel Queues and Vercel Functions to run background tasks without a long-lived worker process.","outbound":[{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/runtimes/python"},{"site":"vercel-docs","path":"/docs/queues"},{"site":"vercel-docs","path":"/docs/queues/poll-mode"}],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/backend"}],"requires":[{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/backend"}],"neighbors":[{"site":"vercel-docs","path":"/docs/frameworks/backend/flask","distance":0.2325},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/django","distance":0.2357},{"site":"vercel-docs","path":"/docs/queues","distance":0.2403},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi","distance":0.2411},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","distance":0.2457}],"related":[{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-flask-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/flask","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/django","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues/concepts","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/frameworks/backend/elysia","title":"Elysia","summary":"Build fast TypeScript backends with Elysia and deploy to Vercel. Learn the project structure, plugins, middleware, and how to run locally and in production.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/dev"},{"site":"vercel-docs","path":"/docs/cli/init"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/runtimes/bun"},{"site":"vercel-docs","path":"/docs/instant-rollback"},{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-kb","path":"/kb/guide/ship-a-elysia-app-on-vercel"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/ship-a-elysia-app-on-vercel"}],"requires":[{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/backend"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/ship-a-elysia-app-on-vercel","distance":0.0898},{"site":"vercel-docs","path":"/docs/frameworks/backend/express","distance":0.2268},{"site":"vercel-docs","path":"/docs/frameworks/backend","distance":0.2363},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastify","distance":0.2513},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel","distance":0.2592}],"related":[{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nestjs-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-h3-app-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/express","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastify","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/nestjs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/frameworks/backend/express","title":"Express","summary":"Deploy Express applications to Vercel with zero configuration. Learn about middleware and Vercel Functions.","outbound":[{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/cli/deploy"},{"site":"vercel-docs","path":"/docs/cli/init"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/headers"},{"site":"vercel-docs","path":"/docs/instant-rollback"},{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-express-starter-template"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/build-with-a-express-starter-template"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/weather-api-with-express"}],"requires":[{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/backend"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel","distance":0.0689},{"site":"vercel-kb","path":"/kb/guide/build-with-a-express-starter-template","distance":0.1027},{"site":"vercel-kb","path":"/kb/guide/using-express-with-vercel","distance":0.127},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastify","distance":0.1842},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel","distance":0.1898}],"related":[{"site":"vercel-kb","path":"/kb/guide/using-express-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/weather-api-with-express","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nestjs-app-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastify","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/nestjs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/elysia","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi","title":"FastAPI","summary":"Deploy a FastAPI app on Vercel. Learn how the Python runtime, ASGI, static assets, and Vercel Functions work together.","outbound":[{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/cli/deploy"},{"site":"vercel-docs","path":"/docs/cli/init"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/headers"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-fastapi-starter-template"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel"}],"inbound":[{"site":"vercel-docs","path":"/docs/functions/runtimes/python"},{"site":"vercel-docs","path":"/docs/functions/runtimes/python/api-directory"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-fastapi-starter-template"},{"site":"vercel-kb","path":"/kb/guide/real-time-board-nextjs-fastapi"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/weather-api-with-fastapi"}],"requires":[{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/backend"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","distance":0.0799},{"site":"vercel-docs","path":"/docs/frameworks/backend/flask","distance":0.1143},{"site":"vercel-kb","path":"/kb/guide/build-with-a-fastapi-starter-template","distance":0.1217},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastify","distance":0.1263},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel","distance":0.1299}],"related":[{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/real-time-board-nextjs-fastapi","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/weather-api-with-fastapi","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-flask-app-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/flask","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastify","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/express","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastify","title":"Fastify","summary":"Deploy Fastify applications to Vercel with zero configuration.","outbound":[{"site":"vercel-docs","path":"/docs/cli/deploy"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/instant-rollback"},{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel"}],"requires":[{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/backend"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel","distance":0.0923},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi","distance":0.1263},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","distance":0.172},{"site":"vercel-docs","path":"/docs/frameworks/backend/express","distance":0.1842},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","distance":0.1874}],"related":[{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-fastapi-starter-template","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/express","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/nestjs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/nitro","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/frameworks/backend/flask","title":"Flask","summary":"Deploy a Flask app on Vercel. Learn how the Python runtime, WSGI, static assets, and Vercel Functions work together.","outbound":[{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/cli/deploy"},{"site":"vercel-docs","path":"/docs/cli/init"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/headers"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-flask-starter-template"},{"site":"vercel-kb","path":"/kb/guide/ship-a-flask-app-on-vercel"}],"inbound":[{"site":"vercel-docs","path":"/docs/functions/runtimes/python"},{"site":"vercel-docs","path":"/docs/functions/runtimes/python/api-directory"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-flask-starter-template"},{"site":"vercel-kb","path":"/kb/guide/ship-a-flask-app-on-vercel"}],"requires":[{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/backend"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/ship-a-flask-app-on-vercel","distance":0.0869},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi","distance":0.1143},{"site":"vercel-kb","path":"/kb/guide/build-with-a-flask-starter-template","distance":0.127},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/django","distance":0.1443},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","distance":0.1778}],"related":[{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-fastapi-starter-template","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/django","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastify","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/express","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/celery","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/frameworks/backend/hono","title":"Hono","summary":"Deploy Hono applications to Vercel with zero configuration. Learn about observability, ISR, and custom build configurations.","outbound":[{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/cli/dev"},{"site":"vercel-docs","path":"/docs/cli/init"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/headers"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-hono-starter-template"},{"site":"vercel-kb","path":"/kb/guide/ship-a-hono-app-on-vercel"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/build-with-a-hono-starter-template"},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agents-chat-sdk"},{"site":"vercel-kb","path":"/kb/guide/ship-a-hono-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/triage-form-submissions-with-chat-sdk"}],"requires":[{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/backend"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/ship-a-hono-app-on-vercel","distance":0.0785},{"site":"vercel-kb","path":"/kb/guide/build-with-a-hono-starter-template","distance":0.0928},{"site":"vercel-kb","path":"/kb/guide/ship-a-h3-app-on-vercel","distance":0.2021},{"site":"vercel-docs","path":"/docs/frameworks/backend/express","distance":0.2372},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel","distance":0.2485}],"related":[{"site":"vercel-kb","path":"/kb/guide/claude-managed-agents-chat-sdk","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/triage-form-submissions-with-chat-sdk","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ship-a-h3-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-koa-app-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/express","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/koa","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastify","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/nitro","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/frameworks/backend/koa","title":"Koa","summary":"Deploy Koa applications to Vercel with zero configuration.","outbound":[{"site":"vercel-docs","path":"/docs/cli/deploy"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/instant-rollback"},{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-kb","path":"/kb/guide/ship-a-koa-app-on-vercel"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/ship-a-koa-app-on-vercel"}],"requires":[{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/backend"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/ship-a-koa-app-on-vercel","distance":0.0851},{"site":"vercel-docs","path":"/docs/frameworks/backend/express","distance":0.245},{"site":"vercel-docs","path":"/docs/frameworks/backend/nestjs","distance":0.2497},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastify","distance":0.2523},{"site":"vercel-docs","path":"/docs/frameworks/backend/hono","distance":0.2525}],"related":[{"site":"vercel-kb","path":"/kb/guide/ship-a-nestjs-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-hono-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/express","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/nestjs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastify","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/hono","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/frameworks/backend/nestjs","title":"NestJS","summary":"Deploy NestJS applications to Vercel with zero configuration.","outbound":[{"site":"vercel-docs","path":"/docs/cli/deploy"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/instant-rollback"},{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nestjs-app-on-vercel"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/ship-a-nestjs-app-on-vercel"}],"requires":[{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/backend"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/ship-a-nestjs-app-on-vercel","distance":0.0906},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastify","distance":0.1894},{"site":"vercel-docs","path":"/docs/frameworks/backend/nitro","distance":0.2005},{"site":"vercel-docs","path":"/docs/frameworks/backend/express","distance":0.2007},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","distance":0.2304}],"related":[{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastify","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/express","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/frameworks/backend/nitro","title":"Nitro","summary":"Deploy Nitro applications to Vercel with zero configuration. Learn about observability, ISR, and custom build configurations.","outbound":[{"site":"vercel-docs","path":"/docs/cli/init"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/quickstart"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/observability/insights"},{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-nitro-starter-template"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/build-with-a-nitro-starter-template"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel"}],"requires":[{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/backend"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel","distance":0.0579},{"site":"vercel-kb","path":"/kb/guide/build-with-a-nitro-starter-template","distance":0.1043},{"site":"vercel-kb","path":"/kb/guide/nitro-vite-plugin","distance":0.1587},{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel","distance":0.1658},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","distance":0.1684}],"related":[{"site":"vercel-kb","path":"/kb/guide/nitro-vite-plugin","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nestjs-app-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/nestjs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/tanstack-start","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/vite-with-nitro","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/create-react-app","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/frameworks/backend/xmcp","title":"xmcp","summary":"Build MCP-compatible backends with xmcp and deploy to Vercel. Learn the project structure, tool format, middleware, and how to run locally and in production.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/dev"},{"site":"vercel-docs","path":"/docs/cli/init"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-kb","path":"/kb/guide/using-xmcp-with-nextjs"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/using-xmcp-with-nextjs"}],"requires":[{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/backend"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/using-xmcp-with-nextjs","distance":0.1395},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","distance":0.2155},{"site":"vercel-kb","path":"/kb/guide/how-to-create-a-contentful-asset-on-vercel","distance":0.2586},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","distance":0.2717},{"site":"vercel-docs","path":"/docs/cli/mcp","distance":0.2782}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-create-a-contentful-asset-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/mcp-server-with-weather-tool-express","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/mcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/express","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/sitecore","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/frameworks/frontend","title":"Frontends","summary":"Vercel supports a wide range of the most popular frontend frameworks, optimizing how your application builds and runs no matter what tooling you use.","outbound":[{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/create-react-app"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/react-router"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/og-image-generation"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/skew-protection"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-files-in-serverless-functions"}],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/frameworks"}],"neighbors":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack","distance":0.0515},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks","distance":0.075},{"site":"vercel-docs","path":"/docs/frameworks","distance":0.112},{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite","distance":0.209},{"site":"vercel-docs","path":"/docs/frameworks/frontend/react-router","distance":0.2091}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/remix","via":"neighbor"},{"site":"vercel-docs","path":"/docs/build-output-api/features","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nuxt","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/frameworks/frontend/astro","title":"Astro","summary":"Learn how to use Vercel's features with Astro","outbound":[{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/analytics/quickstart"},{"site":"vercel-docs","path":"/docs/build-output-api/configuration"},{"site":"vercel-docs","path":"/docs/caching/cache-control-headers"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/headers"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/image-optimization/quickstart"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/routing-middleware/api"},{"site":"vercel-docs","path":"/docs/routing-middleware/getting-started"},{"site":"vercel-docs","path":"/docs/speed-insights"},{"site":"vercel-docs","path":"/docs/speed-insights/metrics"},{"site":"vercel-docs","path":"/docs/speed-insights/quickstart"}],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/routing/rewrites"},{"site":"vercel-docs","path":"/docs/speed-insights/quickstart"},{"site":"vercel-kb","path":"/kb/guide/astro-on-vercel-vs-webflow-cloud"},{"site":"vercel-kb","path":"/kb/guide/migrate-an-astro-app-from-webflow-cloud-to-vercel"}],"requires":[{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/frontend"}],"neighbors":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","distance":0.2625},{"site":"vercel-kb","path":"/kb/guide/migrate-an-astro-app-from-webflow-cloud-to-vercel","distance":0.2805},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nuxt","distance":0.286},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit","distance":0.2979},{"site":"vercel-docs","path":"/docs/routing-middleware/api","distance":0.3063}],"related":[{"site":"vercel-kb","path":"/kb/guide/astro-on-vercel-vs-webflow-cloud","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/migrate-an-astro-app-from-webflow-cloud-to-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-netlify","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nuxt","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/react-router","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/remix","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/frameworks/frontend/create-react-app","title":"Create React App","summary":"Learn how to use Vercel's features with Create React App","outbound":[{"site":"vercel-docs","path":"/docs/activity-log"},{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/analytics/quickstart"},{"site":"vercel-docs","path":"/docs/audit-log"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/cli/deploy"},{"site":"vercel-docs","path":"/docs/comments/how-comments-work"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/logs/runtime"},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"},{"site":"vercel-docs","path":"/docs/speed-insights"},{"site":"vercel-docs","path":"/docs/speed-insights/metrics"},{"site":"vercel-kb","path":"/kb/guide/deploying-react-forms-using-formspree-with-vercel"}],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/frontend"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-v2-observability-query"}],"requires":[{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/frontend"}],"neighbors":[{"site":"vercel-docs","path":"/docs/analytics/quickstart","distance":0.2079},{"site":"vercel-docs","path":"/docs/frameworks/frontend/react-router","distance":0.2107},{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite","distance":0.2156},{"site":"vercel-docs","path":"/docs/frameworks","distance":0.217},{"site":"vercel-docs","path":"/docs/frameworks/backend/nitro","distance":0.2298}],"related":[{"site":"vercel-kb","path":"/kb/guide/deploy-headless-bigcommerce-storefront-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-react-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-preact-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/react-router","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/quickstart","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/frameworks/frontend/react-router","title":"React Router","summary":"Learn how to use Vercel's features with React Router as a framework.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/frontend"},{"site":"vercel-kb","path":"/kb/guide/deploy-shopify-app-to-vercel"}],"requires":[{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/frontend"}],"neighbors":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/remix","distance":0.1324},{"site":"vercel-docs","path":"/docs/frameworks/frontend","distance":0.2091},{"site":"vercel-docs","path":"/docs/frameworks/frontend/create-react-app","distance":0.2107},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks","distance":0.2294},{"site":"vercel-docs","path":"/docs/frameworks/full-stack","distance":0.2335}],"related":[{"site":"vercel-kb","path":"/kb/guide/deploy-shopify-app-to-vercel","via":"inbound"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/remix","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/create-react-app","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite","title":"Vite","summary":"Learn how to use Vercel's features with Vite.","outbound":[{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/environment-variables/system-environment-variables"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/create-react-app"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nuxt"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/vite-with-nitro"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-kb","path":"/kb/guide/deploying-preact-with-vercel"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel"}],"inbound":[{"site":"vercel-docs","path":"/docs/microfrontends/quickstart"},{"site":"vercel-kb","path":"/kb/guide/bolt-vercel-drop"}],"requires":[{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/frontend"}],"neighbors":[{"site":"vercel-docs","path":"/docs/frameworks/backend/nitro","distance":0.1834},{"site":"vercel-docs","path":"/docs/frameworks","distance":0.1846},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks","distance":0.1931},{"site":"vercel-kb","path":"/kb/guide/nitro-vite-plugin","distance":0.1982},{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel","distance":0.205}],"related":[{"site":"vercel-kb","path":"/kb/guide/bolt-vercel-drop","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/nitro-vite-plugin","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/frameworks/vite","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/builds","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/quickstart","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/frameworks/full-stack","title":"Full-stack","summary":"Vercel supports a wide range of the most popular backend frameworks, optimizing how your application builds and runs no matter what tooling you use.","outbound":[{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/remix"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/og-image-generation"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/skew-protection"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-files-in-serverless-functions"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall"}],"requires":[{"site":"vercel-docs","path":"/docs/frameworks"}],"neighbors":[{"site":"vercel-docs","path":"/docs/frameworks/frontend","distance":0.0515},{"site":"vercel-docs","path":"/docs/frameworks","distance":0.0817},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks","distance":0.1019},{"site":"vercel-docs","path":"/docs/frameworks/frontend/react-router","distance":0.2335},{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite","distance":0.2342}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall","via":"inbound"},{"site":"vercel-docs","path":"/docs/frameworks/frontend","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-ruby-on-rails-applications","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/react-router","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/django","title":"Django","summary":"Deploy a Django app on Vercel. Learn how the Python runtime, WSGI, ASGI, static assets, and Vercel Functions work together.","outbound":[{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/cli/deploy"},{"site":"vercel-docs","path":"/docs/cli/init"},{"site":"vercel-docs","path":"/docs/cli/pull"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/websockets"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"}],"inbound":[{"site":"vercel-docs","path":"/docs/functions/runtimes/python"},{"site":"vercel-docs","path":"/docs/functions/runtimes/python/api-directory"}],"requires":[{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack"}],"neighbors":[{"site":"vercel-docs","path":"/docs/frameworks/backend/flask","distance":0.1443},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi","distance":0.1561},{"site":"vercel-docs","path":"/docs/functions/runtimes/python","distance":0.1677},{"site":"vercel-kb","path":"/kb/guide/ship-a-flask-app-on-vercel","distance":0.1981},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","distance":0.1991}],"related":[{"site":"vercel-kb","path":"/kb/guide/ship-a-flask-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/flask","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/celery","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/express","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","title":"Next.js","summary":"Vercel is the native Next.js platform, designed to enhance the Next.js experience.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/fonts"},{"site":"nextjs","path":"/docs/app/guides/analytics"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-app"},{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/comments/how-comments-work"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/draft-mode"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/og-image-generation"},{"site":"vercel-docs","path":"/docs/platforms"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/routing-middleware/api"},{"site":"vercel-docs","path":"/docs/speed-insights"},{"site":"vercel-docs","path":"/docs/speed-insights/metrics"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost/add-to-localhost"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost/add-to-production"},{"site":"vercel-kb","path":"/kb/guide/add-auth-to-nextjs-with-magic"},{"site":"vercel-kb","path":"/kb/guide/deploying-locally-built-nextjs"},{"site":"vercel-kb","path":"/kb/guide/getting-started-with-nextjs-typescript-stripe"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-generate-a-sitemap-for-my-nextjs-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/integrating-next-js-and-contentful-for-your-headless-cms"},{"site":"vercel-kb","path":"/kb/guide/nextjs-prisma-postgres"},{"site":"vercel-kb","path":"/kb/guide/using-a-headless-cms-with-vercel"}],"inbound":[{"site":"nextjs","path":"/docs/app/getting-started/deploying"},{"site":"nextjs","path":"/docs/pages/getting-started/deploying"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache"},{"site":"vercel-docs","path":"/docs/cli/dev"},{"site":"vercel-docs","path":"/docs/draft-mode"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart"},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/partial-prerendering"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-reduce-my-build-time-with-next-js-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-cloudflare"},{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-webflow-cloud"},{"site":"vercel-kb","path":"/kb/guide/nextjs-on-vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-render"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud"}],"requires":[{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack"}],"neighbors":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nuxt","distance":0.1584},{"site":"vercel-docs","path":"/docs/og-image-generation","distance":0.1851},{"site":"vercel-docs","path":"/docs/image-optimization/quickstart","distance":0.2269},{"site":"vercel-docs","path":"/docs/frameworks/frontend/react-router","distance":0.2341},{"site":"vercel-docs","path":"/docs/image-optimization","distance":0.2581}],"related":[{"site":"nextjs","path":"/docs/app/getting-started/deploying","via":"inbound"},{"site":"nextjs","path":"/docs/pages/getting-started/deploying","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-reduce-my-build-time-with-next-js-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-cloudflare","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-webflow-cloud","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai","via":"inbound"},{"site":"nextjs","path":"/docs/app/glossary","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nuxt","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/react-router","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/astro","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nuxt","title":"Nuxt","summary":"Learn how to use Vercel's features with Nuxt.","outbound":[{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/image-optimization/quickstart"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/speed-insights"},{"site":"vercel-kb","path":"/kb/guide/nuxt-and-vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nuxt-imgur-clone"}],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/vite-with-nitro"},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nuxt-imgur-clone"}],"requires":[{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack"}],"neighbors":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","distance":0.1584},{"site":"vercel-docs","path":"/docs/image-optimization/quickstart","distance":0.2109},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit","distance":0.2376},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/vite-with-nitro","distance":0.2488},{"site":"vercel-docs","path":"/docs/frameworks/frontend/react-router","distance":0.2544}],"related":[{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-next.js-sitecore-jss","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/vite-with-nitro","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/react-router","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/remix","title":"Remix","summary":"Learn how to use Vercel's features with Remix.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack"}],"requires":[{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack"}],"neighbors":[{"site":"vercel-docs","path":"/docs/frameworks/frontend/react-router","distance":0.1324},{"site":"vercel-docs","path":"/docs/frameworks/full-stack","distance":0.2454},{"site":"vercel-kb","path":"/kb/guide/deploying-remix-with-vercel","distance":0.2519},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks","distance":0.2569},{"site":"vercel-docs","path":"/docs/frameworks/frontend","distance":0.257}],"related":[{"site":"vercel-kb","path":"/kb/guide/deploying-remix-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/react-router","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/create-react-app","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit","title":"SvelteKit","summary":"Learn how to use Vercel's features with SvelteKit","outbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/build-output-api"},{"site":"vercel-docs","path":"/docs/build-output-api/configuration"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/comments/how-comments-work"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/draft-mode"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/environment-variables/system-environment-variables"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions"},{"site":"vercel-docs","path":"/docs/fundamentals/what-is-compute"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/project-configuration"},{"site":"vercel-docs","path":"/docs/skew-protection"},{"site":"vercel-docs","path":"/docs/speed-insights"},{"site":"vercel-docs","path":"/docs/speed-insights/metrics"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost/add-to-localhost"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost/add-to-production"},{"site":"vercel-kb","path":"/kb/guide/using-a-headless-cms-with-vercel"}],"inbound":[{"site":"vercel-docs","path":"/docs/draft-mode"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack"},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/microfrontends/quickstart"},{"site":"vercel-docs","path":"/docs/routing/rewrites"}],"requires":[{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack"}],"neighbors":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nuxt","distance":0.2376},{"site":"vercel-docs","path":"/docs/image-optimization/quickstart","distance":0.2657},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","distance":0.2673},{"site":"vercel-docs","path":"/docs/image-optimization","distance":0.2871},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/vite-with-nitro","distance":0.2887}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nuxt-imgur-clone","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-vite","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-vite","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nuxt","via":"neighbor"},{"site":"vercel-docs","path":"/docs/image-optimization/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/vite-with-nitro","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/astro","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/tanstack-start","title":"TanStack Start","summary":"Learn how to use Vercel's features with TanStack Start.","outbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/integrations/lovable"}],"inbound":[{"site":"vercel-docs","path":"/docs/integrations/lovable"},{"site":"vercel-kb","path":"/kb/guide/adding-keyboard-shortcuts-to-react-apps-with-tanstack-hotkeys"},{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/tanstack-intent-vs-skills"},{"site":"vercel-kb","path":"/kb/guide/tanstack-start-on-vercel-vs-cloudflare"},{"site":"vercel-kb","path":"/kb/guide/tanstack-start-on-vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/using-tanstack-intent-to-ship-and-consume-agent-skills"}],"requires":[{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel","distance":0.1075},{"site":"vercel-docs","path":"/docs/integrations/lovable","distance":0.1819},{"site":"vercel-kb","path":"/kb/guide/nitro-vite-plugin","distance":0.1898},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","distance":0.1925},{"site":"vercel-kb","path":"/kb/guide/tanstack-start-on-vercel-vs-netlify","distance":0.1939}],"related":[{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/adding-keyboard-shortcuts-to-react-apps-with-tanstack-hotkeys","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/tanstack-intent-vs-skills","via":"inbound"},{"site":"vercel-docs","path":"/docs/frameworks/backend/nitro","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/nestjs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/vite-with-nitro","title":"Vite + Nitro","summary":"Add a backend to any Vite app with Nitro and deploy to Vercel with zero configuration.","outbound":[{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/environment-variables/system-environment-variables"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nuxt"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/observability"}],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite"},{"site":"vercel-kb","path":"/kb/guide/nitro-vite-plugin"}],"requires":[{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack"}],"neighbors":[{"site":"vercel-docs","path":"/docs/frameworks/backend/nitro","distance":0.2202},{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel","distance":0.2374},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nuxt","distance":0.2488},{"site":"vercel-kb","path":"/kb/guide/nitro-vite-plugin","distance":0.2516},{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite","distance":0.2822}],"related":[{"site":"vercel-kb","path":"/kb/guide/nitro-vite-plugin","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-vite","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-nitro-starter-template","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-vite","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/react-router","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/remix","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks","title":"All Frameworks","summary":"Learn about the frameworks that can be deployed to Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/astro"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nuxt"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/og-image-generation"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/skew-protection"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-files-in-serverless-functions"}],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/integrations/lovable"},{"site":"vercel-docs","path":"/docs/monorepos/turborepo"},{"site":"vercel-kb","path":"/kb/guide/migrate-cloud-run-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-render-to-vercel"}],"requires":[{"site":"vercel-docs","path":"/docs/frameworks"}],"neighbors":[{"site":"vercel-docs","path":"/docs/frameworks/frontend","distance":0.075},{"site":"vercel-docs","path":"/docs/frameworks/full-stack","distance":0.1019},{"site":"vercel-docs","path":"/docs/frameworks","distance":0.1091},{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite","distance":0.1931},{"site":"vercel-docs","path":"/docs/frameworks/frontend/react-router","distance":0.2294}],"related":[{"site":"vercel-kb","path":"/kb/guide/migrate-cloud-run-to-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/migrate-render-to-vercel","via":"inbound"},{"site":"vercel-docs","path":"/docs/frameworks/frontend","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nestjs-app-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/react-router","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/nitro","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/functions","title":"Functions","summary":"Run server-side code on Vercel without managing a server.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"},{"site":"vercel-docs","path":"/docs/functions/debug-slow-functions"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/logs"},{"site":"vercel-docs","path":"/docs/functions/quickstart"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing"},{"site":"vercel-docs","path":"/docs/fundamentals/what-is-compute"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools"},{"site":"vercel-docs","path":"/docs/build-output-api/primitives"},{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/caching/cache-control-headers"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/cli/deploy"},{"site":"vercel-docs","path":"/docs/cli/dev"},{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/cron-jobs/manage-cron-jobs"},{"site":"vercel-docs","path":"/docs/cron-jobs/quickstart"},{"site":"vercel-docs","path":"/docs/cron-jobs/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build"},{"site":"vercel-docs","path":"/docs/drains/reference/logs"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/eve"},{"site":"vercel-docs","path":"/docs/eve/concepts"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/backend/celery"},{"site":"vercel-docs","path":"/docs/frameworks/backend/elysia"},{"site":"vercel-docs","path":"/docs/frameworks/backend/express"},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi"},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastify"},{"site":"vercel-docs","path":"/docs/frameworks/backend/flask"},{"site":"vercel-docs","path":"/docs/frameworks/backend/hono"},{"site":"vercel-docs","path":"/docs/frameworks/backend/koa"},{"site":"vercel-docs","path":"/docs/frameworks/backend/nestjs"},{"site":"vercel-docs","path":"/docs/frameworks/backend/nitro"},{"site":"vercel-docs","path":"/docs/frameworks/backend/xmcp"},{"site":"vercel-docs","path":"/docs/frameworks/frontend"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/astro"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/django"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nuxt"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/tanstack-start"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/vite-with-nitro"},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks"},{"site":"vercel-docs","path":"/docs/functions/concurrency-scaling"},{"site":"vercel-docs","path":"/docs/functions/container-images"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/functions/runtimes/wasm"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing"},{"site":"vercel-docs","path":"/docs/functions/websockets"},{"site":"vercel-docs","path":"/docs/fundamentals/builds"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/headers/request-headers"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works"},{"site":"vercel-docs","path":"/docs/incremental-migration"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/request-collapsing"},{"site":"vercel-docs","path":"/docs/kms"},{"site":"vercel-docs","path":"/docs/kms/quickstart"},{"site":"vercel-docs","path":"/docs/logs/runtime"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel"},{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/observability/insights"},{"site":"vercel-docs","path":"/docs/og-image-generation"},{"site":"vercel-docs","path":"/docs/partial-prerendering"},{"site":"vercel-docs","path":"/docs/plans"},{"site":"vercel-docs","path":"/docs/pricing/how-does-vercel-calculate-usage-of-resources"},{"site":"vercel-docs","path":"/docs/pricing/legacy"},{"site":"vercel-docs","path":"/docs/products"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts"},{"site":"vercel-docs","path":"/docs/query/monitoring/monitoring-reference"},{"site":"vercel-docs","path":"/docs/queues/concepts"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/vercel-blob/private-storage"},{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage"},{"site":"vercel-docs","path":"/docs/vercel-blob/security"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-firewall/attack-mode"},{"site":"vercel-kb","path":"/kb/guide/agent-approval-workflow-stack-guide"},{"site":"vercel-kb","path":"/kb/guide/ai-evaluation-dashboard-architecture-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/astro-on-vercel-vs-webflow-cloud"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-express-starter-template"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-fastapi-starter-template"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-flask-starter-template"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-hono-starter-template"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-nitro-starter-template"},{"site":"vercel-kb","path":"/kb/guide/building-ai-chat-app-with-rag-and-citations-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/can-i-deploy-discord-bots-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address"},{"site":"vercel-kb","path":"/kb/guide/can-i-route-based-on-letter-casing-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/connection-pooling-with-functions"},{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/detect-memory-and-oom-failures-in-serverless-functions"},{"site":"vercel-kb","path":"/kb/guide/docker"},{"site":"vercel-kb","path":"/kb/guide/docker-on-vercel-vs-render"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments"},{"site":"vercel-kb","path":"/kb/guide/hosting-backend-apis"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-allowlist-deployment-ip-address"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-mcp-server-with-nuxt"},{"site":"vercel-kb","path":"/kb/guide/how-to-bypass-vercel-body-size-limit-serverless-functions"},{"site":"vercel-kb","path":"/kb/guide/how-to-configure-the-cache-control-response-header-in-vercel-projects"},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-404-errors"},{"site":"vercel-kb","path":"/kb/guide/how-to-enable-cors"},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-next.js-sitecore-jss"},{"site":"vercel-kb","path":"/kb/guide/improve-function-cold-start-performance-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-an-astro-app-from-webflow-cloud-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-containers-from-aws-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare"},{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-cloudflare"},{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-webflow-cloud"},{"site":"vercel-kb","path":"/kb/guide/nextjs-on-vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/nitro-vite-plugin"},{"site":"vercel-kb","path":"/kb/guide/npm-run-start-not-working"},{"site":"vercel-kb","path":"/kb/guide/publish-and-subscribe-to-realtime-data-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/rag-chatbot-production-architecture-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/real-time-board-nextjs-fastapi"},{"site":"vercel-kb","path":"/kb/guide/run-claude-managed-agent-tools-with-vercel-sandbox"},{"site":"vercel-kb","path":"/kb/guide/sending-emails-from-an-application-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/serverless-functions-and-smtp"},{"site":"vercel-kb","path":"/kb/guide/ship-a-elysia-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-flask-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-h3-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-hono-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-koa-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nestjs-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/tanstack-start-on-vercel-vs-cloudflare"},{"site":"vercel-kb","path":"/kb/guide/tanstack-start-on-vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-build-error-build-step-did-not-complete-within-45-minutes"},{"site":"vercel-kb","path":"/kb/guide/using-express-with-vercel"},{"site":"vercel-kb","path":"/kb/guide/using-xmcp-with-nextjs"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-vs-netlify-blobs"},{"site":"vercel-kb","path":"/kb/guide/vercel-services-fluid-compute"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud"},{"site":"vercel-kb","path":"/kb/guide/weather-api-with-express"},{"site":"vercel-kb","path":"/kb/guide/weather-api-with-fastapi"},{"site":"vercel-kb","path":"/kb/guide/weather-api-with-nitro"},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out"},{"site":"vercel-kb","path":"/kb/guide/what-is-streaming"},{"site":"vercel-kb","path":"/kb/guide/why-does-my-serverless-function-work-locally-but-not-when-deployed"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/functions/quickstart","distance":0.1505},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing","distance":0.1596},{"site":"vercel-docs","path":"/docs/functions/runtimes","distance":0.1696},{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel","distance":0.1732},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","distance":0.1752}],"related":[{"site":"vercel-kb","path":"/kb/guide/agent-approval-workflow-stack-guide","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ai-evaluation-dashboard-architecture-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/astro-on-vercel-vs-webflow-cloud","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-express-starter-template","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-fastapi-starter-template","via":"inbound"},{"site":"vercel-docs","path":"/docs/frameworks/backend","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools","via":"inbound"},{"site":"vercel-docs","path":"/docs/build-output-api/primitives","via":"inbound"},{"site":"vercel-docs","path":"/docs/builds/configure-a-build","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/functions/concurrency-scaling","title":"Concurrency Scaling","summary":"Learn how Vercel automatically scales your functions to handle traffic surges.","outbound":[{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/logs/runtime"},{"site":"vercel-docs","path":"/docs/plans"}],"inbound":[{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/functions/runtimes/edge"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-kb","path":"/kb/guide/improve-function-cold-start-performance-on-vercel"}],"requires":[{"site":"vercel-docs","path":"/docs/functions"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/what-should-i-do-if-i-receive-a-503-error-on-vercel","distance":0.2864},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing","distance":0.3045},{"site":"vercel-docs","path":"/docs/plans","distance":0.3106},{"site":"vercel-docs","path":"/docs/functions","distance":0.3122},{"site":"vercel-docs","path":"/docs/functions/runtimes","distance":0.3277}],"related":[{"site":"vercel-kb","path":"/kb/guide/improve-function-cold-start-performance-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/what-should-i-do-if-i-receive-a-503-error-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-are-my-vercel-builds-queued","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-s-vercel-s-policy-regarding-load-testing-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/limits","via":"neighbor"},{"site":"vercel-docs","path":"/docs/limits/fair-use-guidelines","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/functions/configuring-functions","title":"Configuring Functions","summary":"Learn how to configure the runtime, region, maximum duration, and memory for Vercel Functions.","outbound":[{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/memory"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"}],"inbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/advanced-configuration"},{"site":"vercel-docs","path":"/docs/functions/debug-slow-functions"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference"},{"site":"vercel-docs","path":"/docs/functions/quickstart"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"}],"requires":[{"site":"vercel-docs","path":"/docs/functions"}],"neighbors":[{"site":"vercel-docs","path":"/docs/functions/configuring-functions/runtime","distance":0.1915},{"site":"vercel-docs","path":"/docs/functions/runtimes","distance":0.2078},{"site":"vercel-docs","path":"/docs/functions","distance":0.2166},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region","distance":0.2225},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/memory","distance":0.223}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-sdk-python","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/rust","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/ruby","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/advanced-configuration","title":"Advanced Configuration","summary":"Learn how to add utility files to the /api directory, and bundle Vercel Functions.","outbound":[{"site":"vercel-docs","path":"/docs/functions/configuring-functions"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions"},{"site":"vercel-docs","path":"/docs/project-configuration"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"}],"inbound":[{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build"},{"site":"vercel-docs","path":"/docs/fundamentals/what-is-compute"}],"requires":[{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions"}],"neighbors":[{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/advanced-node-configuration","distance":0.2249},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/runtime","distance":0.237},{"site":"vercel-docs","path":"/docs/build-output-api/features","distance":0.2468},{"site":"vercel-docs","path":"/docs/functions/quickstart","distance":0.2526},{"site":"vercel-docs","path":"/docs/project-configuration","distance":0.2545}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-files-in-serverless-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/advanced-node-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/runtime","via":"neighbor"},{"site":"vercel-docs","path":"/docs/build-output-api/features","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration","title":"Duration","summary":"Learn how to set the maximum duration of a Vercel Function.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/src-folder"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"}],"inbound":[{"site":"ai-sdk","path":"/docs/troubleshooting/timeout-on-vercel"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing"},{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/plans/hobby"},{"site":"vercel-docs","path":"/docs/production-checklist"},{"site":"vercel-kb","path":"/kb/guide/building-ai-chat-app-with-rag-and-citations-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk"},{"site":"vercel-kb","path":"/kb/guide/mcp-server-chatgpt-connector"},{"site":"vercel-kb","path":"/kb/guide/publish-and-subscribe-to-realtime-data-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/rag-chatbot-production-architecture-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/real-time-chat-websockets"},{"site":"vercel-kb","path":"/kb/guide/serverless-functions-and-smtp"},{"site":"vercel-kb","path":"/kb/guide/vercel-services-fluid-compute"},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out"},{"site":"vercel-kb","path":"/kb/guide/what-should-i-do-if-i-receive-a-503-error-on-vercel"}],"requires":[{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions"}],"neighbors":[{"site":"vercel-docs","path":"/docs/functions/limitations","distance":0.2014},{"site":"vercel-docs","path":"/docs/functions/configuring-functions","distance":0.2293},{"site":"vercel-docs","path":"/docs/limits","distance":0.2484},{"site":"vercel-docs","path":"/docs/functions/runtimes","distance":0.2542},{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel","distance":0.2556}],"related":[{"site":"ai-sdk","path":"/docs/troubleshooting/timeout-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/building-ai-chat-app-with-rag-and-citations-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/mcp-server-chatgpt-connector","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/publish-and-subscribe-to-realtime-data-on-vercel","via":"inbound"},{"site":"vercel-docs","path":"/docs/limits","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/advanced-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package","via":"inbound"},{"site":"vercel-docs","path":"/docs/plans/hobby","via":"inbound"},{"site":"vercel-docs","path":"/docs/production-checklist","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/memory","title":"Memory","summary":"Learn how to set the memory / CPU of a Vercel Function.","outbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing"},{"site":"vercel-docs","path":"/docs/production-checklist"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts"},{"site":"vercel-kb","path":"/kb/guide/detect-memory-and-oom-failures-in-serverless-functions"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute"},{"site":"vercel-kb","path":"/kb/guide/vercel-services-fluid-compute"}],"requires":[{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel","distance":0.1927},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing","distance":0.2052},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing","distance":0.2224},{"site":"vercel-docs","path":"/docs/functions/configuring-functions","distance":0.223},{"site":"vercel-docs","path":"/docs/functions/limitations","distance":0.2387}],"related":[{"site":"vercel-kb","path":"/kb/guide/detect-memory-and-oom-failures-in-serverless-functions","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-services-fluid-compute","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/production-checklist","via":"inbound"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json","via":"inbound"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region","title":"Region","summary":"Learn how to configure regions for Vercel Functions.","outbound":[{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/cli/deploy"},{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/iad1"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/routing-middleware"}],"inbound":[{"site":"flags-sdk","path":"/docs/principles/data-locality"},{"site":"vercel-docs","path":"/docs/caching"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing"},{"site":"vercel-docs","path":"/docs/fundamentals/builds"},{"site":"vercel-docs","path":"/docs/fundamentals/what-is-compute"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/marketplace-storage"},{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/production-checklist"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/security/compliance"},{"site":"vercel-docs","path":"/docs/workflows"},{"site":"vercel-kb","path":"/kb/guide/hosting-backend-apis"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime"},{"site":"vercel-kb","path":"/kb/guide/improve-function-cold-start-performance-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-request-econnreset-errors"}],"requires":[{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions"}],"neighbors":[{"site":"vercel-docs","path":"/docs/regions","distance":0.1896},{"site":"vercel-docs","path":"/docs/functions/configuring-functions","distance":0.2225},{"site":"vercel-docs","path":"/docs/functions/runtimes","distance":0.2332},{"site":"vercel-docs","path":"/docs/functions","distance":0.2356},{"site":"vercel-docs","path":"/docs/functions/limitations","distance":0.2792}],"related":[{"site":"flags-sdk","path":"/docs/principles/data-locality","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/hosting-backend-apis","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/improve-function-cold-start-performance-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-request-econnreset-errors","via":"inbound"},{"site":"vercel-docs","path":"/docs/project-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works","via":"neighbor"},{"site":"vercel-docs","path":"/docs/build-output-api/primitives","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/runtime","title":"Runtime","summary":"Learn how to configure the runtime for Vercel Functions.","outbound":[{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/functions/runtimes/python"}],"inbound":[{"site":"vercel-docs","path":"/docs/functions/functions-api-reference"},{"site":"vercel-docs","path":"/docs/functions/runtimes"}],"requires":[{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions"}],"neighbors":[{"site":"vercel-docs","path":"/docs/functions/runtimes/ruby","distance":0.1687},{"site":"vercel-docs","path":"/docs/functions/runtimes","distance":0.1737},{"site":"vercel-docs","path":"/docs/functions/runtimes/go","distance":0.1816},{"site":"vercel-docs","path":"/docs/functions/configuring-functions","distance":0.1915},{"site":"vercel-docs","path":"/docs/functions/runtimes/python","distance":0.1978}],"related":[{"site":"vercel-docs","path":"/docs/functions/runtimes/ruby","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/go","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/rust","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/quickstart","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/functions/container-images","title":"Container Images","summary":"Deploy OCI container images with a Dockerfile or Containerfile on Vercel Functions.","outbound":[{"site":"vercel-docs","path":"/docs/cli/deploy"},{"site":"vercel-docs","path":"/docs/container-registry"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/logs"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/services"}],"inbound":[{"site":"vercel-docs","path":"/docs/container-registry"},{"site":"vercel-docs","path":"/docs/container-registry/getting-started"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-docs","path":"/docs/services"},{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address"},{"site":"vercel-kb","path":"/kb/guide/deploy-go-using-docker-vercel"},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/deploy-php-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/docker"},{"site":"vercel-kb","path":"/kb/guide/docker-compose-concepts-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/docker-on-vercel-vs-render"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments"},{"site":"vercel-kb","path":"/kb/guide/dot-net-asp-net-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/full-stack-preview-deployments-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-container-registry"},{"site":"vercel-kb","path":"/kb/guide/kubernetes-manifests-to-vercel-json"},{"site":"vercel-kb","path":"/kb/guide/migrate-cloud-run-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-containers-from-aws-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-fly-io-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-ghcr-to-vcr"},{"site":"vercel-kb","path":"/kb/guide/migrate-railway-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-render-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-function-250mb-limit"},{"site":"vercel-kb","path":"/kb/guide/vercel-kubernetes-support"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-kubernetes"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway"}],"requires":[{"site":"vercel-docs","path":"/docs/functions"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments","distance":0.0979},{"site":"vercel-kb","path":"/kb/guide/docker","distance":0.1576},{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-container-registry","distance":0.1691},{"site":"vercel-docs","path":"/docs/container-registry","distance":0.1898},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","distance":0.2237}],"related":[{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/deploy-go-using-docker-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/deploy-php-on-vercel-with-docker","via":"inbound"},{"site":"vercel-docs","path":"/docs/container-registry/limits-and-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/container-registry/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/vcr","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/functions/debug-slow-functions","title":"Debug Slow Functions","summary":"Diagnose and fix slow Vercel Functions using CLI tools, logs, and timing analysis.","outbound":[{"site":"vercel-docs","path":"/docs/cli/httpstat"},{"site":"vercel-docs","path":"/docs/cli/inspect"},{"site":"vercel-docs","path":"/docs/cli/logs"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/observability/debug-production-errors"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources"},{"site":"vercel-docs","path":"/docs/agent-resources/workflows"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-kb","path":"/kb/guide/improve-function-cold-start-performance-on-vercel"}],"requires":[{"site":"vercel-docs","path":"/docs/functions"}],"neighbors":[{"site":"vercel-docs","path":"/docs/observability/debug-production-errors","distance":0.2127},{"site":"vercel-kb","path":"/kb/guide/improve-function-cold-start-performance-on-vercel","distance":0.226},{"site":"vercel-kb","path":"/kb/guide/investigate-latency-issues-and-slowness","distance":0.2271},{"site":"vercel-docs","path":"/docs/functions","distance":0.2348},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out","distance":0.2562}],"related":[{"site":"vercel-kb","path":"/kb/guide/improve-function-cold-start-performance-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/investigate-latency-issues-and-slowness","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-effectively-load-test-your-vercel-application","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-lower-my-serverless-function-execution-time","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/debug-cache-issues","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources","via":"inbound"},{"site":"vercel-docs","path":"/docs/agent-resources/workflows","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference","title":"API Reference","summary":"Learn about available APIs when working with Vercel Functions.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config"},{"site":"nextjs","path":"/docs/app/api-reference/functions/after"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-request"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/api-routes"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/runtime"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-sdk-python"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-kb","path":"/kb/guide/what-is-streaming"}],"inbound":[{"site":"ai-sdk","path":"/docs/advanced/stopping-streams"},{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide"},{"site":"nextjs","path":"/docs/app/api-reference/functions/after"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/container-images"},{"site":"vercel-docs","path":"/docs/functions/quickstart"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts"},{"site":"vercel-docs","path":"/docs/routing-middleware/api"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-concepts"},{"site":"vercel-kb","path":"/kb/guide/add-structured-application-logs-to-vercel-functions"},{"site":"vercel-kb","path":"/kb/guide/geo-ip-headers-geolocation-vercel-functions"},{"site":"vercel-kb","path":"/kb/guide/serverless-functions-and-smtp"},{"site":"workflow","path":"/docs/foundations/streaming"}],"requires":[{"site":"vercel-docs","path":"/docs/functions"}],"neighbors":[{"site":"vercel-docs","path":"/docs/functions","distance":0.1832},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","distance":0.212},{"site":"vercel-docs","path":"/docs/functions/runtimes","distance":0.2224},{"site":"vercel-docs","path":"/docs/oidc/aws","distance":0.223},{"site":"vercel-docs","path":"/docs/functions/quickstart","distance":0.2268}],"related":[{"site":"ai-sdk","path":"/docs/advanced/stopping-streams","via":"inbound"},{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/add-structured-application-logs-to-vercel-functions","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/geo-ip-headers-geolocation-vercel-functions","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/serverless-functions-and-smtp","via":"inbound"},{"site":"workflow","path":"/docs/foundations/streaming","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/hosting-backend-apis","via":"neighbor"},{"site":"vercel-docs","path":"/docs/oidc/aws","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/advanced-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability/insights","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing-middleware/api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/ts-sdk-reference","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package","title":"Node.js","summary":"Learn about available APIs when working with Vercel Functions.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config"},{"site":"nextjs","path":"/docs/app/api-reference/functions/after"},{"site":"nextjs","path":"/docs/app/api-reference/functions/connection"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/environment-variables/system-environment-variables"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration"},{"site":"vercel-docs","path":"/docs/functions/runtimes/edge"},{"site":"vercel-docs","path":"/docs/functions/websockets"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/observability/custom-metrics"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15"},{"site":"vercel-docs","path":"/docs/caching/cache-status"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/backend"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/functions/websockets"},{"site":"vercel-docs","path":"/docs/fundamentals/what-is-compute"},{"site":"vercel-docs","path":"/docs/observability/custom-metrics"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-v2-observability-schema-metric-id"},{"site":"vercel-docs","path":"/docs/routing-middleware/api"},{"site":"vercel-kb","path":"/kb/guide/efficiently-manage-database-connection-pools-with-fluid-compute"},{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute"},{"site":"vercel-kb","path":"/kb/guide/real-time-chat-websockets"},{"site":"vercel-kb","path":"/kb/guide/sending-emails-from-an-application-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/serverless-functions-and-smtp"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-inconsistent-logs-in-vercel-functions"},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out"},{"site":"workflow","path":"/docs/foundations/streaming"}],"requires":[{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference"}],"neighbors":[{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-sdk-python","distance":0.2145},{"site":"vercel-docs","path":"/docs/caching/runtime-cache","distance":0.2162},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","distance":0.2283},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge","distance":0.2532},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference","distance":0.2564}],"related":[{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/efficiently-manage-database-connection-pools-with-fluid-compute","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/real-time-chat-websockets","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/sending-emails-from-an-application-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/serverless-functions-and-smtp","via":"inbound"},{"site":"workflow","path":"/docs/foundations/streaming","via":"inbound"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheHandlers","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/cache-control-headers","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-sdk-python","title":"Python","summary":"Learn about available APIs when working with Vercel Functions in Python.","outbound":[{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/environment-variables/system-environment-variables"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/functions/functions-api-reference"}],"requires":[{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference"}],"neighbors":[{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package","distance":0.2145},{"site":"vercel-docs","path":"/docs/functions/runtimes","distance":0.2266},{"site":"vercel-docs","path":"/docs/functions/runtimes/python","distance":0.2477},{"site":"vercel-docs","path":"/docs/functions","distance":0.2489},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference","distance":0.2558}],"related":[{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/python","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/functions/limitations","title":"Limits","summary":"Learn about the limits and restrictions of using Vercel Functions.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/output"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/cli/env"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions/concurrency-scaling"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/memory"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/functions/runtimes/edge"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js"},{"site":"vercel-docs","path":"/docs/functions/runtimes/python"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/headers/request-headers"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-kb","path":"/kb/guide/how-to-bypass-vercel-body-size-limit-serverless-functions"}],"inbound":[{"site":"vercel-docs","path":"/docs/build-output-api/primitives"},{"site":"vercel-docs","path":"/docs/eve/pricing"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/core"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/backend"},{"site":"vercel-docs","path":"/docs/frameworks/backend/express"},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi"},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastify"},{"site":"vercel-docs","path":"/docs/frameworks/backend/flask"},{"site":"vercel-docs","path":"/docs/frameworks/backend/koa"},{"site":"vercel-docs","path":"/docs/frameworks/backend/nestjs"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/django"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/memory"},{"site":"vercel-docs","path":"/docs/functions/container-images"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions"},{"site":"vercel-docs","path":"/docs/functions/websockets"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts"},{"site":"vercel-docs","path":"/docs/services/pricing"},{"site":"vercel-docs","path":"/docs/workflows/pricing"},{"site":"vercel-kb","path":"/kb/guide/can-i-deploy-discord-bots-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address"},{"site":"vercel-kb","path":"/kb/guide/do-vercel-serverless-functions-support-websocket-connections"},{"site":"vercel-kb","path":"/kb/guide/docker-on-vercel-vs-render"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk"},{"site":"vercel-kb","path":"/kb/guide/how-to-effectively-load-test-your-vercel-application"},{"site":"vercel-kb","path":"/kb/guide/publish-and-subscribe-to-realtime-data-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/real-time-chat-websockets"},{"site":"vercel-kb","path":"/kb/guide/sending-emails-from-an-application-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-h3-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-function-250mb-limit"},{"site":"vercel-kb","path":"/kb/guide/vercel-services"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly"}],"requires":[{"site":"vercel-docs","path":"/docs/functions"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel","distance":0.191},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing","distance":0.191},{"site":"vercel-docs","path":"/docs/functions/runtimes","distance":0.1954},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-function-250mb-limit","distance":0.1999},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration","distance":0.2014}],"related":[{"site":"vercel-kb","path":"/kb/guide/can-i-deploy-discord-bots-to-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/do-vercel-serverless-functions-support-websocket-connections","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/docker-on-vercel-vs-render","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments","via":"inbound"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/build-output-api/primitives","via":"inbound"},{"site":"vercel-docs","path":"/docs/eve/pricing","via":"inbound"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/core","via":"inbound"},{"site":"vercel-docs","path":"/docs/frameworks/backend","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/functions/logs","title":"Logs","summary":"Use runtime logs to debug and monitor your Vercel Functions.","outbound":[{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/quickstart"},{"site":"vercel-docs","path":"/docs/logs/runtime"}],"inbound":[{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/container-images"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions"}],"requires":[{"site":"vercel-docs","path":"/docs/functions"}],"neighbors":[{"site":"vercel-docs","path":"/docs/logs","distance":0.184},{"site":"vercel-docs","path":"/docs/logs/runtime","distance":0.1919},{"site":"vercel-kb","path":"/kb/guide/add-structured-application-logs-to-vercel-functions","distance":0.2485},{"site":"vercel-docs","path":"/docs/cli/logs","distance":0.261},{"site":"vercel-docs","path":"/docs/functions","distance":0.2625}],"related":[{"site":"vercel-kb","path":"/kb/guide/add-structured-application-logs-to-vercel-functions","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-store-logs-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-inconsistent-logs-in-vercel-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/logs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/logs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/logs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability/insights","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/logs","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/functions/quickstart","title":"Getting Started","summary":"Build your first Vercel Function in a few steps.","outbound":[{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions"}],"inbound":[{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions"},{"site":"vercel-docs","path":"/docs/oidc/aws"},{"site":"vercel-docs","path":"/docs/oidc/azure"},{"site":"vercel-docs","path":"/docs/oidc/gcp"}],"requires":[{"site":"vercel-docs","path":"/docs/functions"}],"neighbors":[{"site":"vercel-docs","path":"/docs/functions","distance":0.1505},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","distance":0.2144},{"site":"vercel-docs","path":"/docs/functions/runtimes/rust","distance":0.224},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference","distance":0.2268},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/runtime","distance":0.2287}],"related":[{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/rust","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/runtime","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/go","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/functions/runtimes","title":"Runtimes","summary":"Runtimes transform your source code into Functions, which are served by our CDN. Learn about the official runtimes supported by Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/build-output-api"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/container-registry"},{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/concurrency-scaling"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/runtime"},{"site":"vercel-docs","path":"/docs/functions/container-images"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package"},{"site":"vercel-docs","path":"/docs/functions/runtimes/bun"},{"site":"vercel-docs","path":"/docs/functions/runtimes/edge"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js"},{"site":"vercel-docs","path":"/docs/functions/runtimes/python"},{"site":"vercel-docs","path":"/docs/functions/runtimes/ruby"},{"site":"vercel-docs","path":"/docs/functions/runtimes/rust"},{"site":"vercel-docs","path":"/docs/functions/runtimes/wasm"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions"},{"site":"vercel-docs","path":"/docs/fundamentals/what-is-compute"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/storage"},{"site":"vercel-docs","path":"/docs/tracing"}],"inbound":[{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide"},{"site":"vercel-docs","path":"/docs/build-output-api/primitives"},{"site":"vercel-docs","path":"/docs/builds/build-image"},{"site":"vercel-docs","path":"/docs/cron-jobs/manage-cron-jobs"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/frontend"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/astro"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack"},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/advanced-configuration"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/runtime"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/quickstart"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/services/config-reference"},{"site":"vercel-docs","path":"/docs/vercel-blob/server-upload"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-render"}],"requires":[{"site":"vercel-docs","path":"/docs/functions"}],"neighbors":[{"site":"vercel-docs","path":"/docs/functions","distance":0.1696},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/runtime","distance":0.1737},{"site":"vercel-docs","path":"/docs/functions/limitations","distance":0.1954},{"site":"vercel-docs","path":"/docs/functions/configuring-functions","distance":0.2078},{"site":"vercel-docs","path":"/docs/functions/runtimes/rust","distance":0.2098}],"related":[{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-render","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/hosting-backend-apis","via":"neighbor"},{"site":"vercel-docs","path":"/docs/build-output-api/primitives","via":"inbound"},{"site":"vercel-docs","path":"/docs/builds/build-image","via":"inbound"},{"site":"vercel-docs","path":"/docs/cron-jobs/manage-cron-jobs","via":"inbound"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","via":"inbound"},{"site":"vercel-docs","path":"/docs/frameworks/frontend","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/functions/runtimes/bun","title":"Bun","summary":"Learn how to use the Bun runtime with Vercel Functions to create fast, efficient functions.","outbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js"},{"site":"vercel-docs","path":"/docs/functions/websockets"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/routing-middleware"}],"inbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/backend/elysia"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/functions/runtimes/wasm"},{"site":"vercel-docs","path":"/docs/functions/websockets"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/routing-middleware/getting-started"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-express-starter-template"},{"site":"vercel-kb","path":"/kb/guide/ship-a-elysia-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-h3-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-hono-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out"}],"requires":[{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/runtimes"}],"neighbors":[{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","distance":0.2189},{"site":"vercel-docs","path":"/docs/functions/runtimes","distance":0.2527},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/runtime","distance":0.2552},{"site":"vercel-docs","path":"/docs/functions/runtimes/rust","distance":0.2647},{"site":"vercel-docs","path":"/docs/functions","distance":0.2798}],"related":[{"site":"vercel-kb","path":"/kb/guide/build-with-a-express-starter-template","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ship-a-elysia-app-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ship-a-h3-app-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ship-a-hono-app-on-vercel","via":"inbound"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/runtime","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/advanced-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/elysia","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/functions/runtimes/edge","title":"Edge Runtime","summary":"Learn about the Edge runtime, an environment in which Vercel Functions can run.","outbound":[{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions/concurrency-scaling"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/regions"}],"inbound":[{"site":"vercel-docs","path":"/docs/builds/build-image"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/functions/runtimes/wasm"},{"site":"vercel-docs","path":"/docs/global-config/global-config-sdk"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/middleware-and-routing"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts"},{"site":"vercel-docs","path":"/docs/query/monitoring/monitoring-reference"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/routing-middleware/getting-started"},{"site":"vercel-docs","path":"/docs/tracing"},{"site":"vercel-docs","path":"/docs/tracing/instrumentation"},{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address"},{"site":"vercel-kb","path":"/kb/guide/library-sdk-compatible-with-vercel-edge-runtime-and-functions"},{"site":"vercel-kb","path":"/kb/guide/sending-emails-from-an-application-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out"}],"requires":[{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/runtimes"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/edge","distance":0.1593},{"site":"nextjs","path":"/docs/app/api-reference/edge","distance":0.1624},{"site":"vercel-docs","path":"/docs/functions/runtimes","distance":0.2298},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","distance":0.2415},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference","distance":0.267}],"related":[{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/library-sdk-compatible-with-vercel-edge-runtime-and-functions","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/sending-emails-from-an-application-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out","via":"inbound"},{"site":"nextjs","path":"/docs/pages/api-reference/edge","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/edge","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend","via":"neighbor"},{"site":"vercel-docs","path":"/docs/build-output-api/primitives","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/functions/runtimes/go","title":"Go","summary":"Learn how to use the Go runtime to run Go APIs on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/services"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/deploy-go-using-docker-vercel"},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out"}],"requires":[{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/runtimes"}],"neighbors":[{"site":"vercel-docs","path":"/docs/functions/runtimes/rust","distance":0.1787},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/runtime","distance":0.1816},{"site":"vercel-docs","path":"/docs/functions/runtimes/python","distance":0.211},{"site":"vercel-docs","path":"/docs/functions/runtimes/ruby","distance":0.2241},{"site":"vercel-docs","path":"/docs/functions/quickstart","distance":0.231}],"related":[{"site":"vercel-kb","path":"/kb/guide/deploy-go-using-docker-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out","via":"inbound"},{"site":"vercel-docs","path":"/docs/functions/runtimes/rust","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/runtime","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/python","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/ruby","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","title":"Node.js","summary":"Learn how to use the Node.js runtime to create functions and deploy Node.js servers on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/advanced-node-configuration"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/node-js-versions"},{"site":"vercel-docs","path":"/docs/package-managers"},{"site":"vercel-docs","path":"/docs/services"},{"site":"vercel-kb","path":"/kb/guide/using-express-with-vercel"}],"inbound":[{"site":"vercel-docs","path":"/docs/builds/build-image"},{"site":"vercel-docs","path":"/docs/builds/managing-builds"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/functions/runtimes/bun"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/advanced-node-configuration"},{"site":"vercel-docs","path":"/docs/functions/runtimes/wasm"},{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/og-image-generation"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/routing-middleware/getting-started"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-reduce-my-build-time-with-next-js-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-404-errors"},{"site":"vercel-kb","path":"/kb/guide/serverless-functions-and-smtp"},{"site":"vercel-kb","path":"/kb/guide/vercel-services-fluid-compute"},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out"}],"requires":[{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/runtimes"}],"neighbors":[{"site":"vercel-docs","path":"/docs/functions","distance":0.1752},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/advanced-node-configuration","distance":0.1877},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/runtime","distance":0.2052},{"site":"vercel-docs","path":"/docs/functions/runtimes","distance":0.2099},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference","distance":0.212}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-reduce-my-build-time-with-next-js-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-404-errors","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/serverless-functions-and-smtp","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-services-fluid-compute","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out","via":"inbound"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/runtime","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/react-router","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/express","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds/build-image","via":"inbound"},{"site":"vercel-docs","path":"/docs/builds/managing-builds","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/advanced-node-configuration","title":"Advanced Node.js Usage","summary":"Learn about advanced configurations for Vercel functions on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/cli/env"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/environment-variables/managing-environment-variables"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js"}],"inbound":[{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js"}],"requires":[{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/runtimes"}],"neighbors":[{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","distance":0.1877},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/advanced-configuration","distance":0.2249},{"site":"vercel-docs","path":"/docs/builds/build-features","distance":0.2471},{"site":"vercel-docs","path":"/docs/functions/runtimes/go","distance":0.2574},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/node-js-versions","distance":0.2672}],"related":[{"site":"vercel-kb","path":"/kb/guide/using-private-dependencies-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/advanced-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds/build-features","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/go","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/node-js-versions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/nestjs","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/node-js-versions","title":"Supported Node.js versions","summary":"Learn about the supported Node.js versions on Vercel.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js"},{"site":"vercel-docs","path":"/docs/project-configuration/general-settings"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"}],"requires":[{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/runtimes"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-the-latest-npm-version-for-my-vercel-deployment","distance":0.2595},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/advanced-node-configuration","distance":0.2672},{"site":"vercel-docs","path":"/docs/package-managers","distance":0.3097},{"site":"vercel-docs","path":"/docs/project-configuration/general-settings","distance":0.326},{"site":"vercel-docs","path":"/docs/functions/runtimes/python/python-version","distance":0.3264}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-the-latest-npm-version-for-my-vercel-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/advanced-node-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/package-managers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/general-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/python/python-version","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/functions/runtimes/python","title":"Python","summary":"Learn how to use the Python runtime to run Python applications on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi"},{"site":"vercel-docs","path":"/docs/frameworks/backend/flask"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/django"},{"site":"vercel-docs","path":"/docs/functions/runtimes/python/python-version"},{"site":"vercel-docs","path":"/docs/services"}],"inbound":[{"site":"vercel-docs","path":"/docs/builds/build-image"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/backend/celery"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/runtime"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/functions/runtimes/python/python-version"},{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-fastapi-starter-template"},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-404-errors"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-flask-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/vercel-docker-python-apps"},{"site":"vercel-kb","path":"/kb/guide/vercel-services"},{"site":"vercel-kb","path":"/kb/guide/vercel-services-fluid-compute"},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out"}],"requires":[{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/runtimes"}],"neighbors":[{"site":"vercel-docs","path":"/docs/functions/runtimes/python/api-directory","distance":0.1361},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi","distance":0.1639},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/django","distance":0.1677},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","distance":0.1733},{"site":"vercel-docs","path":"/docs/frameworks/backend/flask","distance":0.1875}],"related":[{"site":"vercel-kb","path":"/kb/guide/build-with-a-fastapi-starter-template","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-404-errors","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ship-a-flask-app-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-docker-python-apps","via":"inbound"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/runtime","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/celery","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds/build-image","via":"inbound"},{"site":"vercel-docs","path":"/docs/fluid-compute","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/functions/runtimes/python/api-directory","title":"Functions in /api","summary":"Learn about functions in /api on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi"},{"site":"vercel-docs","path":"/docs/frameworks/backend/flask"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/django"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/services"}],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/runtimes"}],"neighbors":[{"site":"vercel-docs","path":"/docs/functions/runtimes/python","distance":0.1361},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi","distance":0.2411},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/runtime","distance":0.2592},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","distance":0.2633},{"site":"vercel-docs","path":"/docs/functions/quickstart","distance":0.2728}],"related":[{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-flask-app-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/runtime","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-sdk-python","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/advanced-configuration","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/functions/runtimes/python/python-version","title":"Python version","summary":"Set the Python version for your Vercel project with pyproject.toml, .python-version, or Pipfile.lock.","outbound":[{"site":"vercel-docs","path":"/docs/functions/runtimes/python"}],"inbound":[{"site":"vercel-docs","path":"/docs/functions/runtimes/python"},{"site":"vercel-kb","path":"/kb/guide/ship-a-flask-app-on-vercel"}],"requires":[{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/runtimes"}],"neighbors":[{"site":"vercel-docs","path":"/docs/functions/runtimes/python","distance":0.2679},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/node-js-versions","distance":0.3264},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/runtime","distance":0.3451},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-the-latest-npm-version-for-my-vercel-deployment","distance":0.3622},{"site":"vercel-docs","path":"/docs/functions/runtimes/ruby","distance":0.3645}],"related":[{"site":"vercel-kb","path":"/kb/guide/ship-a-flask-app-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-the-latest-npm-version-for-my-vercel-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/node-js-versions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/runtime","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/ruby","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/flask","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/general-settings","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/functions/runtimes/ruby","title":"Ruby","summary":"Learn how to use the Ruby runtime to compile Ruby Vercel Functions on Vercel.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/builds/build-image"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out"}],"requires":[{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/runtimes"}],"neighbors":[{"site":"vercel-docs","path":"/docs/functions/configuring-functions/runtime","distance":0.1687},{"site":"vercel-docs","path":"/docs/functions/runtimes/rust","distance":0.1993},{"site":"vercel-docs","path":"/docs/functions/runtimes/go","distance":0.2241},{"site":"vercel-docs","path":"/docs/functions/runtimes","distance":0.254},{"site":"vercel-docs","path":"/docs/functions/runtimes/python","distance":0.2582}],"related":[{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-ruby-on-rails-applications","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/runtime","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/rust","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/go","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/python","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/functions/runtimes/rust","title":"Rust","summary":"Build fast, memory-safe serverless functions with Rust on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"}],"inbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out"}],"requires":[{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/runtimes"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker","distance":0.1776},{"site":"vercel-docs","path":"/docs/functions/runtimes/go","distance":0.1787},{"site":"vercel-docs","path":"/docs/functions/runtimes/ruby","distance":0.1993},{"site":"vercel-docs","path":"/docs/functions/runtimes","distance":0.2098},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/runtime","distance":0.2151}],"related":[{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/go","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastify","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/functions/runtimes/wasm","title":"Wasm","summary":"Learn how to use WebAssembly \\(Wasm\\) to enable low-level languages to run on Vercel Functions and Routing Middleware.","outbound":[{"site":"vercel-docs","path":"/docs/cli/dev"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/runtimes/bun"},{"site":"vercel-docs","path":"/docs/functions/runtimes/edge"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js"},{"site":"vercel-docs","path":"/docs/routing-middleware"}],"inbound":[{"site":"vercel-docs","path":"/docs/build-output-api/primitives"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out"}],"requires":[{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/runtimes"}],"neighbors":[{"site":"vercel-docs","path":"/docs/functions/runtimes/rust","distance":0.2934},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","distance":0.3179},{"site":"vercel-docs","path":"/docs/functions/quickstart","distance":0.3193},{"site":"vercel-docs","path":"/docs/functions/runtimes/go","distance":0.3297},{"site":"vercel-docs","path":"/docs/functions/runtimes/ruby","distance":0.3298}],"related":[{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-files-in-serverless-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/rust","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/go","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/ruby","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/advanced-configuration","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/functions/streaming-functions","title":"Streaming","summary":"Learn how to stream responses from Vercel Functions.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/logs"},{"site":"vercel-docs","path":"/docs/functions/quickstart"},{"site":"vercel-kb","path":"/kb/guide/does-streaming-affect-seo"},{"site":"vercel-kb","path":"/kb/guide/handling-backpressure"},{"site":"vercel-kb","path":"/kb/guide/processing-data-chunks"},{"site":"vercel-kb","path":"/kb/guide/what-is-streaming"}],"inbound":[{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/frontend"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit"},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/advanced-configuration"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/logs"},{"site":"vercel-docs","path":"/docs/functions/quickstart"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/functions/runtimes/edge"},{"site":"vercel-docs","path":"/docs/functions/websockets"},{"site":"vercel-docs","path":"/docs/logs/runtime"},{"site":"vercel-docs","path":"/docs/query/monitoring/monitoring-reference"},{"site":"vercel-kb","path":"/kb/guide/publish-and-subscribe-to-realtime-data-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/rag-chatbot-production-architecture-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out"},{"site":"vercel-kb","path":"/kb/guide/what-is-streaming"}],"requires":[{"site":"vercel-docs","path":"/docs/functions"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/what-is-streaming","distance":0.1188},{"site":"vercel-kb","path":"/kb/guide/streaming-from-llm","distance":0.1397},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/streaming","distance":0.2163},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/streaming","distance":0.2188},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/streaming","distance":0.2243}],"related":[{"site":"vercel-kb","path":"/kb/guide/streaming-from-llm","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/publish-and-subscribe-to-realtime-data-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/rag-chatbot-production-architecture-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out","via":"inbound"},{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/streaming","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/streaming","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/streaming","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/streaming","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing","title":"Pricing","summary":"Learn about usage and pricing for fluid compute on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"}],"inbound":[{"site":"vercel-docs","path":"/docs/alerts"},{"site":"vercel-docs","path":"/docs/cron-jobs/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/eve/pricing"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/backend"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/memory"},{"site":"vercel-docs","path":"/docs/functions/container-images"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/runtimes/edge"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing"},{"site":"vercel-docs","path":"/docs/functions/websockets"},{"site":"vercel-docs","path":"/docs/fundamentals/what-is-compute"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/partial-prerendering"},{"site":"vercel-docs","path":"/docs/plans/hobby"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/trials"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage"},{"site":"vercel-docs","path":"/docs/query/monitoring/monitoring-reference"},{"site":"vercel-docs","path":"/docs/query/reference"},{"site":"vercel-docs","path":"/docs/queues/pricing"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/services/pricing"},{"site":"vercel-docs","path":"/docs/workflows/pricing"},{"site":"vercel-kb","path":"/kb/guide/astro-on-vercel-vs-webflow-cloud"},{"site":"vercel-kb","path":"/kb/guide/docker-on-vercel-vs-render"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments"},{"site":"vercel-kb","path":"/kb/guide/fluid-compute-vs-cloud-cost"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app"},{"site":"vercel-kb","path":"/kb/guide/mcp-server-chatgpt-connector"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-an-astro-app-from-webflow-cloud-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-containers-from-aws-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-cloudflare"},{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-webflow-cloud"},{"site":"vercel-kb","path":"/kb/guide/nextjs-on-vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute"},{"site":"vercel-kb","path":"/kb/guide/penetration-testing-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/publish-and-subscribe-to-realtime-data-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/tanstack-start-on-vercel-vs-cloudflare"},{"site":"vercel-kb","path":"/kb/guide/tanstack-start-on-vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/vercel-services"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-kubernetes"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-render"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud"}],"requires":[{"site":"vercel-docs","path":"/docs/functions"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel","distance":0.1911},{"site":"vercel-docs","path":"/docs/fluid-compute","distance":0.203},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing","distance":0.2098},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing","distance":0.2142},{"site":"vercel-docs","path":"/docs/pricing","distance":0.2174}],"related":[{"site":"vercel-kb","path":"/kb/guide/astro-on-vercel-vs-webflow-cloud","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/docker-on-vercel-vs-render","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/fluid-compute-vs-cloud-cost","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","via":"inbound"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hkg1","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing","title":"Legacy Usage & Pricing","summary":"Learn about legacy usage and pricing for Vercel Functions.","outbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/concurrency-scaling"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/memory"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/headers"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/plans/hobby"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/trials"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage"},{"site":"vercel-docs","path":"/docs/projects"},{"site":"vercel-docs","path":"/docs/spend-management"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out"},{"site":"vercel-kb","path":"/kb/guide/what-should-i-do-if-i-receive-a-503-error-on-vercel"}],"inbound":[{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel"}],"requires":[{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel","distance":0.0984},{"site":"vercel-docs","path":"/docs/functions","distance":0.1596},{"site":"vercel-docs","path":"/docs/functions/limitations","distance":0.191},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/memory","distance":0.2052},{"site":"vercel-docs","path":"/docs/pricing","distance":0.2065}],"related":[{"site":"vercel-docs","path":"/docs/functions/limitations","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/limits","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/legacy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/functions/websockets","title":"WebSockets","summary":"Serve WebSocket connections in Vercel Functions for realtime features like chat, collaboration, and AI streaming.","outbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/runtimes/bun"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"}],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/backend"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/django"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package"},{"site":"vercel-docs","path":"/docs/functions/runtimes/bun"},{"site":"vercel-kb","path":"/kb/guide/do-vercel-serverless-functions-support-websocket-connections"},{"site":"vercel-kb","path":"/kb/guide/publish-and-subscribe-to-realtime-data-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/real-time-board-nextjs-fastapi"},{"site":"vercel-kb","path":"/kb/guide/real-time-chat-websockets"},{"site":"vercel-kb","path":"/kb/guide/real-time-presence-hono-react"},{"site":"vercel-kb","path":"/kb/guide/using-express-with-vercel"},{"site":"vercel-kb","path":"/kb/guide/vercel-services-fluid-compute"}],"requires":[{"site":"vercel-docs","path":"/docs/functions"}],"neighbors":[{"site":"vercel-docs","path":"/docs/frameworks/backend","distance":0.2065},{"site":"vercel-docs","path":"/docs/functions","distance":0.2273},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","distance":0.2415},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/django","distance":0.2496},{"site":"vercel-kb","path":"/kb/guide/do-vercel-serverless-functions-support-websocket-connections","distance":0.2594}],"related":[{"site":"vercel-kb","path":"/kb/guide/do-vercel-serverless-functions-support-websocket-connections","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/publish-and-subscribe-to-realtime-data-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/real-time-board-nextjs-fastapi","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/real-time-chat-websockets","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/real-time-presence-hono-react","via":"inbound"},{"site":"vercel-docs","path":"/docs/frameworks/backend","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/nitro","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/fundamentals","title":"Fundamental Concepts","summary":"Learn about the core concepts of Vercel","outbound":[{"site":"vercel-docs","path":"/docs/fundamentals/builds"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure"},{"site":"vercel-docs","path":"/docs/fundamentals/what-is-compute"}],"inbound":[{"site":"vercel-docs","path":"/docs/getting-started-with-vercel"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","distance":0.1977},{"site":"vercel-docs","path":"/docs/fundamentals/builds","distance":0.2139},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works","distance":0.2238},{"site":"vercel-docs","path":"/docs/products","distance":0.2288},{"site":"vercel-docs","path":"/docs/kms/concepts","distance":0.2336}],"related":[{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works","via":"neighbor"},{"site":"vercel-docs","path":"/docs/products","via":"neighbor"},{"site":"vercel-docs","path":"/docs/kms/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/fundamentals/builds","title":"Build System","summary":"Learn how Vercel transforms your source code into optimized assets ready to serve globally.","outbound":[{"site":"vercel-docs","path":"/docs/build-output-api"},{"site":"vercel-docs","path":"/docs/builds"},{"site":"vercel-docs","path":"/docs/builds/build-image"},{"site":"vercel-docs","path":"/docs/builds/build-queues"},{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/builds/managing-builds"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build"},{"site":"vercel-docs","path":"/docs/domains"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/headers"},{"site":"vercel-docs","path":"/docs/project-configuration"},{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-docs","path":"/docs/routing/redirects"},{"site":"vercel-docs","path":"/docs/routing/rewrites"}],"inbound":[{"site":"vercel-docs","path":"/docs/fundamentals"}],"requires":[{"site":"vercel-docs","path":"/docs/fundamentals"}],"neighbors":[{"site":"vercel-docs","path":"/docs/builds","distance":0.1271},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","distance":0.15},{"site":"vercel-docs","path":"/docs/deployments","distance":0.1951},{"site":"vercel-docs","path":"/docs/cli/build","distance":0.2035},{"site":"vercel-docs","path":"/docs/frameworks","distance":0.2061}],"related":[{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/build","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","title":"Request Lifecycle","summary":"Learn how Vercel routes, secures, and serves requests from your users to your application.","outbound":[{"site":"vercel-docs","path":"/docs/build-output-api"},{"site":"vercel-docs","path":"/docs/builds"},{"site":"vercel-docs","path":"/docs/caching/cache-control-headers"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/fundamentals/what-is-compute"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/routing/redirects"},{"site":"vercel-docs","path":"/docs/routing/rewrites"},{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf"}],"inbound":[{"site":"vercel-docs","path":"/docs/fundamentals"},{"site":"vercel-docs","path":"/docs/fundamentals/builds"}],"requires":[{"site":"vercel-docs","path":"/docs/fundamentals"}],"neighbors":[{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works","distance":0.1255},{"site":"vercel-docs","path":"/docs/fundamentals/builds","distance":0.15},{"site":"vercel-docs","path":"/docs/cdn","distance":0.1768},{"site":"vercel-docs","path":"/docs/fundamentals","distance":0.1977},{"site":"vercel-kb","path":"/kb/guide/debug-routing-on-vercel","distance":0.215}],"related":[{"site":"vercel-kb","path":"/kb/guide/debug-routing-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/hosting-backend-apis","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/builds","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/compliance","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/fundamentals/what-is-compute","title":"What is Compute?","summary":"Learn how compute works on Vercel with Fluid compute, and how it compares to traditional server and serverless models.","outbound":[{"site":"vercel-docs","path":"/docs/builds"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/advanced-configuration"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/fundamentals"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/efficiently-manage-database-connection-pools-with-fluid-compute"}],"requires":[{"site":"vercel-docs","path":"/docs/fundamentals"}],"neighbors":[{"site":"vercel-docs","path":"/docs/fluid-compute","distance":0.1264},{"site":"vercel-kb","path":"/kb/guide/vercel-services-fluid-compute","distance":0.1689},{"site":"vercel-docs","path":"/docs/functions","distance":0.1815},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out","distance":0.1928},{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel","distance":0.1976}],"related":[{"site":"vercel-kb","path":"/kb/guide/efficiently-manage-database-connection-pools-with-fluid-compute","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-services-fluid-compute","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/hosting-backend-apis","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit","via":"inbound"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","via":"inbound"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","title":"Getting Started","summary":"Install the Vercel CLI, add the Vercel Plugin or agent skills, and deploy your first project.","outbound":[{"site":"vercel-docs","path":"/docs/agent-resources"},{"site":"vercel-docs","path":"/docs/agent-resources/skills"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/install"},{"site":"vercel-docs","path":"/docs/cli/integration"},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/fundamentals"},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket"},{"site":"vercel-docs","path":"/docs/git/vercel-for-github"},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab"},{"site":"vercel-docs","path":"/docs/marketplace-storage"},{"site":"vercel-docs","path":"/docs/products"}],"inbound":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/incremental-migration"},{"site":"vercel-docs","path":"/docs/monorepos/nx"},{"site":"vercel-docs","path":"/docs/monorepos/turborepo"},{"site":"vercel-docs","path":"/docs/projects/managing-projects"},{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/deployments","distance":0.1523},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","distance":0.1546},{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","distance":0.1606},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","distance":0.1946},{"site":"vercel-docs","path":"/docs/agent-resources","distance":0.1988}],"related":[{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/builds","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploy","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/git","title":"Git Integrations","summary":"Vercel allows for automatic deployments on every branch push and merges onto the production branch of your GitHub, GitLab, and Bitbucket projects.","outbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/deployments/generated-urls"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/assign-domain-to-a-git-branch"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/git/vercel-for-azure-pipelines"},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket"},{"site":"vercel-docs","path":"/docs/git/vercel-for-github"},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-bitbucket-pipelines-with-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-github-actions-with-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-gitlab-pipelines-with-vercel"},{"site":"vercel-kb","path":"/kb/guide/using-vercel-cli-for-custom-workflows"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent/pr-review"},{"site":"vercel-docs","path":"/docs/analytics/quickstart"},{"site":"vercel-docs","path":"/docs/builds/build-features"},{"site":"vercel-docs","path":"/docs/cli/alias"},{"site":"vercel-docs","path":"/docs/cli/git"},{"site":"vercel-docs","path":"/docs/cli/link"},{"site":"vercel-docs","path":"/docs/comments/integrations"},{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/deployments/promoting-a-deployment"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-project-collaboration"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/assign-domain-to-a-git-branch"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting"},{"site":"vercel-docs","path":"/docs/drop"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/backend/hono"},{"site":"vercel-docs","path":"/docs/frameworks/backend/nitro"},{"site":"vercel-docs","path":"/docs/functions/container-images"},{"site":"vercel-docs","path":"/docs/fundamentals/builds"},{"site":"vercel-docs","path":"/docs/git/vercel-for-azure-pipelines"},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket"},{"site":"vercel-docs","path":"/docs/git/vercel-for-github"},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab"},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes"},{"site":"vercel-docs","path":"/docs/integrations/lovable"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends"},{"site":"vercel-docs","path":"/docs/monorepos"},{"site":"vercel-docs","path":"/docs/plans"},{"site":"vercel-docs","path":"/docs/project-configuration/git-settings"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/projects"},{"site":"vercel-docs","path":"/docs/projects/managing-projects"},{"site":"vercel-docs","path":"/docs/security/enterprise-managed-users-account-update"},{"site":"vercel-docs","path":"/docs/speed-insights/quickstart"},{"site":"vercel-kb","path":"/kb/guide/avoiding-duplicate-content-with-vercel-app-urls"},{"site":"vercel-kb","path":"/kb/guide/bolt-vercel-drop"},{"site":"vercel-kb","path":"/kb/guide/build-commission-free-ios-checkouts-with-vercel-and-paddle"},{"site":"vercel-kb","path":"/kb/guide/can-i-use-a-non-default-branch-for-production"},{"site":"vercel-kb","path":"/kb/guide/can-i-use-vercel-to-deploy-to-a-private-cloud"},{"site":"vercel-kb","path":"/kb/guide/claude-design"},{"site":"vercel-kb","path":"/kb/guide/google-stitch-vercel-drop"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-disable-git-notifications-from-deployments"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare"},{"site":"vercel-kb","path":"/kb/guide/vercel-drop-vs-cloudflare-direct-upload"},{"site":"vercel-kb","path":"/kb/guide/vercel-drop-vs-netlify-drop"},{"site":"vercel-kb","path":"/kb/guide/webflow-vercel-drop"},{"site":"vercel-kb","path":"/kb/guide/why-do-my-vercel-deployments-have-multiple-domains"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/deployments","distance":0.1488},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket","distance":0.1503},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","distance":0.154},{"site":"vercel-docs","path":"/docs/git/vercel-for-github","distance":0.17},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-gitlab-pipelines-with-vercel","distance":0.1714}],"related":[{"site":"vercel-kb","path":"/kb/guide/avoiding-duplicate-content-with-vercel-app-urls","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/bolt-vercel-drop","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/build-commission-free-ios-checkouts-with-vercel-and-paddle","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/can-i-use-a-non-default-branch-for-production","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/can-i-use-vercel-to-deploy-to-a-private-cloud","via":"inbound"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/git-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/git-configuration","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/git/vercel-for-azure-pipelines","title":"Azure DevOps","summary":"​Vercel for Azure DevOps allows you to deploy from Azure Pipelines to Vercel automatically.","outbound":[{"site":"vercel-docs","path":"/docs/cli/project"},{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/projects"},{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/git"}],"requires":[{"site":"vercel-docs","path":"/docs/git"}],"neighbors":[{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket","distance":0.2242},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","distance":0.2318},{"site":"vercel-docs","path":"/docs/git","distance":0.2426},{"site":"vercel-docs","path":"/docs/deployments","distance":0.2455},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-bitbucket-pipelines-with-vercel","distance":0.2598}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-bitbucket-pipelines-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-gitlab-pipelines-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-github","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/system-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket","title":"Bitbucket","summary":"​Vercel for Bitbucket automatically deploys your Bitbucket projects with Vercel, providing Preview Deployment URLs, and automatic Custom Domain updates.","outbound":[{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain"},{"site":"vercel-docs","path":"/docs/environment-variables/system-environment-variables"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/projects"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-bitbucket-pipelines-with-vercel"}],"inbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-disable-git-notifications-from-deployments"}],"requires":[{"site":"vercel-docs","path":"/docs/git"}],"neighbors":[{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","distance":0.0577},{"site":"vercel-docs","path":"/docs/git/vercel-for-github","distance":0.1179},{"site":"vercel-docs","path":"/docs/git","distance":0.1503},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-bitbucket-pipelines-with-vercel","distance":0.1656},{"site":"vercel-docs","path":"/docs/environment-variables/system-environment-variables","distance":0.1668}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-disable-git-notifications-from-deployments","via":"inbound"},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-gitlab-pipelines-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-github","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/git/vercel-for-github","title":"GitHub","summary":"Vercel for GitHub automatically deploys your GitHub projects with Vercel, providing Preview Deployment URLs, and automatic Custom Domain updates.","outbound":[{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain"},{"site":"vercel-docs","path":"/docs/environment-variables/system-environment-variables"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/oidc"},{"site":"vercel-docs","path":"/docs/project-configuration/git-configuration"},{"site":"vercel-docs","path":"/docs/projects"},{"site":"vercel-docs","path":"/docs/rbac/managing-team-members"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-run-end-to-end-tests-after-my-vercel-preview-deployment"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-github-actions-with-vercel"}],"inbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/comments/integrations"},{"site":"vercel-docs","path":"/docs/deployment-checks"},{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/project-configuration/git-configuration"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-disable-git-notifications-from-deployments"},{"site":"vercel-kb","path":"/kb/guide/migrate-containers-from-aws-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/unable-to-find-github-repository"},{"site":"vercel-kb","path":"/kb/guide/vercel-agent-code-review"}],"requires":[{"site":"vercel-docs","path":"/docs/git"}],"neighbors":[{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","distance":0.1141},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket","distance":0.1179},{"site":"vercel-docs","path":"/docs/git","distance":0.17},{"site":"vercel-docs","path":"/docs/project-configuration/git-configuration","distance":0.2063},{"site":"vercel-kb","path":"/kb/guide/why-aren-t-commits-triggering-deployments-on-vercel","distance":0.2141}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-disable-git-notifications-from-deployments","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/migrate-containers-from-aws-to-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/unable-to-find-github-repository","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-agent-code-review","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/why-aren-t-commits-triggering-deployments-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/git-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-checks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments/integrations","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","title":"GitLab","summary":"​Vercel for GitLab automatically deploys your GitLab projects with Vercel, providing Preview Deployment URLs, and automatic Custom Domain updates.","outbound":[{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain"},{"site":"vercel-docs","path":"/docs/environment-variables/system-environment-variables"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/projects"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-gitlab-pipelines-with-vercel"}],"inbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-disable-git-notifications-from-deployments"}],"requires":[{"site":"vercel-docs","path":"/docs/git"}],"neighbors":[{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket","distance":0.0577},{"site":"vercel-docs","path":"/docs/git/vercel-for-github","distance":0.1141},{"site":"vercel-docs","path":"/docs/git","distance":0.154},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-gitlab-pipelines-with-vercel","distance":0.1552},{"site":"vercel-docs","path":"/docs/environment-variables/system-environment-variables","distance":0.1632}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-disable-git-notifications-from-deployments","via":"inbound"},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-bitbucket-pipelines-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-github","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/git-settings","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/global-config","title":"Global Config","summary":"A Global Config is a global data store that enables experimentation with feature flags, A/B testing, critical redirects, and more.","outbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/global-config/get-started"},{"site":"vercel-docs","path":"/docs/global-config/global-config-dashboard"},{"site":"vercel-docs","path":"/docs/global-config/global-config-limits"},{"site":"vercel-docs","path":"/docs/global-config/global-config-sdk"},{"site":"vercel-docs","path":"/docs/global-config/using-global-config"},{"site":"vercel-docs","path":"/docs/global-config/vercel-api"},{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/speed-insights/metrics"}],"inbound":[{"site":"flags-sdk","path":"/docs/providers/hypertune"},{"site":"vercel-docs","path":"/docs/audit-log"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/global-config"},{"site":"vercel-docs","path":"/docs/flags/marketplace"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/global-config/global-config-dashboard"},{"site":"vercel-docs","path":"/docs/global-config/global-config-limits"},{"site":"vercel-docs","path":"/docs/global-config/global-config-sdk"},{"site":"vercel-docs","path":"/docs/global-config/using-global-config"},{"site":"vercel-docs","path":"/docs/global-config/vercel-api"},{"site":"vercel-docs","path":"/docs/incremental-migration"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-flows"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/submit-integration"},{"site":"vercel-docs","path":"/docs/marketplace-storage"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/quickstart"},{"site":"vercel-docs","path":"/docs/projects/transferring-projects"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/routing/redirects"},{"site":"vercel-docs","path":"/docs/storage"},{"site":"vercel-kb","path":"/kb/guide/blue_green_deployments_on_vercel"},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/deploy-php-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/docker-compose-concepts-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/dot-net-asp-net-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/dynamic-redirects-with-global-config-and-next-js-proxy"},{"site":"vercel-kb","path":"/kb/guide/hipaa-compliance-guide-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-increase-the-limit-of-redirects-or-use-dynamic-redirects-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-integrate-optimizely-feature-experimentation-next-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime"},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-next.js-sitecore-jss"},{"site":"vercel-kb","path":"/kb/guide/implementing_canary_deployments_on_vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-an-astro-app-from-webflow-cloud-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare"},{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-cloudflare"},{"site":"vercel-kb","path":"/kb/guide/nextjs-on-vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/penetration-testing-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/publish-and-subscribe-to-realtime-data-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/tanstack-start-on-vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/global-config/using-global-config","distance":0.1128},{"site":"vercel-docs","path":"/docs/global-config/global-config-limits","distance":0.1317},{"site":"vercel-docs","path":"/docs/global-config/get-started","distance":0.1739},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations","distance":0.1751},{"site":"vercel-docs","path":"/docs/global-config/global-config-dashboard","distance":0.1932}],"related":[{"site":"flags-sdk","path":"/docs/providers/hypertune","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/blue_green_deployments_on_vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/deploy-php-on-vercel-with-docker","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/docker-compose-concepts-on-vercel","via":"inbound"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/audit-log","via":"inbound"},{"site":"vercel-docs","path":"/docs/flags/marketplace","via":"inbound"},{"site":"vercel-docs","path":"/docs/incremental-migration","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/global-config/get-started","title":"Getting Started","summary":"Learn how to create a Global Config store and read from it in your project.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/global-config/global-config-dashboard"},{"site":"vercel-docs","path":"/docs/global-config/global-config-limits"},{"site":"vercel-docs","path":"/docs/global-config/global-config-sdk"},{"site":"vercel-docs","path":"/docs/global-config/using-global-config"},{"site":"vercel-docs","path":"/docs/global-config/vercel-api"},{"site":"vercel-docs","path":"/docs/projects"},{"site":"vercel-docs","path":"/docs/routing-middleware"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides/redirecting"},{"site":"nextjs","path":"/docs/pages/guides/redirecting"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/devcycle-global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/launchdarkly-global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/split-global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/statsig-global-config"},{"site":"vercel-docs","path":"/docs/global-config/migration-guide"},{"site":"vercel-docs","path":"/docs/storage"}],"requires":[{"site":"vercel-docs","path":"/docs/global-config"}],"neighbors":[{"site":"vercel-docs","path":"/docs/global-config/global-config-dashboard","distance":0.1298},{"site":"vercel-docs","path":"/docs/global-config/using-global-config","distance":0.1543},{"site":"vercel-docs","path":"/docs/global-config","distance":0.1739},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/launchdarkly-global-config","distance":0.1818},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/devcycle-global-config","distance":0.1913}],"related":[{"site":"nextjs","path":"/docs/app/guides/redirecting","via":"inbound"},{"site":"nextjs","path":"/docs/pages/guides/redirecting","via":"inbound"},{"site":"flags-sdk","path":"/docs/providers/global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/launchdarkly-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/devcycle-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/statsig-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/storage","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/global-config/global-config-dashboard","title":"Global Configs & Dashboard","summary":"Learn how to create, view and update your Global Configs and the data inside them in your Vercel Dashboard at the Hobby team, team, and project levels.","outbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/cli/env"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-limits"},{"site":"vercel-docs","path":"/docs/global-config/using-global-config"},{"site":"vercel-docs","path":"/docs/projects"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli/global-config"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/global-config/get-started"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/devcycle-global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/launchdarkly-global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/split-global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/statsig-global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-limits"},{"site":"vercel-docs","path":"/docs/global-config/global-config-sdk"},{"site":"vercel-docs","path":"/docs/global-config/using-global-config"},{"site":"vercel-docs","path":"/docs/incremental-migration"},{"site":"vercel-docs","path":"/docs/notifications"}],"requires":[{"site":"vercel-docs","path":"/docs/global-config"}],"neighbors":[{"site":"vercel-docs","path":"/docs/global-config/get-started","distance":0.1298},{"site":"vercel-docs","path":"/docs/global-config/using-global-config","distance":0.1329},{"site":"vercel-docs","path":"/docs/cli/global-config","distance":0.1708},{"site":"vercel-docs","path":"/docs/global-config/global-config-limits","distance":0.1737},{"site":"vercel-docs","path":"/docs/global-config/vercel-api","distance":0.1854}],"related":[{"site":"vercel-docs","path":"/docs/global-config/get-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config/vercel-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/launchdarkly-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations","title":"Integrations","summary":"Learn how to use Global Config with popular A/B testing and feature flag service integrations.","outbound":[{"site":"vercel-docs","path":"/docs/global-config/get-started"},{"site":"vercel-docs","path":"/docs/global-config/global-config-dashboard"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/devcycle-global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/launchdarkly-global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/split-global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/statsig-global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-limits"},{"site":"vercel-docs","path":"/docs/global-config/global-config-sdk"},{"site":"vercel-docs","path":"/docs/global-config/vercel-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/global-config/global-config-limits"}],"requires":[{"site":"vercel-docs","path":"/docs/global-config"}],"neighbors":[{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/launchdarkly-global-config","distance":0.122},{"site":"vercel-docs","path":"/docs/global-config","distance":0.1751},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/statsig-global-config","distance":0.1781},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/devcycle-global-config","distance":0.1976},{"site":"vercel-docs","path":"/docs/global-config/using-global-config","distance":0.2148}],"related":[{"site":"flags-sdk","path":"/docs/providers/global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config/using-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-the-data-of-a-user-provided-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-configs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/push-data-into-a-user-provided-global-config","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/devcycle-global-config","title":"DevCycle","summary":"Learn how to use Global Config with Vercel's DevCycle integration.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/global-config/get-started"},{"site":"vercel-docs","path":"/docs/global-config/global-config-dashboard"},{"site":"vercel-docs","path":"/docs/global-config/global-config-limits"},{"site":"vercel-docs","path":"/docs/global-config/global-config-sdk"},{"site":"vercel-docs","path":"/docs/projects"}],"inbound":[{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations"}],"requires":[{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations"}],"neighbors":[{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/launchdarkly-global-config","distance":0.1567},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/statsig-global-config","distance":0.1654},{"site":"vercel-docs","path":"/docs/global-config/get-started","distance":0.1913},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations","distance":0.1976},{"site":"vercel-docs","path":"/docs/global-config","distance":0.2125}],"related":[{"site":"flags-sdk","path":"/docs/providers/global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/launchdarkly-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/statsig-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config/using-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config/vercel-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config/migration-guide","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/launchdarkly-global-config","title":"LaunchDarkly","summary":"Learn how to use Global Config with Vercel's LaunchDarkly integration.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/global-config/get-started"},{"site":"vercel-docs","path":"/docs/global-config/global-config-dashboard"},{"site":"vercel-docs","path":"/docs/global-config/global-config-limits"},{"site":"vercel-docs","path":"/docs/global-config/global-config-sdk"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/projects"}],"inbound":[{"site":"vercel-docs","path":"/docs/flags/marketplace"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations"}],"requires":[{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations"}],"neighbors":[{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations","distance":0.122},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/devcycle-global-config","distance":0.1567},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/statsig-global-config","distance":0.1653},{"site":"vercel-docs","path":"/docs/global-config/get-started","distance":0.1818},{"site":"vercel-docs","path":"/docs/global-config","distance":0.2126}],"related":[{"site":"flags-sdk","path":"/docs/providers/global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/devcycle-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/statsig-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config/using-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/global-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config/vercel-api","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/split-global-config","title":"Split","summary":"Learn how to use Global Config with Vercel's Split integration.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/global-config/get-started"},{"site":"vercel-docs","path":"/docs/global-config/global-config-dashboard"},{"site":"vercel-docs","path":"/docs/global-config/global-config-limits"},{"site":"vercel-docs","path":"/docs/global-config/global-config-sdk"},{"site":"vercel-docs","path":"/docs/projects"}],"inbound":[{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations"}],"requires":[{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations"}],"neighbors":[{"site":"vercel-docs","path":"/docs/analytics/package","distance":0.3728},{"site":"vercel-docs","path":"/docs/routing-middleware/api","distance":0.3922},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend","distance":0.3925},{"site":"vercel-docs","path":"/docs/global-config/global-config-sdk","distance":0.3971},{"site":"vercel-docs","path":"/docs/analytics/redacting-sensitive-data","distance":0.3983}],"related":[{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/run-claude-managed-agent-tools-with-vercel-sandbox","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/package","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing-middleware/api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/devcycle-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/client-upload","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/statsig-global-config","title":"Statsig","summary":"Learn how to use Global Config with Vercel's Statsig integration.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/global-config/get-started"},{"site":"vercel-docs","path":"/docs/global-config/global-config-dashboard"},{"site":"vercel-docs","path":"/docs/global-config/global-config-limits"},{"site":"vercel-docs","path":"/docs/global-config/global-config-sdk"},{"site":"vercel-docs","path":"/docs/global-config/using-global-config"},{"site":"vercel-docs","path":"/docs/projects"},{"site":"vercel-docs","path":"/docs/routing-middleware"}],"inbound":[{"site":"vercel-docs","path":"/docs/flags/marketplace"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations"}],"requires":[{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations"}],"neighbors":[{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/launchdarkly-global-config","distance":0.1653},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/devcycle-global-config","distance":0.1654},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations","distance":0.1781},{"site":"vercel-docs","path":"/docs/global-config/get-started","distance":0.1973},{"site":"vercel-docs","path":"/docs/global-config","distance":0.211}],"related":[{"site":"flags-sdk","path":"/docs/providers/global-config","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/statsig","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/launchdarkly-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/devcycle-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config/vercel-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/marketplace","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/global-config/global-config-limits","title":"Limits & Pricing","summary":"Learn about the Global Configs limits and pricing based on account plans.","outbound":[{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-dashboard"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations"},{"site":"vercel-docs","path":"/docs/global-config/global-config-sdk"},{"site":"vercel-docs","path":"/docs/global-config/using-global-config"},{"site":"vercel-docs","path":"/docs/global-config/vercel-api"},{"site":"vercel-docs","path":"/docs/notifications"}],"inbound":[{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/global-config/get-started"},{"site":"vercel-docs","path":"/docs/global-config/global-config-dashboard"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/devcycle-global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/launchdarkly-global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/split-global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/statsig-global-config"},{"site":"vercel-docs","path":"/docs/global-config/migration-guide"},{"site":"vercel-docs","path":"/docs/global-config/using-global-config"},{"site":"vercel-docs","path":"/docs/incremental-migration"},{"site":"vercel-docs","path":"/docs/limits/fair-use-guidelines"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage"},{"site":"vercel-docs","path":"/docs/storage"},{"site":"vercel-kb","path":"/kb/guide/dynamic-redirects-with-global-config-and-next-js-proxy"}],"requires":[{"site":"vercel-docs","path":"/docs/global-config"}],"neighbors":[{"site":"vercel-docs","path":"/docs/global-config/using-global-config","distance":0.1292},{"site":"vercel-docs","path":"/docs/global-config","distance":0.1317},{"site":"vercel-docs","path":"/docs/global-config/global-config-dashboard","distance":0.1737},{"site":"vercel-docs","path":"/docs/global-config/migration-guide","distance":0.1965},{"site":"vercel-docs","path":"/docs/global-config/global-config-sdk","distance":0.2026}],"related":[{"site":"vercel-kb","path":"/kb/guide/dynamic-redirects-with-global-config-and-next-js-proxy","via":"inbound"},{"site":"vercel-docs","path":"/docs/global-config/migration-guide","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config/get-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/devcycle-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/statsig-global-config","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/global-config/global-config-sdk","title":"Global Config SDK","summary":"The Global Config client SDK is the most ergonomic way to read data from Global Configs. Learn how to set up the SDK so you can start reading Global Configs.","outbound":[{"site":"vercel-docs","path":"/docs/functions/runtimes/edge"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-dashboard"},{"site":"vercel-docs","path":"/docs/global-config/using-global-config"},{"site":"vercel-docs","path":"/docs/global-config/vercel-api"},{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/global-config/get-started"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/devcycle-global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/launchdarkly-global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/split-global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/statsig-global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-limits"},{"site":"vercel-docs","path":"/docs/global-config/migration-guide"},{"site":"vercel-docs","path":"/docs/global-config/using-global-config"},{"site":"vercel-docs","path":"/docs/global-config/vercel-api"},{"site":"vercel-kb","path":"/kb/guide/dynamic-redirects-with-global-config-and-next-js-proxy"}],"requires":[{"site":"vercel-docs","path":"/docs/global-config"}],"neighbors":[{"site":"vercel-docs","path":"/docs/global-config/vercel-api","distance":0.1433},{"site":"vercel-docs","path":"/docs/global-config/using-global-config","distance":0.1523},{"site":"vercel-docs","path":"/docs/global-config/global-config-limits","distance":0.2026},{"site":"vercel-docs","path":"/docs/global-config","distance":0.2135},{"site":"vercel-docs","path":"/docs/global-config/get-started","distance":0.2136}],"related":[{"site":"vercel-kb","path":"/kb/guide/dynamic-redirects-with-global-config-and-next-js-proxy","via":"inbound"},{"site":"vercel-docs","path":"/docs/global-config/global-config-limits","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config/get-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/devcycle-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/statsig-global-config","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/global-config/migration-guide","title":"Migration Guide","summary":"Learn what changed when Edge Config was renamed to Global Config, and how to migrate your connection strings, SDK, and environment variables.","outbound":[{"site":"vercel-docs","path":"/docs/cli/global-config"},{"site":"vercel-docs","path":"/docs/global-config/get-started"},{"site":"vercel-docs","path":"/docs/global-config/global-config-limits"},{"site":"vercel-docs","path":"/docs/global-config/global-config-sdk"},{"site":"vercel-docs","path":"/docs/global-config/using-global-config"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/blue_green_deployments_on_vercel"},{"site":"vercel-kb","path":"/kb/guide/dynamic-redirects-with-global-config-and-next-js-proxy"},{"site":"vercel-kb","path":"/kb/guide/implementing_canary_deployments_on_vercel"}],"requires":[{"site":"vercel-docs","path":"/docs/global-config"}],"neighbors":[{"site":"vercel-docs","path":"/docs/global-config/global-config-limits","distance":0.1965},{"site":"vercel-docs","path":"/docs/global-config","distance":0.1967},{"site":"vercel-docs","path":"/docs/cli/global-config","distance":0.2319},{"site":"vercel-docs","path":"/docs/global-config/global-config-dashboard","distance":0.232},{"site":"vercel-docs","path":"/docs/global-config/using-global-config","distance":0.2397}],"related":[{"site":"vercel-kb","path":"/kb/guide/blue_green_deployments_on_vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/dynamic-redirects-with-global-config-and-next-js-proxy","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/implementing_canary_deployments_on_vercel","via":"inbound"},{"site":"vercel-docs","path":"/docs/global-config/global-config-dashboard","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/update-a-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/devcycle-global-config","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/global-config/using-global-config","title":"Using Global Config","summary":"Learn how to use Global Configs in your projects.","outbound":[{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/cli/env"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-dashboard"},{"site":"vercel-docs","path":"/docs/global-config/global-config-limits"},{"site":"vercel-docs","path":"/docs/global-config/global-config-sdk"},{"site":"vercel-docs","path":"/docs/global-config/vercel-api"},{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/global-config/get-started"},{"site":"vercel-docs","path":"/docs/global-config/global-config-dashboard"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/statsig-global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-limits"},{"site":"vercel-docs","path":"/docs/global-config/global-config-sdk"},{"site":"vercel-docs","path":"/docs/global-config/migration-guide"},{"site":"vercel-docs","path":"/docs/global-config/vercel-api"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/plans/hobby"}],"requires":[{"site":"vercel-docs","path":"/docs/global-config"}],"neighbors":[{"site":"vercel-docs","path":"/docs/global-config","distance":0.1128},{"site":"vercel-docs","path":"/docs/global-config/vercel-api","distance":0.1241},{"site":"vercel-docs","path":"/docs/global-config/global-config-limits","distance":0.1292},{"site":"vercel-docs","path":"/docs/global-config/global-config-dashboard","distance":0.1329},{"site":"vercel-docs","path":"/docs/global-config/global-config-sdk","distance":0.1523}],"related":[{"site":"vercel-docs","path":"/docs/global-config/get-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-configs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/launchdarkly-global-config","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/global-config/vercel-api","title":"Global Configs & REST API","summary":"Learn how to use the Vercel REST API to create and update Global Configs. You can also read data stored in Global Configs with the Vercel REST API.","outbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-sdk"},{"site":"vercel-docs","path":"/docs/global-config/using-global-config"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/vercel-api-integrations"},{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/global-config/get-started"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations"},{"site":"vercel-docs","path":"/docs/global-config/global-config-limits"},{"site":"vercel-docs","path":"/docs/global-config/global-config-sdk"},{"site":"vercel-docs","path":"/docs/global-config/using-global-config"},{"site":"vercel-kb","path":"/kb/guide/dynamic-redirects-with-global-config-and-next-js-proxy"}],"requires":[{"site":"vercel-docs","path":"/docs/global-config"}],"neighbors":[{"site":"vercel-docs","path":"/docs/global-config/using-global-config","distance":0.1241},{"site":"vercel-docs","path":"/docs/global-config/global-config-sdk","distance":0.1433},{"site":"vercel-docs","path":"/docs/global-config/global-config-dashboard","distance":0.1854},{"site":"vercel-docs","path":"/docs/cli/global-config","distance":0.1914},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-items","distance":0.2041}],"related":[{"site":"vercel-kb","path":"/kb/guide/dynamic-redirects-with-global-config-and-next-js-proxy","via":"inbound"},{"site":"vercel-docs","path":"/docs/global-config/global-config-dashboard","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-items","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-configs","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/glossary","title":"Glossary","summary":"Learn about the terms and concepts used in Vercel's products and documentation.","outbound":[{"site":"vercel-docs","path":"/docs/activity-log"},{"site":"vercel-docs","path":"/docs/agent"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-sdk"},{"site":"vercel-docs","path":"/docs/alerts"},{"site":"vercel-docs","path":"/docs/audit-log"},{"site":"vercel-docs","path":"/docs/bot-management"},{"site":"vercel-docs","path":"/docs/botid"},{"site":"vercel-docs","path":"/docs/build-output-api"},{"site":"vercel-docs","path":"/docs/builds"},{"site":"vercel-docs","path":"/docs/caching"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/checks"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/comments"},{"site":"vercel-docs","path":"/docs/custom-error-pages"},{"site":"vercel-docs","path":"/docs/deployment-checks"},{"site":"vercel-docs","path":"/docs/deployment-retention"},{"site":"vercel-docs","path":"/docs/directory-sync"},{"site":"vercel-docs","path":"/docs/domains"},{"site":"vercel-docs","path":"/docs/draft-mode"},{"site":"vercel-docs","path":"/docs/drains/reference/audit-logs"},{"site":"vercel-docs","path":"/docs/edit-mode"},{"site":"vercel-docs","path":"/docs/flags"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/headers"},{"site":"vercel-docs","path":"/docs/instant-rollback"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/logs"},{"site":"vercel-docs","path":"/docs/marketplace-storage"},{"site":"vercel-docs","path":"/docs/notebooks"},{"site":"vercel-docs","path":"/docs/notifications"},{"site":"vercel-docs","path":"/docs/og-image-generation"},{"site":"vercel-docs","path":"/docs/package-managers"},{"site":"vercel-docs","path":"/docs/plans"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/project-configuration"},{"site":"vercel-docs","path":"/docs/protected-git-scopes"},{"site":"vercel-docs","path":"/docs/query"},{"site":"vercel-docs","path":"/docs/queues"},{"site":"vercel-docs","path":"/docs/rbac"},{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-docs","path":"/docs/rolling-releases"},{"site":"vercel-docs","path":"/docs/routing"},{"site":"vercel-docs","path":"/docs/routing/rewrites"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/firewall"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes"},{"site":"vercel-docs","path":"/docs/services"},{"site":"vercel-docs","path":"/docs/skew-protection"},{"site":"vercel-docs","path":"/docs/spend-management"},{"site":"vercel-docs","path":"/docs/tracing"},{"site":"vercel-docs","path":"/docs/two-factor-authentication"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"},{"site":"vercel-docs","path":"/docs/webhooks"},{"site":"vercel-docs","path":"/docs/workflows"}],"inbound":[{"site":"turborepo","path":"/docs"},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository"},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository"},{"site":"turborepo","path":"/docs/guides/single-package-workspaces"},{"site":"turborepo","path":"/docs/messages/recursive-turbo-invocations"},{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/firewall"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/observability/insights","distance":0.2664},{"site":"vercel-docs","path":"/docs/functions/runtimes","distance":0.2668},{"site":"vercel-docs","path":"/docs/security/compliance","distance":0.28},{"site":"vercel-docs","path":"/docs/cli","distance":0.2823},{"site":"vercel-docs","path":"/docs/audit-log","distance":0.2825}],"related":[{"site":"turborepo","path":"/docs","via":"inbound"},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","via":"inbound"},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","via":"inbound"},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","via":"inbound"},{"site":"turborepo","path":"/docs/messages/recursive-turbo-invocations","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/hosting-backend-apis","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability/insights","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/compliance","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/headers","title":"System Headers","summary":"This reference covers the list of request, response, cache-control, and custom response headers included with deployments with Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/caching/cache-control-headers"},{"site":"vercel-docs","path":"/docs/headers/request-headers"},{"site":"vercel-docs","path":"/docs/headers/response-headers"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works/compression"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-kb","path":"/kb/guide/set-cache-control-headers"}],"inbound":[{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/frameworks/backend/express"},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi"},{"site":"vercel-docs","path":"/docs/frameworks/backend/flask"},{"site":"vercel-docs","path":"/docs/frameworks/backend/hono"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/astro"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing"},{"site":"vercel-docs","path":"/docs/fundamentals/builds"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/headers/response-headers"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare"},{"site":"vercel-kb","path":"/kb/guide/set-cache-control-headers"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-flask-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-h3-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-hono-app-on-vercel"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/headers/response-headers","distance":0.1598},{"site":"vercel-docs","path":"/docs/caching/cache-control-headers","distance":0.2288},{"site":"vercel-kb","path":"/kb/guide/set-cache-control-headers","distance":0.2695},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","distance":0.3237},{"site":"vercel-docs","path":"/docs/fundamentals","distance":0.3269}],"related":[{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ship-a-flask-app-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ship-a-h3-app-on-vercel","via":"inbound"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/headers/request-headers","title":"Request Headers","summary":"Learn about the request headers sent to each Vercel deployment and how to use them to process requests before sending a response.","outbound":[{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/drains/security"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/webhooks"},{"site":"vercel-docs","path":"/docs/webhooks/webhooks-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/cli/webhooks"},{"site":"vercel-docs","path":"/docs/custom-error-pages"},{"site":"vercel-docs","path":"/docs/drains/security"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/headers"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/spend-management"},{"site":"vercel-docs","path":"/docs/webhooks"},{"site":"vercel-docs","path":"/docs/webhooks/webhooks-api"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall"}],"requires":[{"site":"vercel-docs","path":"/docs/headers"}],"neighbors":[{"site":"vercel-docs","path":"/docs/routing-middleware/api","distance":0.3017},{"site":"vercel-docs","path":"/docs/caching/cdn-cache","distance":0.3376},{"site":"vercel-kb","path":"/kb/guide/geo-ip-headers-geolocation-vercel-functions","distance":0.343},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts","distance":0.3604},{"site":"vercel-docs","path":"/docs/headers/response-headers","distance":0.3629}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/geo-ip-headers-geolocation-vercel-functions","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing-middleware/api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/headers/response-headers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/framework-environment-variables","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/headers/response-headers","title":"Response Headers","summary":"Learn about the response headers sent to each Vercel deployment and how to use them to process responses before sending a response.","outbound":[{"site":"vercel-docs","path":"/docs/caching/cache-control-headers"},{"site":"vercel-docs","path":"/docs/caching/cache-status"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/deployments/promoting-a-deployment"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/assign-domain-to-a-git-branch"},{"site":"vercel-docs","path":"/docs/headers"},{"site":"vercel-docs","path":"/docs/logs/runtime"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/regions"}],"inbound":[{"site":"vercel-docs","path":"/docs/caching/cache-status"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/cdn-security"},{"site":"vercel-docs","path":"/docs/headers"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/request-collapsing"},{"site":"vercel-kb","path":"/kb/guide/are-vercel-preview-deployment-indexed-by-search-engines"},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-revalidation-costs"}],"requires":[{"site":"vercel-docs","path":"/docs/headers"}],"neighbors":[{"site":"vercel-docs","path":"/docs/headers","distance":0.1598},{"site":"vercel-docs","path":"/docs/caching/cache-control-headers","distance":0.1956},{"site":"vercel-docs","path":"/docs/caching/cache-status","distance":0.2284},{"site":"vercel-kb","path":"/kb/guide/set-cache-control-headers","distance":0.2609},{"site":"vercel-kb","path":"/kb/guide/how-to-configure-the-cache-control-response-header-in-vercel-projects","distance":0.2866}],"related":[{"site":"vercel-kb","path":"/kb/guide/are-vercel-preview-deployment-indexed-by-search-engines","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-revalidation-costs","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/set-cache-control-headers","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-configure-the-cache-control-response-header-in-vercel-projects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security/encryption","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works","title":"How Vercel CDN works","summary":"Learn how Vercel's CDN processes requests through routing, caching, and compute layers to deliver your content with low latency.","outbound":[{"site":"vercel-docs","path":"/docs/bot-management"},{"site":"vercel-docs","path":"/docs/caching/cache-control-headers"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/cdn-security"},{"site":"vercel-docs","path":"/docs/cdn-security/security-headers"},{"site":"vercel-docs","path":"/docs/cli/dev"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"},{"site":"vercel-docs","path":"/docs/headers"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works/compression"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/request-collapsing"},{"site":"vercel-docs","path":"/docs/microfrontends"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/rolling-releases"},{"site":"vercel-docs","path":"/docs/routing/redirects"},{"site":"vercel-docs","path":"/docs/routing/rewrites"},{"site":"vercel-docs","path":"/docs/skew-protection"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf"}],"inbound":[{"site":"vercel-docs","path":"/docs/cdn"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/cdn","distance":0.085},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","distance":0.1255},{"site":"vercel-docs","path":"/docs/caching","distance":0.164},{"site":"vercel-docs","path":"/docs/cdn-security","distance":0.1698},{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","distance":0.175}],"related":[{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/builds","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works/compression","title":"Compression","summary":"Vercel helps reduce data transfer and improve performance by supporting both Gzip and Brotli compression","outbound":[{"site":"vercel-docs","path":"/docs/image-optimization"}],"inbound":[{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/headers"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works"}],"requires":[{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works"}],"neighbors":[{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works","distance":0.2478},{"site":"vercel-docs","path":"/docs/cdn","distance":0.2484},{"site":"vercel-docs","path":"/docs/cdn-security","distance":0.2696},{"site":"vercel-docs","path":"/docs/image-optimization","distance":0.2947},{"site":"vercel-docs","path":"/docs/cdn-security/encryption","distance":0.2971}],"related":[{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/best-practices-for-hosting-videos-on-vercel-nextjs-mp4-gif","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security/encryption","via":"neighbor"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/image-optimization","title":"Image Optimization","summary":"Transform and optimize images to improve page load performance.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/image"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/pages/api-reference/components/image"},{"site":"vercel-docs","path":"/docs/build-output-api/configuration"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/cli/blob"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments"},{"site":"vercel-docs","path":"/docs/headers"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/image-optimization/managing-image-optimization-costs"},{"site":"vercel-docs","path":"/docs/image-optimization/quickstart"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-blob/using-blob-sdk"}],"inbound":[{"site":"nextjs","path":"/docs/pages/api-reference/components/image-legacy"},{"site":"vercel-docs","path":"/docs/build-output-api/configuration"},{"site":"vercel-docs","path":"/docs/caching"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/frontend"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/astro"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nuxt"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit"},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works/compression"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/request-collapsing"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/observability/insights"},{"site":"vercel-docs","path":"/docs/plans"},{"site":"vercel-docs","path":"/docs/production-checklist"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts"},{"site":"vercel-docs","path":"/docs/vercel-blob/using-blob-sdk"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-reduce-my-build-time-with-next-js-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime"},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-next.js-sitecore-jss"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-an-astro-app-from-webflow-cloud-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-render"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/image-optimization/quickstart","distance":0.1093},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing","distance":0.1558},{"site":"vercel-docs","path":"/docs/image-optimization/managing-image-optimization-costs","distance":0.1622},{"site":"vercel-docs","path":"/docs/image-optimization/legacy-pricing","distance":0.1704},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-next.js-sitecore-jss","distance":0.2573}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/components/image-legacy","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-reduce-my-build-time-with-next-js-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-next.js-sitecore-jss","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","via":"inbound"},{"site":"nextjs","path":"/docs/pages/getting-started/images","via":"neighbor"},{"site":"vercel-docs","path":"/docs/og-image-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nuxt","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching","via":"inbound"},{"site":"vercel-docs","path":"/docs/frameworks","via":"inbound"},{"site":"vercel-docs","path":"/docs/frameworks/frontend","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/image-optimization/legacy-pricing","title":"Legacy Pricing","summary":"This page outlines information on the pricing and limits for the source images-based legacy option.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/image"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/image-optimization/managing-image-optimization-costs"},{"site":"vercel-docs","path":"/docs/limits/fair-use-guidelines"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/trials"},{"site":"vercel-docs","path":"/docs/spend-management"}],"inbound":[{"site":"vercel-docs","path":"/docs/image-optimization/managing-image-optimization-costs"}],"requires":[{"site":"vercel-docs","path":"/docs/image-optimization"}],"neighbors":[{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing","distance":0.0563},{"site":"vercel-docs","path":"/docs/image-optimization/managing-image-optimization-costs","distance":0.1437},{"site":"vercel-docs","path":"/docs/image-optimization","distance":0.1704},{"site":"vercel-docs","path":"/docs/limits/fair-use-guidelines","distance":0.2183},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","distance":0.2247}],"related":[{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/image-optimization/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing","title":"Limits and Pricing","summary":"This page outlines information on the limits that are applicable when using Image Optimization, and the costs they can incur.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/image"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/image-optimization/managing-image-optimization-costs"},{"site":"vercel-docs","path":"/docs/limits/fair-use-guidelines"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"},{"site":"vercel-docs","path":"/docs/spend-management"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli/blob"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/image-optimization/quickstart"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/limits/fair-use-guidelines"},{"site":"vercel-docs","path":"/docs/plans/hobby"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/trials"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/arn1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/bom1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cdg1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cle1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cpt1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dxb1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/fra1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/gru1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hkg1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hnd1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/iad1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/icn1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/kix1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/lhr1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/pdx1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sin1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/syd1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/yul1"},{"site":"vercel-docs","path":"/docs/vercel-blob/using-blob-sdk"}],"requires":[{"site":"vercel-docs","path":"/docs/image-optimization"}],"neighbors":[{"site":"vercel-docs","path":"/docs/image-optimization/legacy-pricing","distance":0.0563},{"site":"vercel-docs","path":"/docs/image-optimization/managing-image-optimization-costs","distance":0.1285},{"site":"vercel-docs","path":"/docs/image-optimization","distance":0.1558},{"site":"vercel-docs","path":"/docs/limits/fair-use-guidelines","distance":0.1923},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","distance":0.2276}],"related":[{"site":"vercel-docs","path":"/docs/image-optimization/legacy-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/image-optimization/quickstart","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/image-optimization/managing-image-optimization-costs","title":"Managing Usage & Costs","summary":"Learn how to measure and manage Image Optimization usage with this guide to avoid any unexpected costs.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/image"},{"site":"vercel-docs","path":"/docs/image-optimization/legacy-pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/image-optimization/legacy-pricing"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/image-optimization/quickstart"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage"},{"site":"vercel-docs","path":"/docs/production-checklist"}],"requires":[{"site":"vercel-docs","path":"/docs/image-optimization"}],"neighbors":[{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing","distance":0.1285},{"site":"vercel-docs","path":"/docs/image-optimization/legacy-pricing","distance":0.1437},{"site":"vercel-docs","path":"/docs/image-optimization","distance":0.1622},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","distance":0.2131},{"site":"vercel-docs","path":"/docs/speed-insights/managing-usage","distance":0.2341}],"related":[{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-revalidation-costs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/managing-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/image-optimization/quickstart","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/image-optimization/quickstart","title":"Getting Started","summary":"Learn how you can leverage Vercel Image Optimization in your projects.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/image"},{"site":"nextjs","path":"/docs/app/getting-started/images"},{"site":"nextjs","path":"/docs/pages/api-reference/components/image"},{"site":"vercel-docs","path":"/docs/build-output-api/configuration"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/image-optimization/managing-image-optimization-costs"}],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/frontend/astro"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nuxt"},{"site":"vercel-docs","path":"/docs/image-optimization"}],"requires":[{"site":"vercel-docs","path":"/docs/image-optimization"}],"neighbors":[{"site":"vercel-docs","path":"/docs/image-optimization","distance":0.1093},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nuxt","distance":0.2109},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-next.js-sitecore-jss","distance":0.2209},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","distance":0.2269},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nuxt","distance":0.2506}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-next.js-sitecore-jss","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nuxt","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/images","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nuxt","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/incremental-migration","title":"Incremental Migration","summary":"Learn how to migrate your app or website to Vercel with minimal risk and high impact.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/basePath"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/rewrites"},{"site":"nextjs","path":"/docs/app/guides/redirecting"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-dashboard"},{"site":"vercel-docs","path":"/docs/global-config/global-config-limits"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/routing/rewrites"},{"site":"vercel-kb","path":"/kb/guide/ab-testing-on-vercel"}],"inbound":[{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes"},{"site":"vercel-kb","path":"/kb/guide/vercel-reverse-proxy-rewrites-external"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/incremental-migrations-with-microfrontends","distance":0.1703},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime","distance":0.1721},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","distance":0.2112},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-netlify","distance":0.22},{"site":"vercel-docs","path":"/docs/routing/redirects","distance":0.2254}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-reverse-proxy-rewrites-external","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/incremental-migrations-with-microfrontends","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-netlify","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration","title":"Incremental Static Regeneration","summary":"ISR serves cached static pages while regenerating content in the background. Vercel\\\\","outbound":[{"site":"vercel-docs","path":"/docs/build-output-api/primitives"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/astro"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nuxt"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/quickstart"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/request-collapsing"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/query/monitoring"},{"site":"vercel-docs","path":"/docs/routing/rewrites"}],"inbound":[{"site":"vercel-docs","path":"/docs/build-output-api/primitives"},{"site":"vercel-docs","path":"/docs/caching"},{"site":"vercel-docs","path":"/docs/caching/cache-status"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/draft-mode"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/backend/nitro"},{"site":"vercel-docs","path":"/docs/frameworks/frontend"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/astro"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nuxt"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/vite-with-nitro"},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-sdk-python"},{"site":"vercel-docs","path":"/docs/functions/logs"},{"site":"vercel-docs","path":"/docs/functions/runtimes/bun"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/quickstart"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/request-collapsing"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/logs/runtime"},{"site":"vercel-docs","path":"/docs/observability/insights"},{"site":"vercel-docs","path":"/docs/partial-prerendering"},{"site":"vercel-docs","path":"/docs/pricing/how-does-vercel-calculate-usage-of-resources"},{"site":"vercel-docs","path":"/docs/pricing/legacy"},{"site":"vercel-docs","path":"/docs/production-checklist"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts"},{"site":"vercel-docs","path":"/docs/query/monitoring/monitoring-reference"},{"site":"vercel-docs","path":"/docs/storage"},{"site":"vercel-kb","path":"/kb/guide/astro-on-vercel-vs-webflow-cloud"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-nitro-starter-template"},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-shopify-storefront-with-vercel"},{"site":"vercel-kb","path":"/kb/guide/hosting-backend-apis"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-reduce-my-build-time-with-next-js-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime"},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-revalidation-costs"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-an-astro-app-from-webflow-cloud-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-cloudflare"},{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-webflow-cloud"},{"site":"vercel-kb","path":"/kb/guide/nextjs-on-vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/set-cache-control-headers"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-build-error-build-step-did-not-complete-within-45-minutes"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-render"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud"},{"site":"vercel-kb","path":"/kb/guide/what-should-i-do-if-i-receive-a-503-error-on-vercel"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/quickstart","distance":0.0882},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-revalidation-costs","distance":0.1418},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing","distance":0.1747},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration","distance":0.1965},{"site":"nextjs","path":"/docs/pages/guides/incremental-static-regeneration","distance":0.2168}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-revalidation-costs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/astro-on-vercel-vs-webflow-cloud","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-nitro-starter-template","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-shopify-storefront-with-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/hosting-backend-apis","via":"inbound"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","via":"neighbor"},{"site":"vercel-docs","path":"/docs/partial-prerendering","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/cache-status","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing","title":"Usage & Pricing","summary":"Learn about ISR costs, usage metrics, and strategies to optimize your ISR reads and writes.","outbound":[{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/quickstart"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-revalidation-costs"}],"inbound":[{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/quickstart"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/partial-prerendering"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/arn1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/bom1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cdg1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cle1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cpt1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dxb1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/fra1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/gru1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hkg1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hnd1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/iad1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/icn1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/kix1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/lhr1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/pdx1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sin1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/syd1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/yul1"},{"site":"vercel-docs","path":"/docs/query/reference"},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-revalidation-costs"},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-writes"}],"requires":[{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"}],"neighbors":[{"site":"vercel-docs","path":"/docs/incremental-static-regeneration","distance":0.1747},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-revalidation-costs","distance":0.1787},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/quickstart","distance":0.1803},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","distance":0.2617},{"site":"vercel-docs","path":"/docs/pricing","distance":0.3136}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-writes","via":"inbound"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/how-does-vercel-calculate-usage-of-resources","via":"neighbor"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/limits-and-pricing","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/quickstart","title":"Getting Started","summary":"Learn how to set up Incremental Static Regeneration \\(ISR\\) with time-based and on-demand revalidation.","outbound":[{"site":"vercel-docs","path":"/docs/build-output-api"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/frameworks/backend/nitro"},{"site":"vercel-docs","path":"/docs/functions/logs"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/production-checklist"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-reduce-my-build-time-with-next-js-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/update-mega-nav-min-reval"}],"requires":[{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"}],"neighbors":[{"site":"vercel-docs","path":"/docs/incremental-static-regeneration","distance":0.0882},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-revalidation-costs","distance":0.1213},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration","distance":0.17},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing","distance":0.1803},{"site":"nextjs","path":"/docs/pages/guides/incremental-static-regeneration","distance":0.1973}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-revalidation-costs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-reduce-my-build-time-with-next-js-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/update-mega-nav-min-reval","via":"inbound"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/incremental-static-regeneration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-move-to-on-demand-revalidation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","via":"neighbor"},{"site":"vercel-docs","path":"/docs/partial-prerendering","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability/insights","via":"neighbor"},{"site":"vercel-docs","path":"/docs/build-output-api/features","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/vite-with-nitro","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/request-collapsing","title":"Request Collapsing","summary":"Learn how Vercel's CDN shields your origin during traffic surges for uncached routes.","outbound":[{"site":"vercel-docs","path":"/docs/caching/cache-control-headers"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/headers/response-headers"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"}],"inbound":[{"site":"vercel-docs","path":"/docs/caching"},{"site":"vercel-docs","path":"/docs/caching/cache-status"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/partial-prerendering"},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-revalidation-costs"}],"requires":[{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"}],"neighbors":[{"site":"vercel-docs","path":"/docs/caching","distance":0.2643},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works","distance":0.3041},{"site":"vercel-docs","path":"/docs/cdn","distance":0.345},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works/compression","distance":0.3554},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","distance":0.3578}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-revalidation-costs","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching","via":"neighbor"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn","via":"neighbor"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works/compression","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/instant-rollback","title":"Instant Rollback","summary":"Learn how to perform an Instant Rollback on your production deployments and quickly roll back to a previously deployed production deployment.","outbound":[{"site":"vercel-docs","path":"/docs/cli/promote"},{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/deployments/promoting-a-deployment"},{"site":"vercel-docs","path":"/docs/rbac/access-groups"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"},{"site":"vercel-docs","path":"/docs/rbac/access-roles/extended-permissions"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli/rollback"},{"site":"vercel-docs","path":"/docs/cron-jobs/manage-cron-jobs"},{"site":"vercel-docs","path":"/docs/deployments/promoting-a-deployment"},{"site":"vercel-docs","path":"/docs/deployments/rollback-production-deployment"},{"site":"vercel-docs","path":"/docs/frameworks/backend"},{"site":"vercel-docs","path":"/docs/frameworks/backend/elysia"},{"site":"vercel-docs","path":"/docs/frameworks/backend/express"},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastify"},{"site":"vercel-docs","path":"/docs/frameworks/backend/koa"},{"site":"vercel-docs","path":"/docs/frameworks/backend/nestjs"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel"},{"site":"vercel-docs","path":"/docs/microfrontends/routing"},{"site":"vercel-docs","path":"/docs/production-checklist"},{"site":"vercel-docs","path":"/docs/rolling-releases"},{"site":"vercel-kb","path":"/kb/guide/black-friday-preparation"},{"site":"vercel-kb","path":"/kb/guide/detect-memory-and-oom-failures-in-serverless-functions"},{"site":"vercel-kb","path":"/kb/guide/how-to-gradually-roll-out-new-versions-of-your-backend"},{"site":"vercel-kb","path":"/kb/guide/mcp-server-chatgpt-connector"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-koa-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nestjs-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/rollback","distance":0.1459},{"site":"vercel-docs","path":"/docs/deployments/rollback-production-deployment","distance":0.1482},{"site":"vercel-docs","path":"/docs/deployments/promoting-a-deployment","distance":0.1812},{"site":"vercel-docs","path":"/docs/rolling-releases/rolling-release-deployment","distance":0.2217},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments","distance":0.2307}],"related":[{"site":"vercel-kb","path":"/kb/guide/black-friday-preparation","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/detect-memory-and-oom-failures-in-serverless-functions","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-gradually-roll-out-new-versions-of-your-backend","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/mcp-server-chatgpt-connector","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel","via":"inbound"},{"site":"vercel-docs","path":"/docs/cli/rollback","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/rollback-production-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rolling-releases/rolling-release-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-retention","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/integrations","title":"Overview","summary":"Learn how to extend Vercel's capabilities by integrating with your preferred providers for AI, databases, headless content, commerce, and more.","outbound":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-provider"},{"site":"vercel-docs","path":"/docs/cli/integration"},{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/integrations/cms/contentful"},{"site":"vercel-docs","path":"/docs/integrations/cms/sanity"},{"site":"vercel-docs","path":"/docs/integrations/cms/sitecore"},{"site":"vercel-docs","path":"/docs/integrations/create-integration"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/native-integration"},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/add-a-connectable-account"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/product-integration"},{"site":"vercel-docs","path":"/docs/integrations/lovable"},{"site":"vercel-docs","path":"/docs/storage"},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-shopify-storefront-with-vercel"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-agents"},{"site":"vercel-docs","path":"/docs/audit-log"},{"site":"vercel-docs","path":"/docs/checks"},{"site":"vercel-docs","path":"/docs/cli/integration"},{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/deployments/deployment-policy"},{"site":"vercel-docs","path":"/docs/drains/using-drains"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/environment-variables/rotating-secrets"},{"site":"vercel-docs","path":"/docs/integrations/create-integration"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/native-integration"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/submit-integration"},{"site":"vercel-docs","path":"/docs/marketplace-storage"},{"site":"vercel-docs","path":"/docs/notifications"},{"site":"vercel-docs","path":"/docs/products"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"},{"site":"vercel-docs","path":"/docs/projects/transferring-projects"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"},{"site":"vercel-docs","path":"/docs/webhooks"},{"site":"vercel-kb","path":"/kb/guide/vercel-connect"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/install-an-integration","distance":0.1134},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/product-integration","distance":0.161},{"site":"vercel-docs","path":"/docs/integrations/create-integration/native-integration","distance":0.1721},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/vercel","distance":0.1762},{"site":"vercel-docs","path":"/docs/integrations/ecommerce","distance":0.1888}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-connect","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","via":"neighbor"},{"site":"vercel-docs","path":"/docs/marketplace-storage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-agents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/deepinfra","via":"neighbor"},{"site":"vercel-docs","path":"/docs/audit-log","via":"inbound"},{"site":"vercel-docs","path":"/docs/checks","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/integrations/cms","title":"CMS Integrations","summary":"Learn how to integrate Vercel with CMS platforms, including Contentful, Sanity, and Sitecore XM Cloud.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/env"},{"site":"vercel-docs","path":"/docs/draft-mode"},{"site":"vercel-docs","path":"/docs/edit-mode"},{"site":"vercel-docs","path":"/docs/integrations/cms/agility-cms"},{"site":"vercel-docs","path":"/docs/integrations/cms/butter-cms"},{"site":"vercel-docs","path":"/docs/integrations/cms/contentful"},{"site":"vercel-docs","path":"/docs/integrations/cms/dato-cms"},{"site":"vercel-docs","path":"/docs/integrations/cms/formspree"},{"site":"vercel-docs","path":"/docs/integrations/cms/makeswift"},{"site":"vercel-docs","path":"/docs/integrations/cms/sanity"},{"site":"vercel-docs","path":"/docs/integrations/cms/sitecore"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"}],"inbound":[{"site":"vercel-docs","path":"/docs/edit-mode"}],"requires":[{"site":"vercel-docs","path":"/docs/integrations"}],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/cms/agility-cms","distance":0.1793},{"site":"vercel-docs","path":"/docs/integrations/cms/sanity","distance":0.1796},{"site":"vercel-docs","path":"/docs/integrations/cms/dato-cms","distance":0.1867},{"site":"vercel-docs","path":"/docs/integrations","distance":0.19},{"site":"vercel-docs","path":"/docs/integrations/cms/butter-cms","distance":0.2034}],"related":[{"site":"vercel-kb","path":"/kb/guide/using-a-headless-cms-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/ecommerce","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/vercel","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/integrations/cms/agility-cms","title":"Agility CMS","summary":"Learn how to integrate Agility CMS with Vercel. Follow our tutorial to deploy the Agility CMS template or install the integration for flexible and scalable content management.","outbound":[{"site":"vercel-docs","path":"/docs/cli"}],"inbound":[{"site":"vercel-docs","path":"/docs/integrations/cms"}],"requires":[{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/cms"}],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/cms","distance":0.1793},{"site":"vercel-docs","path":"/docs/integrations/cms/dato-cms","distance":0.1816},{"site":"vercel-docs","path":"/docs/integrations/cms/butter-cms","distance":0.1818},{"site":"vercel-docs","path":"/docs/integrations/cms/sanity","distance":0.2103},{"site":"vercel-docs","path":"/docs/integrations/cms/makeswift","distance":0.2137}],"related":[{"site":"vercel-kb","path":"/kb/guide/using-a-headless-cms-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/integrate-vercel-and-contentstack","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/dato-cms","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/butter-cms","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/sanity","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/makeswift","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/formspree","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/integrations/cms/butter-cms","title":"ButterCMS","summary":"Learn how to integrate ButterCMS with Vercel. Follow our tutorial to set up the ButterCMS template on Vercel and manage content seamlessly using ButterCMS API.","outbound":[{"site":"vercel-docs","path":"/docs/cli"}],"inbound":[{"site":"vercel-docs","path":"/docs/integrations/cms"}],"requires":[{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/cms"}],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/cms/dato-cms","distance":0.1796},{"site":"vercel-docs","path":"/docs/integrations/cms/agility-cms","distance":0.1818},{"site":"vercel-docs","path":"/docs/integrations/cms","distance":0.2034},{"site":"vercel-docs","path":"/docs/integrations/cms/makeswift","distance":0.2288},{"site":"vercel-docs","path":"/docs/integrations/cms/formspree","distance":0.2538}],"related":[{"site":"vercel-kb","path":"/kb/guide/using-a-headless-cms-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/integrate-vercel-and-contentstack","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/dato-cms","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/agility-cms","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/makeswift","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/formspree","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/sanity","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/integrations/cms/contentful","title":"Contentful","summary":"Integrate Vercel with Contentful to deploy your content.","outbound":[{"site":"vercel-docs","path":"/docs/vercel-toolbar"}],"inbound":[{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/cms"}],"requires":[{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/cms"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/integrating-next-js-and-contentful-for-your-headless-cms","distance":0.1636},{"site":"vercel-docs","path":"/docs/integrations/cms/sitecore","distance":0.1848},{"site":"vercel-kb","path":"/kb/guide/integrate-vercel-and-contentstack","distance":0.188},{"site":"vercel-docs","path":"/docs/integrations/cms","distance":0.2085},{"site":"vercel-docs","path":"/docs/integrations/cms/sanity","distance":0.2323}],"related":[{"site":"vercel-kb","path":"/kb/guide/integrating-next-js-and-contentful-for-your-headless-cms","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/integrate-vercel-and-contentstack","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-bigcommerce-storefront-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/set-up-and-use-deploy-hooks-with-vercel-and-headless-cms","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/sitecore","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/sanity","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/dato-cms","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/edit-mode","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/integrations/cms/dato-cms","title":"DatoCMS","summary":"Learn how to integrate DatoCMS with Vercel. Follow our step-by-step tutorial to set up and manage your digital content seamlessly using DatoCMS API.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"}],"inbound":[{"site":"vercel-docs","path":"/docs/integrations/cms"}],"requires":[{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/cms"}],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/cms/butter-cms","distance":0.1796},{"site":"vercel-docs","path":"/docs/integrations/cms/agility-cms","distance":0.1816},{"site":"vercel-docs","path":"/docs/integrations/cms","distance":0.1867},{"site":"vercel-docs","path":"/docs/integrations/cms/sanity","distance":0.2207},{"site":"vercel-docs","path":"/docs/integrations/cms/contentful","distance":0.2363}],"related":[{"site":"vercel-kb","path":"/kb/guide/using-a-headless-cms-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-docusaurus-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/integrate-vercel-and-contentstack","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/butter-cms","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/agility-cms","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/sanity","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/contentful","via":"neighbor"},{"site":"vercel-docs","path":"/docs/edit-mode","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/integrations/cms/formspree","title":"Formspree","summary":"Learn how to integrate Formspree with Vercel. Follow our tutorial to set up Formspree and manage form submissions on your static website without needing a server.","outbound":[{"site":"vercel-docs","path":"/docs/cli"}],"inbound":[{"site":"vercel-docs","path":"/docs/integrations/cms"}],"requires":[{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/cms"}],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/cms/agility-cms","distance":0.244},{"site":"vercel-docs","path":"/docs/integrations/cms/butter-cms","distance":0.2538},{"site":"vercel-docs","path":"/docs/integrations/cms/makeswift","distance":0.2581},{"site":"vercel-docs","path":"/docs/integrations/cms","distance":0.2747},{"site":"vercel-docs","path":"/docs/integrations/cms/dato-cms","distance":0.2796}],"related":[{"site":"vercel-kb","path":"/kb/guide/deploying-react-forms-using-formspree-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/agility-cms","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/butter-cms","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/makeswift","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/dato-cms","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/sanity","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/integrations/cms/makeswift","title":"Makeswift","summary":"Learn how to integrate Makeswift with Vercel. Makeswift is a no-code website builder designed for creating and managing React websites. Follow our tutorial to set up Makeswift and deploy your website on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/cli"}],"inbound":[{"site":"vercel-docs","path":"/docs/integrations/cms"}],"requires":[{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/cms"}],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/cms/agility-cms","distance":0.2137},{"site":"vercel-docs","path":"/docs/integrations/cms/butter-cms","distance":0.2288},{"site":"vercel-docs","path":"/docs/integrations/cms","distance":0.2527},{"site":"vercel-docs","path":"/docs/integrations/cms/formspree","distance":0.2581},{"site":"vercel-docs","path":"/docs/integrations/cms/dato-cms","distance":0.2583}],"related":[{"site":"vercel-kb","path":"/kb/guide/deploy-headless-bigcommerce-storefront-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/integrate-vercel-and-contentstack","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/agility-cms","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/butter-cms","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/formspree","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/dato-cms","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/integrations/cms/sanity","title":"Sanity","summary":"Learn how to integrate Sanity with Vercel. Follow our tutorial to deploy the Sanity template or install the integration for real-time collaboration and structured content management.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"}],"inbound":[{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/cms"}],"requires":[{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/cms"}],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/cms","distance":0.1796},{"site":"vercel-docs","path":"/docs/integrations/cms/agility-cms","distance":0.2103},{"site":"vercel-docs","path":"/docs/integrations/cms/dato-cms","distance":0.2207},{"site":"vercel-docs","path":"/docs/integrations/cms/contentful","distance":0.2323},{"site":"vercel-docs","path":"/docs/edit-mode","distance":0.2546}],"related":[{"site":"vercel-kb","path":"/kb/guide/using-a-headless-cms-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/integrate-vercel-and-contentstack","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/agility-cms","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/integrating-next-js-and-contentful-for-your-headless-cms","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/dato-cms","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/contentful","via":"neighbor"},{"site":"vercel-docs","path":"/docs/edit-mode","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/butter-cms","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/integrations/cms/sitecore","title":"Sitecore","summary":"Integrate Vercel with Sitecore XM Cloud to deploy your content.","outbound":[{"site":"vercel-docs","path":"/docs/deployment-protection"}],"inbound":[{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/cms"}],"requires":[{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/cms"}],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/cms/contentful","distance":0.1848},{"site":"vercel-kb","path":"/kb/guide/integrate-vercel-and-contentstack","distance":0.1856},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-shopify-storefront-with-vercel","distance":0.2285},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","distance":0.2383},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-next.js-sitecore-jss","distance":0.2399}],"related":[{"site":"vercel-kb","path":"/kb/guide/integrate-vercel-and-contentstack","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-shopify-storefront-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-next.js-sitecore-jss","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/integrating-next-js-and-contentful-for-your-headless-cms","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/contentful","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/integrations/create-integration","title":"Create an Integration","summary":"Learn how to create and manage your own integration for internal or public use with Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/approval-checklist"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-flows"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-product"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/submit-integration"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/upgrade-integration"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/vercel-api-integrations"},{"site":"vercel-docs","path":"/docs/webhooks/webhooks-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-agents"},{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/approval-checklist"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-product"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/native-integration"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/submit-integration"},{"site":"vercel-docs","path":"/docs/webhooks"}],"requires":[{"site":"vercel-docs","path":"/docs/integrations"}],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/product-integration","distance":0.1668},{"site":"vercel-docs","path":"/docs/integrations/create-integration/approval-checklist","distance":0.1682},{"site":"vercel-docs","path":"/docs/integrations/create-integration/native-integration","distance":0.173},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-product","distance":0.185},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration","distance":0.1942}],"related":[{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/product-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/manage-integrations-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-agents","via":"inbound"},{"site":"vercel-docs","path":"/docs/webhooks","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/integrations/create-integration/approval-checklist","title":"Integration Approval Checklist","summary":"Review this checklist before submitting your native or connectable account integration for approval on the Vercel Marketplace.","outbound":[{"site":"vercel-docs","path":"/docs/integrations/create-integration"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/billing"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-product"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/native-integration"}],"inbound":[{"site":"vercel-docs","path":"/docs/integrations/create-integration"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-product"}],"requires":[{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/create-integration"}],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/create-integration","distance":0.1682},{"site":"vercel-docs","path":"/docs/integrations/create-integration/submit-integration","distance":0.1696},{"site":"vercel-docs","path":"/docs/integrations/create-integration/native-integration","distance":0.1978},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration","distance":0.2173},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/product-integration","distance":0.2235}],"related":[{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/submit-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/product-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/partner","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/vercel","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/integrations/create-integration/billing","title":"Billing and Refunds","summary":"Learn how billing works for native integrations, including invoice lifecycle, pricing models, and refunds.","outbound":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/partner"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/vercel"}],"inbound":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/approval-checklist"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/manage-integrations-reference"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/product-integration"}],"requires":[{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/create-integration"}],"neighbors":[{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice","distance":0.2134},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-invoice","distance":0.2202},{"site":"vercel-docs","path":"/docs/plans/enterprise/billing","distance":0.2256},{"site":"vercel-docs","path":"/docs/plans/pro-plan/billing","distance":0.2411},{"site":"vercel-docs","path":"/docs/integrations/create-integration/native-integration","distance":0.2429}],"related":[{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-invoice","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans/enterprise/billing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/billing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/native-integration","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/integrations/create-integration/deployment-integration-action","title":"Deployment integration actions","summary":"These actions allow integration providers to set up automated tasks with Vercel deployments.","outbound":[{"site":"vercel-docs","path":"/docs/checks"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-product"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/native-integration"},{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/update-deployment-integration-action"}],"inbound":[{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/product-integration"}],"requires":[{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/create-integration"}],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/deployments/update-deployment-integration-action","distance":0.2396},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/actions","distance":0.2659},{"site":"vercel-docs","path":"/docs/deployments","distance":0.2911},{"site":"vercel-docs","path":"/docs/webhooks/webhooks-api","distance":0.3049},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments","distance":0.3076}],"related":[{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/actions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/webhooks/webhooks-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/product-integration","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/integrations/create-integration/integration-image-guidelines","title":"Integration Image Guidelines","summary":"Guidelines for creating images for integrations, including layout, content, visual assets, descriptions, and design standards.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/submit-integration"}],"requires":[{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/create-integration"}],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/approval-checklist","distance":0.3302},{"site":"vercel-docs","path":"/docs/integrations","distance":0.3604},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation","distance":0.3624},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-product","distance":0.3695},{"site":"vercel-docs","path":"/docs/integrations/cms","distance":0.3717}],"related":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/approval-checklist","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-product","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/native-integration","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api","title":"Using Integrations API","summary":"Learn how to authenticate and use the Integrations REST API to build your integration server.","outbound":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/billing"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/partner"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/vercel"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-flows"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/native-integration"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/secrets-rotation"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/submit-integration"},{"site":"vercel-docs","path":"/docs/webhooks"},{"site":"vercel-docs","path":"/docs/webhooks/webhooks-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/integrations/create-integration"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/approval-checklist"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/billing"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-flows"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-product"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/native-integration"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/submit-integration"},{"site":"vercel-docs","path":"/docs/rest-api/authentication/sso-token-exchange"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-invoice"},{"site":"vercel-docs","path":"/docs/webhooks"}],"requires":[{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/create-integration"}],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/submit-integration","distance":0.3101},{"site":"vercel-docs","path":"/docs/integrations/create-integration/native-integration","distance":0.3176},{"site":"vercel-docs","path":"/docs/cli/integration","distance":0.3182},{"site":"vercel-docs","path":"/docs/integrations/create-integration/vercel-api-integrations","distance":0.3356},{"site":"vercel-docs","path":"/docs/audit-log","distance":0.3425}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/vercel-api-integrations","via":"neighbor"},{"site":"vercel-docs","path":"/docs/audit-log","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/product-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-resource-secrets","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/partner","title":"Marketplace Partner API","summary":"Learn about marketplace partner api on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/vercel"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/native-integration"}],"inbound":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/billing"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/vercel"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/vercel","distance":0.0674},{"site":"vercel-docs","path":"/docs/integrations/create-integration/native-integration","distance":0.2018},{"site":"vercel-docs","path":"/docs/integrations","distance":0.2053},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resource","distance":0.2131},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration","distance":0.2206}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resource","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resources","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/submit-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-invoice","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/vercel","title":"Marketplace Vercel API","summary":"Learn about marketplace vercel api on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/partner"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/native-integration"}],"inbound":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/billing"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/partner"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/partner","distance":0.0674},{"site":"vercel-docs","path":"/docs/integrations","distance":0.1762},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resource","distance":0.2058},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration","distance":0.2059},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resources","distance":0.2069}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resource","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resources","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-account-information","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/import-resource","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-flows","title":"Native Integration Flows","summary":"Learn how information flows between the integration user, Vercel, and the integration provider for Vercel native integrations.","outbound":[{"site":"vercel-docs","path":"/docs/deployments/claim-deployments"},{"site":"vercel-docs","path":"/docs/flags"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-product"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/submit-integration"}],"inbound":[{"site":"vercel-docs","path":"/docs/deployments/claim-deployments"},{"site":"vercel-docs","path":"/docs/integrations/create-integration"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-product"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/native-integration"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/submit-integration"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/import-resource"}],"requires":[{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/create-integration"}],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/native-integration","distance":0.2028},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/transferring-an-integration","distance":0.2228},{"site":"vercel-docs","path":"/docs/deployments/claim-deployments","distance":0.239},{"site":"vercel-docs","path":"/docs/integrations/create-integration/submit-integration","distance":0.2466},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/product-integration","distance":0.2502}],"related":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/native-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/transferring-an-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/product-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/approval-checklist","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/partner","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-product","title":"Create a Native Integration","summary":"Learn how to create a product for your Vercel native integration","outbound":[{"site":"vercel-docs","path":"/docs/integrations/create-integration"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/approval-checklist"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-flows"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-agents"},{"site":"vercel-docs","path":"/docs/checks"},{"site":"vercel-docs","path":"/docs/integrations/create-integration"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/approval-checklist"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/deployment-integration-action"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-flows"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/native-integration"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/submit-integration"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/upgrade-integration"}],"requires":[{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/create-integration"}],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/product-integration","distance":0.14},{"site":"vercel-docs","path":"/docs/integrations/create-integration/native-integration","distance":0.1532},{"site":"vercel-docs","path":"/docs/integrations/create-integration","distance":0.185},{"site":"vercel-docs","path":"/docs/integrations","distance":0.1993},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration","distance":0.2114}],"related":[{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/product-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/native-integration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/marketplace-storage","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/integrations/create-integration/native-integration","title":"Native integration concepts","summary":"As an integration provider, understanding how your service interacts with Vercel's platform will help you create and optimize your integration.","outbound":[{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/create-integration"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-flows"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-product"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/submit-integration"}],"inbound":[{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/approval-checklist"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/deployment-integration-action"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/partner"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/vercel"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/secrets-rotation"}],"requires":[{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/create-integration"}],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/product-integration","distance":0.0983},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-product","distance":0.1532},{"site":"vercel-docs","path":"/docs/integrations","distance":0.1721},{"site":"vercel-docs","path":"/docs/integrations/create-integration","distance":0.173},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration","distance":0.1955}],"related":[{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/product-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/approval-checklist","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/partner","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/vercel","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/integrations/create-integration/secrets-rotation","title":"Secrets Rotation","summary":"Learn how to implement secrets rotation in your integration to allow users to rotate credentials securely.","outbound":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/native-integration"}],"inbound":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api"}],"requires":[{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/create-integration"}],"neighbors":[{"site":"vercel-docs","path":"/docs/environment-variables/rotating-secrets","distance":0.1753},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/rotate-installation-credential","distance":0.2326},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-supabase-integration","distance":0.2569},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-hypertune-integration","distance":0.2711},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-clerk-integration","distance":0.2803}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-supabase-integration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-hypertune-integration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-clerk-integration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-upstash-integration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secret-for-your-redis-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/rotating-secrets","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/rotate-installation-credential","via":"neighbor"},{"site":"vercel-docs","path":"/docs/kms/concepts/key-rotation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-resource-secrets","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-flows","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/integrations/create-integration/submit-integration","title":"Requirements for listing an Integration","summary":"Learn about all the requirements and guidelines needed when creating your Integration.","outbound":[{"site":"vercel-docs","path":"/docs/checks"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/create-integration"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/integration-image-guidelines"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-flows"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-product"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/vercel-api-integrations"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/manage-integrations-reference"},{"site":"vercel-docs","path":"/docs/security/shared-responsibility"},{"site":"vercel-docs","path":"/docs/webhooks"},{"site":"vercel-docs","path":"/docs/webhooks/webhooks-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/checks"},{"site":"vercel-docs","path":"/docs/integrations/create-integration"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-flows"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/native-integration"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/upgrade-integration"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/vercel-api-integrations"},{"site":"vercel-docs","path":"/docs/rest-api/authentication/sso-token-exchange"}],"requires":[{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/create-integration"}],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/approval-checklist","distance":0.1696},{"site":"vercel-docs","path":"/docs/integrations/create-integration","distance":0.1978},{"site":"vercel-docs","path":"/docs/integrations/create-integration/native-integration","distance":0.2154},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/partner","distance":0.2317},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/product-integration","distance":0.2417}],"related":[{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/approval-checklist","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/native-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/partner","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/product-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/integrations/create-integration/upgrade-integration","title":"Upgrade an Integration","summary":"Lean more about when you may need to upgrade your Integration.","outbound":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-product"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/submit-integration"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-one-or-more-environment-variables"}],"inbound":[{"site":"vercel-docs","path":"/docs/integrations/create-integration"}],"requires":[{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/create-integration"}],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/vercel-api-integrations","distance":0.2213},{"site":"vercel-docs","path":"/docs/integrations/create-integration/approval-checklist","distance":0.249},{"site":"vercel-docs","path":"/docs/integrations/create-integration/submit-integration","distance":0.2538},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-installation","distance":0.2641},{"site":"vercel-docs","path":"/docs/integrations/create-integration","distance":0.2657}],"related":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/vercel-api-integrations","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/approval-checklist","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-installation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/manage-integrations-reference","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/integrations/create-integration/vercel-api-integrations","title":"Building Integrations with Vercel REST API","summary":"Learn how to use Vercel REST API to build your integrations and work with redirect URLs.","outbound":[{"site":"vercel-docs","path":"/docs/drains/reference/logs"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/submit-integration"},{"site":"vercel-docs","path":"/docs/project-configuration"},{"site":"vercel-docs","path":"/docs/projects"},{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-one-or-more-environment-variables"},{"site":"vercel-kb","path":"/kb/guide/how-to-enable-cors"}],"inbound":[{"site":"vercel-docs","path":"/docs/checks/creating-checks"},{"site":"vercel-docs","path":"/docs/global-config/vercel-api"},{"site":"vercel-docs","path":"/docs/integrations/create-integration"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/submit-integration"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/manage-integrations-reference"},{"site":"vercel-docs","path":"/docs/notifications"}],"requires":[{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/create-integration"}],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/manage-integrations-reference","distance":0.1979},{"site":"vercel-docs","path":"/docs/integrations/create-integration/upgrade-integration","distance":0.2213},{"site":"vercel-docs","path":"/docs/rest-api/integrations/retrieve-an-integration-configuration","distance":0.229},{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team","distance":0.2298},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/product-integration","distance":0.2371}],"related":[{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/manage-integrations-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/upgrade-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/retrieve-an-integration-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/product-integration","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/integrations/ecommerce","title":"Commerce and Payments","summary":"Learn how to integrate Vercel with payment processors and ecommerce platforms, including Stripe, Shopify, BigCommerce, and more.","outbound":[{"site":"vercel-docs","path":"/docs/integrations/ecommerce/stripe"},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-shopify-storefront-with-vercel"}],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/integrations"}],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/ecommerce/stripe","distance":0.1568},{"site":"vercel-docs","path":"/docs/integrations","distance":0.1888},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration","distance":0.2463},{"site":"vercel-kb","path":"/kb/guide/how-to-deploy-a-next-js-online-store-with-stripe","distance":0.2485},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/vercel","distance":0.2505}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-deploy-a-next-js-online-store-with-stripe","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/getting-started-with-nextjs-typescript-stripe","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-bigcommerce-storefront-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms","via":"neighbor"},{"site":"vercel-docs","path":"/docs/marketplace-storage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/agility-cms","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/integrations/ecommerce/stripe","title":"Stripe","summary":"Connect your Stripe account to Vercel and accept payments in your applications.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/integrations/ecommerce"}],"requires":[{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/ecommerce"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-deploy-a-next-js-online-store-with-stripe","distance":0.1092},{"site":"vercel-docs","path":"/docs/integrations/ecommerce","distance":0.1568},{"site":"vercel-kb","path":"/kb/guide/getting-started-with-nextjs-typescript-stripe","distance":0.2048},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration","distance":0.2642},{"site":"vercel-docs","path":"/docs/integrations","distance":0.268}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-deploy-a-next-js-online-store-with-stripe","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/getting-started-with-nextjs-typescript-stripe","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-crystallize-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-commission-free-ios-checkouts-with-vercel-and-paddle","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/product-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/marketplace-storage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes","title":"Kubernetes","summary":"Deploy your frontend on Vercel alongside your existing Kubernetes infrastructure.","outbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/comments"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/deployments/generated-urls"},{"site":"vercel-docs","path":"/docs/deployments/logs"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build"},{"site":"vercel-docs","path":"/docs/domains"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/flags"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/incremental-migration"},{"site":"vercel-docs","path":"/docs/instant-rollback"},{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/project-configuration"},{"site":"vercel-docs","path":"/docs/projects"},{"site":"vercel-docs","path":"/docs/rbac"},{"site":"vercel-docs","path":"/docs/rbac/managing-team-members"},{"site":"vercel-docs","path":"/docs/saml"},{"site":"vercel-docs","path":"/docs/skew-protection"},{"site":"vercel-kb","path":"/kb/guide/ab-testing-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/blue_green_deployments_on_vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-allowlist-deployment-ip-address"},{"site":"vercel-kb","path":"/kb/guide/transferring-domains-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/zero-downtime-migration"}],"inbound":[{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-kb","path":"/kb/guide/vercel-kubernetes-support"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-kubernetes"}],"requires":[{"site":"vercel-docs","path":"/docs/integrations"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-vs-kubernetes","distance":0.1814},{"site":"vercel-kb","path":"/kb/guide/vercel-kubernetes-support","distance":0.2027},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-ruby-on-rails-applications","distance":0.2187},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","distance":0.2316},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","distance":0.2336}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-kubernetes-support","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-kubernetes","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-ruby-on-rails-applications","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/builds","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration","title":"Install an Integration","summary":"Learn how to pair Vercel's functionality with a third-party service to streamline observability, integrate with testing tools, connect to your CMS, and more.","outbound":[{"site":"vercel-docs","path":"/docs/cli/integration"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/billing"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/add-a-connectable-account"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/agent-tools"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/manage-integrations-reference"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/product-integration"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/secure-your-resource"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/transferring-an-integration"}],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/integrations"}],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations","distance":0.1134},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/product-integration","distance":0.1513},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/add-a-connectable-account","distance":0.1809},{"site":"vercel-docs","path":"/docs/integrations/create-integration","distance":0.1942},{"site":"vercel-docs","path":"/docs/integrations/create-integration/native-integration","distance":0.1955}],"related":[{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/native-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/install","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-product","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/add-a-connectable-account","title":"Add a Connectable Account","summary":"Learn how to connect Vercel to your third-party account.","outbound":[{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/manage-integrations-reference"}],"inbound":[{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/transferring-an-integration"}],"requires":[{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration"}],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/install-an-integration","distance":0.1809},{"site":"vercel-docs","path":"/docs/integrations","distance":0.2073},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/product-integration","distance":0.2805},{"site":"vercel-docs","path":"/docs/connect/concepts/connectors","distance":0.296},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/manage-integrations-reference","distance":0.2998}],"related":[{"site":"v0","path":"/docs/vercel-connect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/product-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/connectors","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/manage-from-dashboard","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/vercel","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/agent-tools","title":"Agent Tools","summary":"Use Agent Tools to query, debug, and manage your installed integrations through a chat interface with natural language.","outbound":[{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/product-integration"}],"inbound":[{"site":"vercel-docs","path":"/docs/integrations/install-an-integration"}],"requires":[{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration"}],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/install-an-integration","distance":0.2185},{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","distance":0.2189},{"site":"vercel-docs","path":"/docs/integrations","distance":0.2223},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-agents","distance":0.2373},{"site":"vercel-docs","path":"/docs/agent","distance":0.2502}],"related":[{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","via":"neighbor"},{"site":"v0","path":"/docs/MCP","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-agent","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-agents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent/installation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/marketplace-storage","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/manage-integrations-reference","title":"Permissions and Access","summary":"Learn how to manage project access and added products for your integrations.","outbound":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/billing"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/vercel-api-integrations"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/secure-your-resource"},{"site":"vercel-docs","path":"/docs/notifications"}],"inbound":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/submit-integration"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/add-a-connectable-account"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/transferring-an-integration"},{"site":"vercel-docs","path":"/docs/notifications"}],"requires":[{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration"}],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/product-integration","distance":0.1956},{"site":"vercel-docs","path":"/docs/integrations/create-integration/vercel-api-integrations","distance":0.1979},{"site":"vercel-docs","path":"/docs/integrations/create-integration/native-integration","distance":0.2427},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration","distance":0.2539},{"site":"vercel-docs","path":"/docs/integrations/create-integration/billing","distance":0.2547}],"related":[{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/product-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/native-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/scopes-and-permissions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/product-integration","title":"Add a Native Integration","summary":"Learn how you can add a product to your Vercel project through a native integration.","outbound":[{"site":"vercel-docs","path":"/docs/cli/integration"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/billing"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/deployment-integration-action"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/secure-your-resource"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-agents"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-provider"},{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/agent-tools"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/transferring-an-integration"},{"site":"vercel-docs","path":"/docs/marketplace-storage"},{"site":"vercel-docs","path":"/docs/storage"}],"requires":[{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration"}],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/native-integration","distance":0.0983},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-product","distance":0.14},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration","distance":0.1513},{"site":"vercel-docs","path":"/docs/integrations","distance":0.161},{"site":"vercel-docs","path":"/docs/integrations/create-integration","distance":0.1668}],"related":[{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/native-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-product","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/marketplace-storage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/manage-integrations-reference","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/secure-your-resource","title":"Secure Your Resource","summary":"Learn how to secure native integration resources by choosing where they can connect and using Production-only mode to protect credentials.","outbound":[{"site":"vercel-docs","path":"/docs/cli/integration"},{"site":"vercel-docs","path":"/docs/environment-variables/sensitive-environment-variables"}],"inbound":[{"site":"vercel-docs","path":"/docs/integrations/install-an-integration"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/manage-integrations-reference"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/product-integration"}],"requires":[{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration"}],"neighbors":[{"site":"vercel-docs","path":"/docs/project-configuration/security-settings","distance":0.2635},{"site":"vercel-docs","path":"/docs/security/access-control","distance":0.2808},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication","distance":0.2942},{"site":"vercel-docs","path":"/docs/environment-variables/sensitive-environment-variables","distance":0.2946},{"site":"vercel-docs","path":"/docs/deployment-protection","distance":0.2979}],"related":[{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/security-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/access-control","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/manage-integrations-reference","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/transferring-an-integration","title":"Transferring an Integration","summary":"Move your installation of a Native Integration from one Vercel team to another, including its resources and prepayment balances.","outbound":[{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/add-a-connectable-account"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/manage-integrations-reference"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/product-integration"},{"site":"vercel-docs","path":"/docs/projects/transferring-projects"}],"inbound":[{"site":"vercel-docs","path":"/docs/integrations/install-an-integration"},{"site":"vercel-docs","path":"/docs/projects/transferring-projects"}],"requires":[{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration"}],"neighbors":[{"site":"vercel-docs","path":"/docs/projects/transferring-projects","distance":0.1916},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-flows","distance":0.2228},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/product-integration","distance":0.257},{"site":"vercel-docs","path":"/docs/integrations/create-integration/native-integration","distance":0.2742},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/transfer-your-domain","distance":0.2774}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-can-i-move-a-domain-to-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-flows","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/native-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/transfer-your-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/submit-integration","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/integrations/lovable","title":"Lovable","summary":"Deploy your Lovable project to Vercel using GitHub sync and zero-configuration TanStack Start detection.","outbound":[{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/drop"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/tanstack-start"},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks"},{"site":"vercel-docs","path":"/docs/git"}],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/tanstack-start"},{"site":"vercel-docs","path":"/docs/integrations"}],"requires":[{"site":"vercel-docs","path":"/docs/integrations"}],"neighbors":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/tanstack-start","distance":0.1819},{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel","distance":0.2087},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","distance":0.2569},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","distance":0.2643},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","distance":0.2702}],"related":[{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/kms","title":"Key Management","summary":"Sign JWTs and messages with Vercel-managed signing keys. Learn about issuers, keys, and policies, and how to sign from Vercel Functions with @vercel/kms.","outbound":[{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/kms/concepts/authentication"},{"site":"vercel-docs","path":"/docs/kms/concepts/key-rotation"},{"site":"vercel-docs","path":"/docs/kms/pricing"},{"site":"vercel-docs","path":"/docs/kms/quickstart"},{"site":"vercel-docs","path":"/docs/kms/ts-sdk-reference"},{"site":"vercel-docs","path":"/docs/oidc"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/kms/concepts/authentication","distance":0.0991},{"site":"vercel-docs","path":"/docs/kms/quickstart","distance":0.1232},{"site":"vercel-docs","path":"/docs/kms/ts-sdk-reference","distance":0.147},{"site":"vercel-docs","path":"/docs/kms/concepts","distance":0.1538},{"site":"vercel-docs","path":"/docs/kms/pricing","distance":0.1702}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/kms/create-a-signing-key","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/activate-a-signing-key","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/sign-a-token","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/revoke-a-signing-key","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/kms/concepts","title":"Concepts","summary":"Understand how Vercel KMS rotates signing keys and how it authorizes signing, management, and verification.","outbound":[{"site":"vercel-docs","path":"/docs/kms/concepts/authentication"},{"site":"vercel-docs","path":"/docs/kms/concepts/claims"},{"site":"vercel-docs","path":"/docs/kms/concepts/connect-grants"},{"site":"vercel-docs","path":"/docs/kms/concepts/key-rotation"},{"site":"vercel-docs","path":"/docs/kms/concepts/project-grants"},{"site":"vercel-docs","path":"/docs/kms/quickstart"}],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/kms"}],"neighbors":[{"site":"vercel-docs","path":"/docs/kms/concepts/authentication","distance":0.1342},{"site":"vercel-docs","path":"/docs/kms","distance":0.1538},{"site":"vercel-docs","path":"/docs/kms/quickstart","distance":0.1857},{"site":"vercel-docs","path":"/docs/kms/concepts/connect-grants","distance":0.1945},{"site":"vercel-docs","path":"/docs/kms/concepts/project-grants","distance":0.1988}],"related":[{"site":"vercel-docs","path":"/docs/connect/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/kms/ts-sdk-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals","via":"neighbor"},{"site":"vercel-docs","path":"/docs/kms/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-a-signing-key","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/kms/concepts/authentication","title":"Authentication","summary":"How Vercel KMS authorizes signing requests with a deployment OIDC token, authorizes management requests with a Vercel access token, and how relying parties verify signatures.","outbound":[{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/kms/concepts/claims"},{"site":"vercel-docs","path":"/docs/kms/concepts/connect-grants"},{"site":"vercel-docs","path":"/docs/kms/concepts/key-rotation"},{"site":"vercel-docs","path":"/docs/kms/concepts/project-grants"},{"site":"vercel-docs","path":"/docs/kms/ts-sdk-reference"},{"site":"vercel-docs","path":"/docs/oidc"},{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/kms"},{"site":"vercel-docs","path":"/docs/kms/concepts"},{"site":"vercel-docs","path":"/docs/kms/concepts/connect-grants"},{"site":"vercel-docs","path":"/docs/kms/concepts/key-rotation"},{"site":"vercel-docs","path":"/docs/kms/concepts/project-grants"},{"site":"vercel-docs","path":"/docs/kms/quickstart"},{"site":"vercel-docs","path":"/docs/kms/ts-sdk-reference"}],"requires":[{"site":"vercel-docs","path":"/docs/kms"},{"site":"vercel-docs","path":"/docs/kms/concepts"}],"neighbors":[{"site":"vercel-docs","path":"/docs/kms","distance":0.0991},{"site":"vercel-docs","path":"/docs/kms/quickstart","distance":0.1142},{"site":"vercel-docs","path":"/docs/kms/concepts","distance":0.1342},{"site":"vercel-docs","path":"/docs/kms/ts-sdk-reference","distance":0.1391},{"site":"vercel-docs","path":"/docs/rest-api/kms/sign-a-token","distance":0.1905}],"related":[{"site":"vercel-docs","path":"/docs/kms/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/sign-a-token","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-a-signing-key","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer-policy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/kms/pricing","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/kms/concepts/claims","title":"Claims","summary":"How a KMS grant sets KMS-owned token claims the caller cannot override, and how an issuer claims schema validates every token it signs.","outbound":[{"site":"vercel-docs","path":"/docs/kms/concepts/connect-grants"},{"site":"vercel-docs","path":"/docs/kms/concepts/project-grants"},{"site":"vercel-docs","path":"/docs/kms/ts-sdk-reference"}],"inbound":[{"site":"vercel-docs","path":"/docs/kms/concepts"},{"site":"vercel-docs","path":"/docs/kms/concepts/authentication"}],"requires":[{"site":"vercel-docs","path":"/docs/kms"},{"site":"vercel-docs","path":"/docs/kms/concepts"}],"neighbors":[{"site":"vercel-docs","path":"/docs/kms/concepts/authentication","distance":0.2019},{"site":"vercel-docs","path":"/docs/kms/concepts","distance":0.2026},{"site":"vercel-docs","path":"/docs/kms/concepts/project-grants","distance":0.2254},{"site":"vercel-docs","path":"/docs/kms/concepts/connect-grants","distance":0.2368},{"site":"vercel-docs","path":"/docs/kms","distance":0.2657}],"related":[{"site":"vercel-docs","path":"/docs/kms/concepts/authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/kms/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/oidc/reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer-policy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/sign-a-token","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/kms/concepts/connect-grants","title":"Connect grants","summary":"How a Connect grant lets Vercel Connect provision and sign with a KMS issuer on behalf of your team, identified by a Connect client ID.","outbound":[{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/kms/concepts/authentication"},{"site":"vercel-docs","path":"/docs/kms/concepts/project-grants"}],"inbound":[{"site":"vercel-docs","path":"/docs/kms/concepts"},{"site":"vercel-docs","path":"/docs/kms/concepts/authentication"},{"site":"vercel-docs","path":"/docs/kms/concepts/claims"},{"site":"vercel-docs","path":"/docs/kms/concepts/project-grants"}],"requires":[{"site":"vercel-docs","path":"/docs/kms"},{"site":"vercel-docs","path":"/docs/kms/concepts"}],"neighbors":[{"site":"vercel-docs","path":"/docs/kms/concepts/project-grants","distance":0.1227},{"site":"vercel-docs","path":"/docs/kms/concepts","distance":0.1945},{"site":"vercel-docs","path":"/docs/kms/concepts/claims","distance":0.2368},{"site":"vercel-docs","path":"/docs/kms/concepts/authentication","distance":0.2501},{"site":"vercel-docs","path":"/docs/connect","distance":0.2916}],"related":[{"site":"v0","path":"/docs/vercel-connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-connect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/kms/concepts/claims","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/kms/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/connectors","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/kms/concepts/key-rotation","title":"Key rotation","summary":"How Vercel KMS stages a pending signing key, schedules its activation, and retires the previous key so already-issued tokens keep verifying.","outbound":[{"site":"vercel-docs","path":"/docs/kms/concepts/authentication"},{"site":"vercel-docs","path":"/docs/kms/ts-sdk-reference"}],"inbound":[{"site":"vercel-docs","path":"/docs/kms"},{"site":"vercel-docs","path":"/docs/kms/concepts"},{"site":"vercel-docs","path":"/docs/kms/concepts/authentication"},{"site":"vercel-docs","path":"/docs/kms/pricing"},{"site":"vercel-docs","path":"/docs/kms/quickstart"}],"requires":[{"site":"vercel-docs","path":"/docs/kms"},{"site":"vercel-docs","path":"/docs/kms/concepts"}],"neighbors":[{"site":"vercel-docs","path":"/docs/kms","distance":0.2006},{"site":"vercel-docs","path":"/docs/kms/concepts/authentication","distance":0.207},{"site":"vercel-docs","path":"/docs/kms/concepts","distance":0.2187},{"site":"vercel-docs","path":"/docs/kms/quickstart","distance":0.2553},{"site":"vercel-docs","path":"/docs/kms/pricing","distance":0.2635}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-hypertune-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/kms/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/kms/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/activate-a-signing-key","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-a-signing-key","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/secrets-rotation","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/kms/concepts/project-grants","title":"Project grants","summary":"How a project grant authorizes a Vercel deployment to sign with a KMS issuer using its OIDC token, scoped to a team, project, and environments.","outbound":[{"site":"vercel-docs","path":"/docs/kms/concepts/authentication"},{"site":"vercel-docs","path":"/docs/kms/concepts/connect-grants"},{"site":"vercel-docs","path":"/docs/oidc"}],"inbound":[{"site":"vercel-docs","path":"/docs/kms/concepts"},{"site":"vercel-docs","path":"/docs/kms/concepts/authentication"},{"site":"vercel-docs","path":"/docs/kms/concepts/claims"},{"site":"vercel-docs","path":"/docs/kms/concepts/connect-grants"}],"requires":[{"site":"vercel-docs","path":"/docs/kms"},{"site":"vercel-docs","path":"/docs/kms/concepts"}],"neighbors":[{"site":"vercel-docs","path":"/docs/kms/concepts/connect-grants","distance":0.1227},{"site":"vercel-docs","path":"/docs/kms/concepts","distance":0.1988},{"site":"vercel-docs","path":"/docs/kms/concepts/authentication","distance":0.2088},{"site":"vercel-docs","path":"/docs/kms/concepts/claims","distance":0.2254},{"site":"vercel-docs","path":"/docs/kms","distance":0.279}],"related":[{"site":"vercel-docs","path":"/docs/kms/concepts/claims","via":"neighbor"},{"site":"vercel-docs","path":"/docs/kms/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer-policy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/kms/ts-sdk-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/update-an-issuer-policy","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/kms/pricing","title":"Pricing and Limits","summary":"How Vercel KMS is billed per signing operation, the platform limits that apply, and how to stop being billed.","outbound":[{"site":"vercel-docs","path":"/docs/kms/concepts/key-rotation"},{"site":"vercel-docs","path":"/docs/kms/ts-sdk-reference"}],"inbound":[{"site":"vercel-docs","path":"/docs/kms"}],"requires":[{"site":"vercel-docs","path":"/docs/kms"}],"neighbors":[{"site":"vercel-docs","path":"/docs/kms","distance":0.1702},{"site":"vercel-docs","path":"/docs/kms/concepts/authentication","distance":0.2282},{"site":"vercel-docs","path":"/docs/kms/concepts","distance":0.2473},{"site":"vercel-docs","path":"/docs/kms/concepts/key-rotation","distance":0.2635},{"site":"vercel-docs","path":"/docs/kms/ts-sdk-reference","distance":0.2645}],"related":[{"site":"vercel-docs","path":"/docs/kms/concepts/authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/kms/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/kms/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/pricing","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/kms/quickstart","title":"Quickstart","summary":"Create a KMS issuer, sign a JWT from a Vercel Function with @vercel/kms, and verify it against the published JWKS.","outbound":[{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/kms/concepts/authentication"},{"site":"vercel-docs","path":"/docs/kms/concepts/key-rotation"},{"site":"vercel-docs","path":"/docs/kms/ts-sdk-reference"},{"site":"vercel-docs","path":"/docs/oidc"}],"inbound":[{"site":"vercel-docs","path":"/docs/kms"},{"site":"vercel-docs","path":"/docs/kms/concepts"},{"site":"vercel-docs","path":"/docs/kms/ts-sdk-reference"}],"requires":[{"site":"vercel-docs","path":"/docs/kms"}],"neighbors":[{"site":"vercel-docs","path":"/docs/kms/concepts/authentication","distance":0.1142},{"site":"vercel-docs","path":"/docs/kms","distance":0.1232},{"site":"vercel-docs","path":"/docs/kms/ts-sdk-reference","distance":0.1412},{"site":"vercel-docs","path":"/docs/kms/concepts","distance":0.1857},{"site":"vercel-docs","path":"/docs/rest-api/kms/sign-a-token","distance":0.224}],"related":[{"site":"vercel-docs","path":"/docs/kms/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/sign-a-token","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-a-signing-key","via":"neighbor"},{"site":"vercel-docs","path":"/docs/kms/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/activate-a-signing-key","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/kms/ts-sdk-reference","title":"SDK Reference","summary":"API reference for @vercel/kms, including signToken, signMessage, region resolution, and signing the KMS API directly without the SDK.","outbound":[{"site":"vercel-docs","path":"/docs/kms/concepts/authentication"},{"site":"vercel-docs","path":"/docs/kms/quickstart"},{"site":"vercel-docs","path":"/docs/oidc"}],"inbound":[{"site":"vercel-docs","path":"/docs/kms"},{"site":"vercel-docs","path":"/docs/kms/concepts/authentication"},{"site":"vercel-docs","path":"/docs/kms/concepts/claims"},{"site":"vercel-docs","path":"/docs/kms/concepts/key-rotation"},{"site":"vercel-docs","path":"/docs/kms/pricing"},{"site":"vercel-docs","path":"/docs/kms/quickstart"}],"requires":[{"site":"vercel-docs","path":"/docs/kms"}],"neighbors":[{"site":"vercel-docs","path":"/docs/kms/concepts/authentication","distance":0.1391},{"site":"vercel-docs","path":"/docs/kms/quickstart","distance":0.1412},{"site":"vercel-docs","path":"/docs/kms","distance":0.147},{"site":"vercel-docs","path":"/docs/rest-api/kms/sign-a-token","distance":0.1853},{"site":"vercel-docs","path":"/docs/rest-api/kms/sign-a-message","distance":0.2102}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/kms/sign-a-token","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/sign-a-message","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-a-signing-key","via":"neighbor"},{"site":"vercel-docs","path":"/docs/kms/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/ts-sdk-reference","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/limits","title":"Limits","summary":"Look up account limits, usage summaries, rate limits, and resource constraints for every Vercel plan.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/headers"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/rewrites"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes"},{"site":"nextjs","path":"/docs/app/guides/redirecting"},{"site":"vercel-docs","path":"/docs/analytics/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/build-output-api"},{"site":"vercel-docs","path":"/docs/build-output-api/configuration"},{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/builds/managing-builds"},{"site":"vercel-docs","path":"/docs/cron-jobs/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/deploy-hooks"},{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/deployments/logs"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build"},{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/environment-variables/reserved-environment-variables"},{"site":"vercel-docs","path":"/docs/environment-variables/system-environment-variables"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/functions/runtimes/edge"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/global-config/using-global-config"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/logs/runtime"},{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/trials"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/projects"},{"site":"vercel-docs","path":"/docs/query/monitoring"},{"site":"vercel-docs","path":"/docs/query/monitoring/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/queues/pricing"},{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-docs","path":"/docs/services/pricing"},{"site":"vercel-docs","path":"/docs/speed-insights/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/managed-rulesets"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting"},{"site":"vercel-docs","path":"/docs/workflows/pricing"}],"inbound":[{"site":"v0","path":"/docs/vercel-integration"},{"site":"vercel-docs","path":"/docs/cli/deploy"},{"site":"vercel-docs","path":"/docs/cron-jobs/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/deploy-hooks"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/limits/fair-use-guidelines"},{"site":"vercel-docs","path":"/docs/monorepos"},{"site":"vercel-docs","path":"/docs/notifications"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/trials"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"},{"site":"vercel-docs","path":"/docs/projects"},{"site":"vercel-docs","path":"/docs/projects/managing-projects"},{"site":"vercel-docs","path":"/docs/sandbox/pricing"},{"site":"vercel-docs","path":"/docs/spend-management"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-concepts"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-build-error-build-step-did-not-complete-within-45-minutes"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-account-deployment-blocked"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/functions/limitations","distance":0.2146},{"site":"vercel-docs","path":"/docs/workflows/pricing","distance":0.2154},{"site":"vercel-docs","path":"/docs/limits/fair-use-guidelines","distance":0.2351},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing","distance":0.2414},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration","distance":0.2484}],"related":[{"site":"v0","path":"/docs/vercel-integration","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-build-error-build-step-did-not-complete-within-45-minutes","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-account-deployment-blocked","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/why-aren-t-commits-triggering-deployments-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/limits","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploy","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/limits/fair-use-guidelines","title":"Fair Use Guidelines","summary":"Learn how Vercel applies fair use guidelines across plans and usage-based resources.","outbound":[{"site":"vercel-docs","path":"/docs/builds/managing-builds"},{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/global-config/global-config-limits"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/image-optimization/legacy-pricing"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/notifications"},{"site":"vercel-docs","path":"/docs/plans/hobby"},{"site":"vercel-kb","path":"/kb/guide/can-vercel-sponsor-my-open-source-project"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/penetration-testing-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-account-deployment-blocked"}],"requires":[{"site":"vercel-docs","path":"/docs/limits"}],"neighbors":[{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing","distance":0.1923},{"site":"vercel-docs","path":"/docs/pricing","distance":0.2031},{"site":"vercel-docs","path":"/docs/plans","distance":0.2088},{"site":"vercel-docs","path":"/docs/image-optimization/legacy-pricing","distance":0.2183},{"site":"vercel-docs","path":"/docs/limits","distance":0.2351}],"related":[{"site":"vercel-kb","path":"/kb/guide/can-vercel-sponsor-my-open-source-project","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/penetration-testing-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-account-deployment-blocked","via":"inbound"},{"site":"vercel-docs","path":"/docs/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans","via":"neighbor"},{"site":"vercel-docs","path":"/docs/image-optimization/legacy-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/limits-and-pricing","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/logs","title":"Logs","summary":"Use logs to find information on deployment builds, function executions, and more.","outbound":[{"site":"vercel-docs","path":"/docs/activity-log"},{"site":"vercel-docs","path":"/docs/audit-log"},{"site":"vercel-docs","path":"/docs/deployments/logs"},{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/logs/runtime"}],"inbound":[{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/projects"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/deployments/logs","distance":0.1275},{"site":"vercel-docs","path":"/docs/functions/logs","distance":0.184},{"site":"vercel-docs","path":"/docs/logs/runtime","distance":0.2039},{"site":"vercel-docs","path":"/docs/cli/logs","distance":0.2273},{"site":"vercel-docs","path":"/docs/rest-api/logs/get-logs-for-a-deployment","distance":0.2383}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-store-logs-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/add-structured-application-logs-to-vercel-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/logs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/logs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logs/get-logs-for-a-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-datadog","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/logs","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/logs/runtime","title":"Runtime","summary":"Learn how to search, inspect, and share your runtime logs with the Logs tab.","outbound":[{"site":"vercel-docs","path":"/docs/caching/cache-status"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/domains"},{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"},{"site":"vercel-docs","path":"/docs/partial-prerendering"},{"site":"vercel-docs","path":"/docs/plans/hobby"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/rbac/managing-team-members"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/routing/redirects"},{"site":"vercel-docs","path":"/docs/routing/rewrites"}],"inbound":[{"site":"vercel-docs","path":"/docs/caching/cache-status"},{"site":"vercel-docs","path":"/docs/cron-jobs/manage-cron-jobs"},{"site":"vercel-docs","path":"/docs/flags/observability/web-analytics"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/create-react-app"},{"site":"vercel-docs","path":"/docs/functions/concurrency-scaling"},{"site":"vercel-docs","path":"/docs/functions/logs"},{"site":"vercel-docs","path":"/docs/headers/response-headers"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/logs"},{"site":"vercel-docs","path":"/docs/plans"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/plans/hobby"},{"site":"vercel-docs","path":"/docs/projects/transferring-projects"},{"site":"vercel-docs","path":"/docs/routing"},{"site":"vercel-docs","path":"/docs/security/shared-responsibility"},{"site":"vercel-docs","path":"/docs/tracing"},{"site":"vercel-docs","path":"/docs/tracing/session-tracing"},{"site":"vercel-kb","path":"/kb/guide/add-structured-application-logs-to-vercel-functions"},{"site":"vercel-kb","path":"/kb/guide/debug-routing-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-containers-from-aws-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute"}],"requires":[{"site":"vercel-docs","path":"/docs/logs"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/logs","distance":0.1907},{"site":"vercel-docs","path":"/docs/functions/logs","distance":0.1919},{"site":"vercel-docs","path":"/docs/logs","distance":0.2039},{"site":"vercel-docs","path":"/docs/cli/logs","distance":0.2197},{"site":"vercel-kb","path":"/kb/guide/add-structured-application-logs-to-vercel-functions","distance":0.2284}],"related":[{"site":"vercel-kb","path":"/kb/guide/add-structured-application-logs-to-vercel-functions","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/debug-routing-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/migrate-containers-from-aws-to-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/logs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/logs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability/insights","via":"neighbor"},{"site":"vercel-docs","path":"/docs/limits","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability","title":"Manage & Optimize","summary":"Learn how to understand the different charts in the Vercel dashboard, how usage relates to billing, and how to optimize your usage of Web Analytics and Speed Insights.","outbound":[{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/analytics/package"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/drains/reference/logs"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"},{"site":"vercel-docs","path":"/docs/query/monitoring/monitoring-reference"},{"site":"vercel-docs","path":"/docs/speed-insights/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/speed-insights/package"},{"site":"vercel-docs","path":"/docs/speed-insights/using-speed-insights"}],"inbound":[{"site":"vercel-docs","path":"/docs/analytics/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage"},{"site":"vercel-docs","path":"/docs/speed-insights/limits-and-pricing"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/analytics/limits-and-pricing","distance":0.1378},{"site":"vercel-docs","path":"/docs/observability","distance":0.1397},{"site":"vercel-docs","path":"/docs/speed-insights/limits-and-pricing","distance":0.1566},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","distance":0.1601},{"site":"vercel-docs","path":"/docs/observability/observability-plus","distance":0.1662}],"related":[{"site":"vercel-docs","path":"/docs/analytics/limits-and-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/managing-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability/insights","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/manage-cdn-usage","title":"Pricing & Usage","summary":"Understand CDN pricing resources, monitor usage from your dashboard, and optimize Fast Data Transfer, Fast Origin Transfer, and CDN Requests.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/generateEtags"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/guides/package-bundling"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nuxt"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/alerts"},{"site":"vercel-docs","path":"/docs/analytics/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/caching/cache-control-headers"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing"},{"site":"vercel-docs","path":"/docs/functions/websockets"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/image-optimization/legacy-pricing"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability"},{"site":"vercel-docs","path":"/docs/observability/insights"},{"site":"vercel-docs","path":"/docs/partial-prerendering"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/pricing/how-does-vercel-calculate-usage-of-resources"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/arn1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/bom1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cdg1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cle1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cpt1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dxb1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/fra1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/gru1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hkg1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hnd1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/iad1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/icn1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/kix1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/lhr1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/pdx1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sin1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/syd1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/yul1"},{"site":"vercel-docs","path":"/docs/query/monitoring/monitoring-reference"},{"site":"vercel-docs","path":"/docs/query/reference"},{"site":"vercel-docs","path":"/docs/speed-insights/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/vercel-blob/private-storage"},{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-blob/using-blob-sdk"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-concepts"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/usage-and-pricing"},{"site":"vercel-kb","path":"/kb/guide/penetration-testing-on-vercel"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/cdn","distance":0.1731},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","distance":0.1997},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works","distance":0.2331},{"site":"vercel-docs","path":"/docs/pricing/how-does-vercel-calculate-usage-of-resources","distance":0.2428},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing","distance":0.2473}],"related":[{"site":"vercel-kb","path":"/kb/guide/penetration-testing-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/how-does-vercel-calculate-usage-of-resources","via":"neighbor"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/limits/fair-use-guidelines","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/marketplace-storage","title":"Marketplace","summary":"Connect Postgres, Redis, NoSQL, and other storage solutions through the Vercel Marketplace. Run SQL queries, edit data, and inspect schemas from the dashboard.","outbound":[{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache"},{"site":"vercel-docs","path":"/docs/cli/install"},{"site":"vercel-docs","path":"/docs/cli/integration"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/product-integration"},{"site":"vercel-kb","path":"/kb/guide/connection-pooling-with-functions"}],"inbound":[{"site":"vercel-docs","path":"/docs/getting-started-with-vercel"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/pricing/how-does-vercel-calculate-usage-of-resources"},{"site":"vercel-docs","path":"/docs/storage"},{"site":"vercel-kb","path":"/kb/guide/astro-on-vercel-vs-webflow-cloud"},{"site":"vercel-kb","path":"/kb/guide/docker-compose-concepts-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-an-astro-app-from-webflow-cloud-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-cloudflare"},{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-webflow-cloud"},{"site":"vercel-kb","path":"/kb/guide/nextjs-on-vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/tanstack-start-on-vercel-vs-cloudflare"},{"site":"vercel-kb","path":"/kb/guide/tanstack-start-on-vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/storage","distance":0.1205},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/product-integration","distance":0.1834},{"site":"vercel-docs","path":"/docs/integrations","distance":0.1908},{"site":"vercel-docs","path":"/docs/integrations/create-integration/native-integration","distance":0.2408},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/vercel","distance":0.2409}],"related":[{"site":"vercel-kb","path":"/kb/guide/astro-on-vercel-vs-webflow-cloud","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/docker-compose-concepts-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","via":"inbound"},{"site":"vercel-docs","path":"/docs/storage","via":"neighbor"},{"site":"v0","path":"/docs/databases","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/native-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/mcp","title":"MCP","summary":"Learn more about MCP and how you can use it on Vercel.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel"}],"inbound":[{"site":"vercel-docs","path":"/docs/products"},{"site":"vercel-kb","path":"/kb/guide/how-to-create-a-contentful-asset-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/make-your-documentation-readable-by-ai-agents"},{"site":"vercel-kb","path":"/kb/guide/mcp-server-chatgpt-connector"},{"site":"vercel-kb","path":"/kb/guide/mcp-server-with-weather-tool-express"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","distance":0.1335},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp","distance":0.2016},{"site":"vercel-docs","path":"/docs/cli/mcp","distance":0.2352},{"site":"v0","path":"/docs/api/v1/adapters/mcp-server","distance":0.2412},{"site":"vercel-kb","path":"/kb/guide/how-to-create-a-contentful-asset-on-vercel","distance":0.248}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-create-a-contentful-asset-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/make-your-documentation-readable-by-ai-agents","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/mcp-server-chatgpt-connector","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/mcp-server-with-weather-tool-express","via":"inbound"},{"site":"v0","path":"/docs/api/v1/adapters/mcp-server","via":"neighbor"},{"site":"v0","path":"/docs/MCP","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-mcp-server-with-nuxt","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/mcp","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/acp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/mcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/xmcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/products","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","title":"Deploy MCP servers","summary":"Learn how to deploy Model Context Protocol \\(MCP\\) servers on Vercel with OAuth authentication and efficient scaling.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"},{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/fundamentals/what-is-compute"},{"site":"vercel-docs","path":"/docs/instant-rollback"},{"site":"vercel-docs","path":"/docs/rolling-releases"},{"site":"vercel-docs","path":"/docs/vercel-firewall"}],"inbound":[{"site":"vercel-docs","path":"/docs/mcp"},{"site":"vercel-kb","path":"/kb/guide/mcp-server-chatgpt-connector"}],"requires":[{"site":"vercel-docs","path":"/docs/mcp"}],"neighbors":[{"site":"vercel-docs","path":"/docs/mcp","distance":0.1335},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp","distance":0.1504},{"site":"vercel-kb","path":"/kb/guide/mcp-server-with-weather-tool-express","distance":0.1684},{"site":"vercel-kb","path":"/kb/guide/how-to-create-a-contentful-asset-on-vercel","distance":0.178},{"site":"vercel-kb","path":"/kb/guide/using-xmcp-with-nextjs","distance":0.1856}],"related":[{"site":"vercel-kb","path":"/kb/guide/mcp-server-chatgpt-connector","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/mcp-server-with-weather-tool-express","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-create-a-contentful-asset-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-xmcp-with-nextjs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-mcp-server-with-nuxt","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/adapters/mcp-server","via":"neighbor"},{"site":"v0","path":"/docs/MCP","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/guides/oauth-mcp-servers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/xmcp","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/microfrontends","title":"Microfrontends","summary":"Learn about microfrontends on Vercel.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/turbopack"},{"site":"vercel-docs","path":"/docs/flags"},{"site":"vercel-docs","path":"/docs/microfrontends/local-development"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/vercel-toolbar"},{"site":"vercel-docs","path":"/docs/microfrontends/quickstart"},{"site":"vercel-docs","path":"/docs/microfrontends/routing"},{"site":"vercel-docs","path":"/docs/microfrontends/troubleshooting"},{"site":"vercel-docs","path":"/docs/monorepos"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost"},{"site":"vercel-kb","path":"/kb/guide/incremental-migrations-with-microfrontends"}],"inbound":[{"site":"turborepo","path":"/docs/guides/microfrontends"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/reference"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works"},{"site":"vercel-docs","path":"/docs/observability/insights"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/products"},{"site":"vercel-docs","path":"/docs/skew-protection"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-express-starter-template"},{"site":"vercel-kb","path":"/kb/guide/debug-routing-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-serve-multiple-projects-under-a-single-domain"},{"site":"vercel-kb","path":"/kb/guide/incremental-migrations-with-microfrontends"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/microfrontends/quickstart","distance":0.1212},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends","distance":0.1711},{"site":"vercel-docs","path":"/docs/microfrontends/routing","distance":0.1934},{"site":"vercel-docs","path":"/docs/microfrontends/local-development","distance":0.204},{"site":"turborepo","path":"/docs/guides/microfrontends","distance":0.2153}],"related":[{"site":"turborepo","path":"/docs/guides/microfrontends","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-express-starter-template","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/debug-routing-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-serve-multiple-projects-under-a-single-domain","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel","via":"inbound"},{"site":"vercel-docs","path":"/docs/cli/microfrontends","via":"neighbor"},{"site":"vercel-docs","path":"/docs/monorepos/monorepo-faq","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/list-projects-in-a-microfrontends-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/get-microfrontends-config-for-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/reference","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/microfrontends/configuration","title":"Configuration","summary":"Learn about configuration on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/environment-variables/managing-environment-variables"},{"site":"vercel-docs","path":"/docs/microfrontends/quickstart"}],"inbound":[{"site":"vercel-docs","path":"/docs/microfrontends/quickstart"},{"site":"vercel-docs","path":"/docs/microfrontends/troubleshooting"}],"requires":[{"site":"vercel-docs","path":"/docs/microfrontends"}],"neighbors":[{"site":"vercel-docs","path":"/docs/microfrontends/quickstart","distance":0.2422},{"site":"vercel-docs","path":"/docs/project-configuration","distance":0.257},{"site":"vercel-docs","path":"/docs/microfrontends","distance":0.2705},{"site":"vercel-docs","path":"/docs/microfrontends/local-development","distance":0.2776},{"site":"vercel-docs","path":"/docs/cli/microfrontends","distance":0.2798}],"related":[{"site":"turborepo","path":"/docs/guides/microfrontends","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/local-development","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/microfrontends","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/routing","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/microfrontends/local-development","title":"Local Development","summary":"Learn about local development on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/cli/project-linking"},{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation"},{"site":"vercel-docs","path":"/docs/microfrontends/quickstart"},{"site":"vercel-docs","path":"/docs/microfrontends/troubleshooting"}],"inbound":[{"site":"vercel-docs","path":"/docs/microfrontends"},{"site":"vercel-docs","path":"/docs/microfrontends/quickstart"},{"site":"vercel-docs","path":"/docs/microfrontends/troubleshooting"}],"requires":[{"site":"vercel-docs","path":"/docs/microfrontends"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/microfrontends","distance":0.176},{"site":"vercel-docs","path":"/docs/microfrontends/quickstart","distance":0.1823},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends","distance":0.1965},{"site":"vercel-docs","path":"/docs/microfrontends","distance":0.204},{"site":"vercel-docs","path":"/docs/microfrontends/troubleshooting","distance":0.2262}],"related":[{"site":"turborepo","path":"/docs/guides/microfrontends","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/ci-vendors/vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-serve-multiple-projects-under-a-single-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/routing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/monorepos/monorepo-faq","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/vercel-toolbar","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends","title":"Managing Microfrontends","summary":"Learn about managing microfrontends on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/assign-domain-to-a-git-branch"},{"site":"vercel-docs","path":"/docs/environment-variables/shared-environment-variables"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/security"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/vercel-toolbar"},{"site":"vercel-docs","path":"/docs/speed-insights"}],"inbound":[{"site":"vercel-docs","path":"/docs/microfrontends"},{"site":"vercel-docs","path":"/docs/microfrontends/quickstart"},{"site":"vercel-docs","path":"/docs/microfrontends/routing"}],"requires":[{"site":"vercel-docs","path":"/docs/microfrontends"}],"neighbors":[{"site":"vercel-docs","path":"/docs/microfrontends/routing","distance":0.1457},{"site":"vercel-docs","path":"/docs/microfrontends/quickstart","distance":0.1687},{"site":"vercel-docs","path":"/docs/microfrontends","distance":0.1711},{"site":"vercel-docs","path":"/docs/microfrontends/troubleshooting","distance":0.1874},{"site":"vercel-docs","path":"/docs/microfrontends/local-development","distance":0.1965}],"related":[{"site":"turborepo","path":"/docs/guides/microfrontends","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-serve-multiple-projects-under-a-single-domain","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/incremental-migrations-with-microfrontends","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/debug-routing-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/routing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/troubleshooting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/monorepos/monorepo-faq","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/security","title":"Security","summary":"Learn about security on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/deployment-protection-exceptions"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/options-allowlist"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/sharable-links"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/password-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication"},{"site":"vercel-docs","path":"/docs/microfrontends/routing"},{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-firewall/attack-mode"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/ip-blocking"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/managed-rulesets"}],"inbound":[{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends"}],"requires":[{"site":"vercel-docs","path":"/docs/microfrontends"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends"}],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-firewall","distance":0.1696},{"site":"vercel-docs","path":"/docs/security","distance":0.1749},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments","distance":0.2021},{"site":"vercel-docs","path":"/docs/deployment-protection","distance":0.214},{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","distance":0.2192}],"related":[{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/security-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/access-control","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/vercel-toolbar","title":"Using Vercel Toolbar","summary":"Learn about using vercel toolbar on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/microfrontends/quickstart"},{"site":"vercel-docs","path":"/docs/microfrontends/troubleshooting"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost"}],"inbound":[{"site":"vercel-docs","path":"/docs/microfrontends"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends"},{"site":"vercel-docs","path":"/docs/microfrontends/quickstart"},{"site":"vercel-docs","path":"/docs/microfrontends/troubleshooting"}],"requires":[{"site":"vercel-docs","path":"/docs/microfrontends"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends"}],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-toolbar/managing-toolbar","distance":0.1702},{"site":"vercel-docs","path":"/docs/vercel-toolbar","distance":0.1854},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost","distance":0.1968},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost/add-to-production","distance":0.1973},{"site":"vercel-docs","path":"/docs/microfrontends","distance":0.2165}],"related":[{"site":"vercel-docs","path":"/docs/vercel-toolbar/managing-toolbar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost/add-to-production","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/routing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost/add-to-localhost","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/browser-extension","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/microfrontends/quickstart","title":"Getting Started","summary":"Learn about getting started on Vercel.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/basePath"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit"},{"site":"vercel-docs","path":"/docs/microfrontends/configuration"},{"site":"vercel-docs","path":"/docs/microfrontends/local-development"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/vercel-toolbar"},{"site":"vercel-docs","path":"/docs/microfrontends/routing"},{"site":"vercel-docs","path":"/docs/microfrontends/troubleshooting"},{"site":"vercel-docs","path":"/docs/projects"},{"site":"vercel-kb","path":"/kb/guide/debug-routing-on-vercel"}],"inbound":[{"site":"vercel-docs","path":"/docs/microfrontends"},{"site":"vercel-docs","path":"/docs/microfrontends/configuration"},{"site":"vercel-docs","path":"/docs/microfrontends/local-development"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/vercel-toolbar"},{"site":"vercel-docs","path":"/docs/microfrontends/troubleshooting"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-serve-multiple-projects-under-a-single-domain"},{"site":"vercel-kb","path":"/kb/guide/incremental-migrations-with-microfrontends"}],"requires":[{"site":"vercel-docs","path":"/docs/microfrontends"}],"neighbors":[{"site":"vercel-docs","path":"/docs/microfrontends","distance":0.1212},{"site":"vercel-docs","path":"/docs/microfrontends/routing","distance":0.1443},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends","distance":0.1687},{"site":"vercel-docs","path":"/docs/microfrontends/troubleshooting","distance":0.1736},{"site":"vercel-docs","path":"/docs/microfrontends/local-development","distance":0.1823}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-can-i-serve-multiple-projects-under-a-single-domain","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/incremental-migrations-with-microfrontends","via":"inbound"},{"site":"turborepo","path":"/docs/guides/microfrontends","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/microfrontends","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/builds","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/microfrontends/routing","title":"Routing","summary":"Learn about routing on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/assign-domain-to-a-git-branch"},{"site":"vercel-docs","path":"/docs/flags"},{"site":"vercel-docs","path":"/docs/instant-rollback"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends"},{"site":"vercel-docs","path":"/docs/microfrontends/troubleshooting"},{"site":"vercel-docs","path":"/docs/projects/managing-projects"},{"site":"vercel-docs","path":"/docs/routing/rewrites"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"}],"inbound":[{"site":"vercel-docs","path":"/docs/microfrontends"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/security"},{"site":"vercel-docs","path":"/docs/microfrontends/quickstart"},{"site":"vercel-docs","path":"/docs/microfrontends/troubleshooting"}],"requires":[{"site":"vercel-docs","path":"/docs/microfrontends"}],"neighbors":[{"site":"vercel-docs","path":"/docs/microfrontends/quickstart","distance":0.1443},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends","distance":0.1457},{"site":"vercel-kb","path":"/kb/guide/debug-routing-on-vercel","distance":0.1783},{"site":"vercel-docs","path":"/docs/microfrontends/troubleshooting","distance":0.1861},{"site":"vercel-docs","path":"/docs/microfrontends","distance":0.1934}],"related":[{"site":"vercel-kb","path":"/kb/guide/debug-routing-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-serve-multiple-projects-under-a-single-domain","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/microfrontends","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/vercel-toolbar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/microfrontends/troubleshooting","title":"Testing & Troubleshooting","summary":"Learn about testing & troubleshooting on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/environment-variables/managing-environment-variables"},{"site":"vercel-docs","path":"/docs/microfrontends/configuration"},{"site":"vercel-docs","path":"/docs/microfrontends/local-development"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/vercel-toolbar"},{"site":"vercel-docs","path":"/docs/microfrontends/quickstart"},{"site":"vercel-docs","path":"/docs/microfrontends/routing"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/tracing"},{"site":"vercel-docs","path":"/docs/tracing/session-tracing"}],"inbound":[{"site":"vercel-docs","path":"/docs/microfrontends"},{"site":"vercel-docs","path":"/docs/microfrontends/local-development"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/vercel-toolbar"},{"site":"vercel-docs","path":"/docs/microfrontends/quickstart"},{"site":"vercel-docs","path":"/docs/microfrontends/routing"}],"requires":[{"site":"vercel-docs","path":"/docs/microfrontends"}],"neighbors":[{"site":"vercel-docs","path":"/docs/microfrontends/quickstart","distance":0.1736},{"site":"vercel-docs","path":"/docs/microfrontends/routing","distance":0.1861},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends","distance":0.1874},{"site":"turborepo","path":"/docs/guides/microfrontends","distance":0.2232},{"site":"vercel-docs","path":"/docs/microfrontends","distance":0.2256}],"related":[{"site":"turborepo","path":"/docs/guides/microfrontends","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/debug-routing-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-deployed-project-giving-404","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/incremental-migrations-with-microfrontends","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing-middleware/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/incremental-migration","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/monorepos","title":"Monorepos","summary":"Vercel provides support for monorepos. Learn how to deploy a monorepo here.","outbound":[{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/builds/managing-builds"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/link"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/monorepos/monorepo-faq"},{"site":"vercel-docs","path":"/docs/monorepos/turborepo"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"},{"site":"vercel-docs","path":"/docs/projects"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-the-ignored-build-step-field-on-vercel"}],"inbound":[{"site":"vercel-docs","path":"/docs/builds"},{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/microfrontends"},{"site":"vercel-docs","path":"/docs/monorepos/turborepo"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/projects"},{"site":"vercel-docs","path":"/docs/projects/managing-projects"},{"site":"vercel-docs","path":"/docs/services/experimental"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-files-in-serverless-functions"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-reduce-my-build-time-with-next-js-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-the-ignored-build-step-field-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-404-errors"},{"site":"vercel-kb","path":"/kb/guide/incremental-migrations-with-microfrontends"},{"site":"vercel-kb","path":"/kb/guide/structure-your-application"},{"site":"vercel-kb","path":"/kb/guide/vercel-services"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/monorepos/monorepo-faq","distance":0.1929},{"site":"vercel-kb","path":"/kb/guide/deploying-yarn-monorepos-to-vercel","distance":0.2175},{"site":"vercel-docs","path":"/docs/projects","distance":0.2574},{"site":"turborepo","path":"/docs/guides/ci-vendors/vercel","distance":0.264},{"site":"vercel-kb","path":"/kb/guide/how-can-i-serve-multiple-projects-under-a-single-domain","distance":0.2655}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-files-in-serverless-functions","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-reduce-my-build-time-with-next-js-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-404-errors","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/incremental-migrations-with-microfrontends","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/structure-your-application","via":"inbound"},{"site":"turborepo","path":"/docs/guides/ci-vendors/vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/project-linking","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/concepts","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/monorepos/monorepo-faq","title":"Monorepos FAQ","summary":"Learn the answer to common questions about deploying monorepos on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/builds/managing-builds"},{"site":"vercel-docs","path":"/docs/cli/global-options"},{"site":"vercel-docs","path":"/docs/cli/project-linking"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-kb","path":"/kb/guide/using-vercel-cli-for-custom-workflows"}],"inbound":[{"site":"vercel-docs","path":"/docs/monorepos"}],"requires":[{"site":"vercel-docs","path":"/docs/monorepos"}],"neighbors":[{"site":"vercel-docs","path":"/docs/monorepos/nx","distance":0.1825},{"site":"vercel-docs","path":"/docs/monorepos","distance":0.1929},{"site":"vercel-docs","path":"/docs/builds","distance":0.2261},{"site":"turborepo","path":"/docs/guides/ci-vendors/vercel","distance":0.2356},{"site":"vercel-kb","path":"/kb/guide/deploying-yarn-monorepos-to-vercel","distance":0.2516}],"related":[{"site":"turborepo","path":"/docs/guides/ci-vendors/vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-yarn-monorepos-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-serve-multiple-projects-under-a-single-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/monorepos/nx","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds/build-features","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/monorepos/nx","title":"Nx","summary":"Nx is an extensible build system with support for monorepos, integrations, and Remote Caching on Vercel. Learn how to deploy Nx to Vercel with this guide.","outbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel"},{"site":"vercel-docs","path":"/docs/monorepos/turborepo"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"},{"site":"vercel-docs","path":"/docs/projects"}],"inbound":[{"site":"vercel-docs","path":"/docs/builds"},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching"}],"requires":[{"site":"vercel-docs","path":"/docs/monorepos"}],"neighbors":[{"site":"vercel-docs","path":"/docs/monorepos/monorepo-faq","distance":0.1825},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching","distance":0.2833},{"site":"vercel-kb","path":"/kb/guide/missing-routes-manifest-or-output-turborepo-nx","distance":0.288},{"site":"vercel-docs","path":"/docs/frameworks/backend/nitro","distance":0.2923},{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel","distance":0.3019}],"related":[{"site":"vercel-kb","path":"/kb/guide/missing-routes-manifest-or-output-turborepo-nx","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/ci-vendors/vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/monorepos/monorepo-faq","via":"neighbor"},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/nestjs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/xmcp","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching","title":"Remote Caching","summary":"Vercel Remote Cache allows you to share build outputs and artifacts across distributed teams.","outbound":[{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/monorepos/nx"},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching/external-ci-cd"},{"site":"vercel-docs","path":"/docs/monorepos/turborepo"},{"site":"vercel-docs","path":"/docs/rbac"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"}],"inbound":[{"site":"turborepo","path":"/docs/core-concepts/remote-caching"},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci"},{"site":"turborepo","path":"/docs/guides/ci-vendors/buildkite"},{"site":"turborepo","path":"/docs/guides/ci-vendors/circleci"},{"site":"turborepo","path":"/docs/guides/ci-vendors/github-actions"},{"site":"turborepo","path":"/docs/guides/ci-vendors/gitlab-ci"},{"site":"turborepo","path":"/docs/guides/ci-vendors/travis-ci"},{"site":"turborepo","path":"/docs/guides/ci-vendors/vercel"},{"site":"turborepo","path":"/docs/reference/system-environment-variables"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/create-react-app"},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching/external-ci-cd"},{"site":"vercel-docs","path":"/docs/monorepos/turborepo"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage"},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-bigcommerce-storefront-with-vercel"}],"requires":[{"site":"vercel-docs","path":"/docs/monorepos"}],"neighbors":[{"site":"turborepo","path":"/docs/core-concepts/remote-caching","distance":0.1273},{"site":"vercel-docs","path":"/docs/monorepos/turborepo","distance":0.1515},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching/external-ci-cd","distance":0.1775},{"site":"turborepo","path":"/docs/guides/ci-vendors/circleci","distance":0.2196},{"site":"turborepo","path":"/docs/guides/ci-vendors/gitlab-ci","distance":0.2302}],"related":[{"site":"turborepo","path":"/docs/core-concepts/remote-caching","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","via":"inbound"},{"site":"turborepo","path":"/docs/guides/ci-vendors/buildkite","via":"inbound"},{"site":"turborepo","path":"/docs/guides/ci-vendors/circleci","via":"inbound"},{"site":"turborepo","path":"/docs/guides/ci-vendors/github-actions","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-bigcommerce-storefront-with-vercel","via":"inbound"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache","via":"inbound"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching/external-ci-cd","title":"External CI/CD","summary":"Authenticate the Turborepo CLI to Vercel Remote Cache from your CI/CD provider using OpenID Connect \\(OIDC\\) or a Personal Access Token \\(PAT\\).","outbound":[{"site":"vercel-docs","path":"/docs/monorepos/remote-caching"}],"inbound":[{"site":"turborepo","path":"/docs/guides/ci-vendors/github-actions"},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching"}],"requires":[{"site":"vercel-docs","path":"/docs/monorepos"},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/ci-vendors/github-actions","distance":0.1418},{"site":"turborepo","path":"/docs/guides/ci-vendors/circleci","distance":0.1496},{"site":"turborepo","path":"/docs/guides/ci-vendors/gitlab-ci","distance":0.1634},{"site":"turborepo","path":"/docs/guides/ci-vendors/travis-ci","distance":0.1735},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching","distance":0.1775}],"related":[{"site":"turborepo","path":"/docs/guides/ci-vendors/github-actions","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/ci-vendors/circleci","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/ci-vendors/gitlab-ci","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/ci-vendors/travis-ci","via":"neighbor"},{"site":"turborepo","path":"/docs/core-concepts/remote-caching","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-bigcommerce-storefront-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket","via":"neighbor"},{"site":"vercel-docs","path":"/docs/oidc","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/monorepos/turborepo","title":"Turborepo","summary":"Learn about Turborepo, a build system for monorepos that allows you to have faster incremental builds, content-aware hashing, and Remote Caching.","outbound":[{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel"},{"site":"vercel-docs","path":"/docs/monorepos"},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"},{"site":"vercel-docs","path":"/docs/rbac/access-roles/team-level-roles"},{"site":"vercel-docs","path":"/docs/skew-protection"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides/ci-build-caching"},{"site":"nextjs","path":"/docs/pages/guides/ci-build-caching"},{"site":"turborepo","path":"/docs/core-concepts/remote-caching"},{"site":"turborepo","path":"/docs/guides/ci-vendors/vercel"},{"site":"vercel-docs","path":"/docs/builds"},{"site":"vercel-docs","path":"/docs/monorepos"},{"site":"vercel-docs","path":"/docs/monorepos/nx"},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching"},{"site":"vercel-docs","path":"/docs/production-checklist"}],"requires":[{"site":"vercel-docs","path":"/docs/monorepos"}],"neighbors":[{"site":"vercel-docs","path":"/docs/monorepos/remote-caching","distance":0.1515},{"site":"turborepo","path":"/docs/core-concepts/remote-caching","distance":0.1532},{"site":"turborepo","path":"/docs/crafting-your-repository/caching","distance":0.1768},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","distance":0.1952},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","distance":0.2058}],"related":[{"site":"nextjs","path":"/docs/app/guides/ci-build-caching","via":"inbound"},{"site":"nextjs","path":"/docs/pages/guides/ci-build-caching","via":"inbound"},{"site":"turborepo","path":"/docs/core-concepts/remote-caching","via":"inbound"},{"site":"turborepo","path":"/docs/guides/ci-vendors/vercel","via":"inbound"},{"site":"turborepo","path":"/docs/crafting-your-repository/caching","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","via":"neighbor"},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching/external-ci-cd","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds","via":"inbound"},{"site":"vercel-docs","path":"/docs/production-checklist","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/networking","title":"Networking","summary":"Connect your Vercel projects to backend services with static IPs and secure networking options.","outbound":[{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/how-to-allowlist-deployment-ip-address"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/networking/static-ips","distance":0.1192},{"site":"vercel-docs","path":"/docs/networking/static-ips/getting-started","distance":0.1782},{"site":"vercel-docs","path":"/docs/networking/secure-compute","distance":0.1812},{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address","distance":0.2215},{"site":"vercel-kb","path":"/kb/guide/how-to-allowlist-deployment-ip-address","distance":0.2297}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-allowlist-deployment-ip-address","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address","via":"neighbor"},{"site":"vercel-docs","path":"/docs/services/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/networking/create-a-secure-compute-network","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cdg1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/pdx1","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/networking/secure-compute","title":"Secure Compute","summary":"Secure Compute provides dedicated private networks with VPC peering for Enterprise teams.","outbound":[{"site":"vercel-docs","path":"/docs/builds"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"},{"site":"vercel-docs","path":"/docs/functions/container-images"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/runtimes/edge"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js"},{"site":"vercel-docs","path":"/docs/functions/runtimes/python"},{"site":"vercel-docs","path":"/docs/functions/runtimes/ruby"},{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-docs","path":"/docs/projects"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-kb","path":"/kb/guide/how-to-allowlist-deployment-ip-address"}],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/backend/elysia"},{"site":"vercel-docs","path":"/docs/frameworks/backend/express"},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastify"},{"site":"vercel-docs","path":"/docs/frameworks/backend/koa"},{"site":"vercel-docs","path":"/docs/frameworks/backend/nestjs"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"},{"site":"vercel-docs","path":"/docs/functions/container-images"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes"},{"site":"vercel-docs","path":"/docs/networking"},{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/production-checklist"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts"},{"site":"vercel-docs","path":"/docs/projects/transferring-projects"},{"site":"vercel-docs","path":"/docs/security/compliance"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-concepts"},{"site":"vercel-kb","path":"/kb/guide/agent-approval-workflow-stack-guide"},{"site":"vercel-kb","path":"/kb/guide/application-authentication-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address"},{"site":"vercel-kb","path":"/kb/guide/docker-on-vercel-vs-render"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments"},{"site":"vercel-kb","path":"/kb/guide/hipaa-compliance-guide-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-allowlist-deployment-ip-address"},{"site":"vercel-kb","path":"/kb/guide/is-vercel-soc-2-compliant"},{"site":"vercel-kb","path":"/kb/guide/rag-chatbot-production-architecture-on-vercel"}],"requires":[{"site":"vercel-docs","path":"/docs/networking"}],"neighbors":[{"site":"vercel-docs","path":"/docs/networking","distance":0.1812},{"site":"vercel-docs","path":"/docs/networking/static-ips","distance":0.2159},{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address","distance":0.2294},{"site":"vercel-kb","path":"/kb/guide/how-to-allowlist-deployment-ip-address","distance":0.2389},{"site":"vercel-docs","path":"/docs/rest-api/networking/create-a-secure-compute-network","distance":0.2469}],"related":[{"site":"vercel-kb","path":"/kb/guide/agent-approval-workflow-stack-guide","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/application-authentication-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/docker-on-vercel-vs-render","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments","via":"inbound"},{"site":"vercel-docs","path":"/docs/rest-api/networking/create-a-secure-compute-network","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/compliance","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans/enterprise","via":"neighbor"},{"site":"vercel-docs","path":"/docs/regions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/elysia","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/networking/static-ips","title":"Static IPs","summary":"Access IP-restricted backend services through shared static egress IPs for Pro and Enterprise teams.","outbound":[{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/functions/container-images"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/networking/static-ips/getting-started"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"},{"site":"vercel-docs","path":"/docs/routing-middleware"}],"inbound":[{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration"},{"site":"vercel-docs","path":"/docs/functions/container-images"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/networking"},{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/networking/static-ips/getting-started"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/arn1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/bom1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cdg1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cle1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cpt1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dxb1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/fra1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/gru1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hkg1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hnd1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/iad1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/icn1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/kix1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/lhr1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/pdx1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sin1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/syd1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/yul1"},{"site":"vercel-docs","path":"/docs/projects/transferring-projects"},{"site":"vercel-kb","path":"/kb/guide/agent-approval-workflow-stack-guide"},{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address"},{"site":"vercel-kb","path":"/kb/guide/docker-on-vercel-vs-render"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments"},{"site":"vercel-kb","path":"/kb/guide/hipaa-compliance-guide-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-allowlist-deployment-ip-address"}],"requires":[{"site":"vercel-docs","path":"/docs/networking"}],"neighbors":[{"site":"vercel-docs","path":"/docs/networking","distance":0.1192},{"site":"vercel-docs","path":"/docs/networking/static-ips/getting-started","distance":0.1301},{"site":"vercel-kb","path":"/kb/guide/how-to-allowlist-deployment-ip-address","distance":0.1464},{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address","distance":0.1615},{"site":"vercel-docs","path":"/docs/networking/secure-compute","distance":0.2159}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-allowlist-deployment-ip-address","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/agent-approval-workflow-stack-guide","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/docker-on-vercel-vs-render","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments","via":"inbound"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/networking/configures-static-ip-s-for-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cdg1","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/networking/static-ips/getting-started","title":"Getting Started","summary":"Learn how to set up Static IPs for your Vercel projects to connect to IP-restricted backend services.","outbound":[{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"}],"inbound":[{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address"}],"requires":[{"site":"vercel-docs","path":"/docs/networking"},{"site":"vercel-docs","path":"/docs/networking/static-ips"}],"neighbors":[{"site":"vercel-docs","path":"/docs/networking/static-ips","distance":0.1301},{"site":"vercel-docs","path":"/docs/networking","distance":0.1782},{"site":"vercel-kb","path":"/kb/guide/how-to-allowlist-deployment-ip-address","distance":0.2033},{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address","distance":0.2603},{"site":"vercel-docs","path":"/docs/networking/secure-compute","distance":0.3144}],"related":[{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-allowlist-deployment-ip-address","via":"neighbor"},{"site":"vercel-docs","path":"/docs/networking/secure-compute","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/networking/configures-static-ip-s-for-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/reverse-proxy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/notebooks","title":"Notebooks","summary":"Learn more about Notebooks and how they allow you to organize and save your queries.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/query"},{"site":"vercel-docs","path":"/docs/query/monitoring"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/query","distance":0.2479},{"site":"vercel-docs","path":"/docs/observability","distance":0.2916},{"site":"vercel-docs","path":"/docs/query/monitoring/quickstart","distance":0.3507},{"site":"vercel-docs","path":"/docs/query/monitoring","distance":0.3531},{"site":"vercel-docs","path":"/docs/analytics/accessing-metrics-with-vercel-cli","distance":0.3682}],"related":[{"site":"vercel-docs","path":"/docs/query","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/query/monitoring/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/query/monitoring","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/accessing-metrics-with-vercel-cli","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/notifications","title":"Notifications","summary":"Learn how to use Notifications to view and manage important alerts about your deployments, domains, integrations, account, and usage.","outbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/comments/managing-comments"},{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/domains"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/renew-a-domain"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/transfer-your-domain"},{"site":"vercel-docs","path":"/docs/global-config/global-config-dashboard"},{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/vercel-api-integrations"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/manage-integrations-reference"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/limits/fair-use-guidelines"},{"site":"vercel-docs","path":"/docs/plans/enterprise/billing"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"},{"site":"vercel-docs","path":"/docs/rbac/access-roles/team-level-roles"},{"site":"vercel-docs","path":"/docs/spend-management"},{"site":"vercel-kb","path":"/kb/guide/renewal-of-ssl-certificates-with-a-vercel-domain"}],"inbound":[{"site":"vercel-docs","path":"/docs/analytics/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/deployments/sharing-deployments"},{"site":"vercel-docs","path":"/docs/global-config/global-config-limits"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/manage-integrations-reference"},{"site":"vercel-docs","path":"/docs/plans"},{"site":"vercel-docs","path":"/docs/plans/enterprise/billing"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/billing"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage"},{"site":"vercel-docs","path":"/docs/sandbox/pricing"},{"site":"vercel-docs","path":"/docs/spend-management"},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/alerts/configure-alerts","distance":0.2544},{"site":"vercel-docs","path":"/docs/accounts","distance":0.2883},{"site":"vercel-docs","path":"/docs/spend-management","distance":0.2945},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/manage-integrations-reference","distance":0.2965},{"site":"vercel-docs","path":"/docs/git/vercel-for-github","distance":0.3084}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-disable-git-notifications-from-deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/monitor-uptime-for-ai-native-apps-with-vercel-alerts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/alerts/configure-alerts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-github","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/billing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/audit-log","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/observability","title":"Overview","summary":"Observability on Vercel provides framework-aware insights enabling you to optimize infrastructure and application performance.","outbound":[{"site":"vercel-docs","path":"/docs/notebooks"},{"site":"vercel-docs","path":"/docs/observability/debug-production-errors"},{"site":"vercel-docs","path":"/docs/observability/insights"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"},{"site":"vercel-docs","path":"/docs/query/monitoring"}],"inbound":[{"site":"vercel-docs","path":"/docs/bot-management"},{"site":"vercel-docs","path":"/docs/eve"},{"site":"vercel-docs","path":"/docs/eve/observability"},{"site":"vercel-docs","path":"/docs/frameworks/backend/nitro"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/create-react-app"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/vite-with-nitro"},{"site":"vercel-docs","path":"/docs/functions/container-images"},{"site":"vercel-docs","path":"/docs/functions/debug-slow-functions"},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability"},{"site":"vercel-docs","path":"/docs/microfrontends/troubleshooting"},{"site":"vercel-docs","path":"/docs/observability/debug-production-errors"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"},{"site":"vercel-docs","path":"/docs/plans"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/products"},{"site":"vercel-docs","path":"/docs/projects"},{"site":"vercel-docs","path":"/docs/query/monitoring/quickstart"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/tracing/session-tracing"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/workflows/pricing"},{"site":"vercel-kb","path":"/kb/guide/ai-evaluation-dashboard-architecture-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/black-friday-preparation"},{"site":"vercel-kb","path":"/kb/guide/debug-routing-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/docker"},{"site":"vercel-kb","path":"/kb/guide/hosting-backend-apis"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-lower-my-serverless-function-execution-time"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app"},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-next.js-sitecore-jss"},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-rsc-payload-size"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features"},{"site":"vercel-kb","path":"/kb/guide/improve-function-cold-start-performance-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/incremental-migrations-with-microfrontends"},{"site":"vercel-kb","path":"/kb/guide/investigate-latency-issues-and-slowness"},{"site":"vercel-kb","path":"/kb/guide/kubernetes-manifests-to-vercel-json"},{"site":"vercel-kb","path":"/kb/guide/migrate-containers-from-aws-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute"},{"site":"vercel-kb","path":"/kb/guide/rag-chatbot-production-architecture-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-h3-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-koa-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nestjs-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-build-error-build-step-did-not-complete-within-45-minutes"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-sigkill-out-of-memory-errors"},{"site":"vercel-kb","path":"/kb/guide/understand-cost-impact-of-function-invocations"},{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn"},{"site":"vercel-kb","path":"/kb/guide/vercel-kubernetes-support"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-kubernetes"},{"site":"vercel-kb","path":"/kb/guide/weather-api-with-nitro"},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out"},{"site":"workflow","path":"/docs/errors/step-executed-multiple-times"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/observability/observability-plus","distance":0.1253},{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability","distance":0.1397},{"site":"vercel-docs","path":"/docs/observability/insights","distance":0.1403},{"site":"vercel-docs","path":"/docs/query","distance":0.2148},{"site":"vercel-docs","path":"/docs/query/monitoring","distance":0.2271}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-evaluation-dashboard-architecture-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/black-friday-preparation","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/debug-routing-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/docker","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/hosting-backend-apis","via":"inbound"},{"site":"workflow","path":"/docs/errors/step-executed-multiple-times","via":"inbound"},{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/query","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/limits-and-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/observability/custom-metrics","title":"Custom Metrics","summary":"Learn about custom metrics on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/cli/metrics"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package"}],"inbound":[{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package"}],"requires":[{"site":"vercel-docs","path":"/docs/observability"}],"neighbors":[{"site":"vercel-docs","path":"/docs/analytics/accessing-metrics-with-vercel-cli","distance":0.237},{"site":"vercel-docs","path":"/docs/cli/metrics","distance":0.2541},{"site":"vercel-docs","path":"/docs/pricing/legacy","distance":0.3145},{"site":"vercel-docs","path":"/docs/speed-insights/accessing-metrics-with-vercel-cli","distance":0.326},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","distance":0.3381}],"related":[{"site":"vercel-docs","path":"/docs/analytics/accessing-metrics-with-vercel-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/legacy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/accessing-metrics-with-vercel-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/query","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/observability/debug-production-errors","title":"Debug 500 Errors","summary":"Find, fix, and verify production 500 errors using the Vercel CLI.","outbound":[{"site":"vercel-docs","path":"/docs/cli/bisect"},{"site":"vercel-docs","path":"/docs/cli/curl"},{"site":"vercel-docs","path":"/docs/cli/inspect"},{"site":"vercel-docs","path":"/docs/cli/logs"},{"site":"vercel-docs","path":"/docs/cli/rollback"},{"site":"vercel-docs","path":"/docs/observability"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources"},{"site":"vercel-docs","path":"/docs/agent-resources/workflows"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/debug-cache-issues"},{"site":"vercel-docs","path":"/docs/deployments/rollback-production-deployment"},{"site":"vercel-docs","path":"/docs/functions/debug-slow-functions"},{"site":"vercel-docs","path":"/docs/observability"}],"requires":[{"site":"vercel-docs","path":"/docs/observability"}],"neighbors":[{"site":"vercel-docs","path":"/docs/deployments/rollback-production-deployment","distance":0.1446},{"site":"vercel-docs","path":"/docs/functions/debug-slow-functions","distance":0.2127},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-404-errors","distance":0.2335},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/debug-cache-issues","distance":0.2388},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","distance":0.24}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-debug-404-errors","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-determine-which-vercel-deployment-introduced-an-issue","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/debug-routing-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/rollback-production-deployment","via":"neighbor"},{"site":"v0","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/debug-slow-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/debug-cache-issues","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rolling-releases/rolling-release-deployment","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/observability/insights","title":"Insights","summary":"List of available data sources that you can view and monitor with Observability on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/builds"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/microfrontends"},{"site":"vercel-docs","path":"/docs/queues"},{"site":"vercel-docs","path":"/docs/queues/observability"},{"site":"vercel-docs","path":"/docs/routing/rewrites"},{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-kb","path":"/kb/guide/investigate-latency-issues-and-slowness"},{"site":"vercel-kb","path":"/kb/guide/understand-cost-impact-of-function-invocations"}],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/backend/nitro"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/routing/redirects"},{"site":"vercel-docs","path":"/docs/routing/rewrites"},{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute"}],"requires":[{"site":"vercel-docs","path":"/docs/observability"}],"neighbors":[{"site":"vercel-docs","path":"/docs/observability","distance":0.1403},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","distance":0.2214},{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability","distance":0.2352},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","distance":0.2362},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend","distance":0.2388}],"related":[{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute","via":"inbound"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend","via":"neighbor"},{"site":"vercel-docs","path":"/docs/query","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/observability/observability-plus","title":"Observability Plus","summary":"Learn about using Observability Plus and its limits.","outbound":[{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/query"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent/investigation"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/observability"},{"site":"vercel-docs","path":"/docs/analytics/accessing-metrics-with-vercel-cli"},{"site":"vercel-docs","path":"/docs/botid"},{"site":"vercel-docs","path":"/docs/cli/metrics"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/create-react-app"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/logs/runtime"},{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/trials"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/production-checklist"},{"site":"vercel-docs","path":"/docs/query"},{"site":"vercel-docs","path":"/docs/query/monitoring"},{"site":"vercel-docs","path":"/docs/query/monitoring/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/speed-insights/accessing-metrics-with-vercel-cli"},{"site":"vercel-kb","path":"/kb/guide/ai-evaluation-dashboard-architecture-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-effectively-load-test-your-vercel-application"},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features"},{"site":"vercel-kb","path":"/kb/guide/ship-a-elysia-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-flask-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-h3-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-hono-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-koa-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nestjs-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/vercel-agent"},{"site":"vercel-kb","path":"/kb/guide/vercel-botid-vs-cloudflare-turnstile"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway"}],"requires":[{"site":"vercel-docs","path":"/docs/observability"}],"neighbors":[{"site":"vercel-docs","path":"/docs/observability","distance":0.1253},{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability","distance":0.1662},{"site":"vercel-docs","path":"/docs/analytics/limits-and-pricing","distance":0.2059},{"site":"vercel-docs","path":"/docs/speed-insights/limits-and-pricing","distance":0.2296},{"site":"vercel-docs","path":"/docs/pricing","distance":0.23}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-evaluation-dashboard-architecture-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-effectively-load-test-your-vercel-application","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ship-a-elysia-app-on-vercel","via":"inbound"},{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/limits-and-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/trials","via":"neighbor"},{"site":"vercel-docs","path":"/docs/query/monitoring/limits-and-pricing","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/og-image-generation","title":"OG Image Generation","summary":"Learn how to optimize social media image generation through the Open Graph Protocol and @vercel/og library.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/robots"},{"site":"vercel-docs","path":"/docs/deployments/og-preview"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js"},{"site":"vercel-docs","path":"/docs/og-image-generation/examples"},{"site":"vercel-docs","path":"/docs/og-image-generation/og-image-api"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions/image-response"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images"},{"site":"vercel-docs","path":"/docs/deployments/og-preview"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/frontend"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-kb","path":"/kb/guide/dynamic-text-as-image"},{"site":"vercel-kb","path":"/kb/guide/encrypting-parameters"},{"site":"vercel-kb","path":"/kb/guide/using-an-external-dynamic-image"},{"site":"vercel-kb","path":"/kb/guide/using-custom-font"},{"site":"vercel-kb","path":"/kb/guide/using-different-languages"},{"site":"vercel-kb","path":"/kb/guide/using-emoji-in-image"},{"site":"vercel-kb","path":"/kb/guide/using-svg-image"},{"site":"vercel-kb","path":"/kb/guide/using-tailwind"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/using-svg-image","distance":0.1437},{"site":"vercel-kb","path":"/kb/guide/using-tailwind","distance":0.1574},{"site":"vercel-kb","path":"/kb/guide/using-emoji-in-image","distance":0.159},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","distance":0.1851},{"site":"vercel-docs","path":"/docs/og-image-generation/og-image-api","distance":0.1851}],"related":[{"site":"vercel-kb","path":"/kb/guide/using-svg-image","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/image-response","via":"inbound"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/dynamic-text-as-image","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/encrypting-parameters","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/using-an-external-dynamic-image","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/using-custom-font","via":"inbound"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks","via":"inbound"},{"site":"vercel-docs","path":"/docs/frameworks/frontend","via":"inbound"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/og-image-generation/examples","title":"Examples","summary":"Learn how to use the @vercel/og library with examples.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/og-image-generation"}],"requires":[{"site":"vercel-docs","path":"/docs/og-image-generation"}],"neighbors":[{"site":"vercel-docs","path":"/docs/og-image-generation","distance":0.2173},{"site":"vercel-docs","path":"/docs/og-image-generation/og-image-api","distance":0.2173},{"site":"vercel-kb","path":"/kb/guide/using-emoji-in-image","distance":0.2381},{"site":"vercel-kb","path":"/kb/guide/using-tailwind","distance":0.259},{"site":"vercel-kb","path":"/kb/guide/dynamic-text-as-image","distance":0.2634}],"related":[{"site":"vercel-kb","path":"/kb/guide/using-emoji-in-image","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-tailwind","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/dynamic-text-as-image","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-svg-image","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-an-external-dynamic-image","via":"neighbor"},{"site":"vercel-docs","path":"/docs/og-image-generation/og-image-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/og-preview","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/examples","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/image-generation","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/og-image-generation/og-image-api","title":"@vercel/og","summary":"This reference provides information on how the @vercel/og package works on Vercel.","outbound":[{"site":"vercel-kb","path":"/kb/guide/using-custom-font"}],"inbound":[{"site":"vercel-docs","path":"/docs/og-image-generation"}],"requires":[{"site":"vercel-docs","path":"/docs/og-image-generation"}],"neighbors":[{"site":"vercel-docs","path":"/docs/og-image-generation","distance":0.1851},{"site":"vercel-docs","path":"/docs/og-image-generation/examples","distance":0.2173},{"site":"nextjs","path":"/docs/app/api-reference/functions/image-response","distance":0.2452},{"site":"vercel-kb","path":"/kb/guide/using-custom-font","distance":0.2457},{"site":"vercel-kb","path":"/kb/guide/using-emoji-in-image","distance":0.253}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/functions/image-response","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-emoji-in-image","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-svg-image","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-tailwind","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-an-external-dynamic-image","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/displaying-article-headlines-in-social-previews","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/image-optimization","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/oidc","title":"OIDC","summary":"Secure the access to your backend using OIDC Federation to enable auto-generated, short-lived, and non-persistent credentials.","outbound":[{"site":"vercel-docs","path":"/docs/cli/env"},{"site":"vercel-docs","path":"/docs/oidc/api"},{"site":"vercel-docs","path":"/docs/oidc/aws"},{"site":"vercel-docs","path":"/docs/oidc/azure"},{"site":"vercel-docs","path":"/docs/oidc/gcp"}],"inbound":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway"},{"site":"eve","path":"/docs/guides/auth-and-route-protection"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/oidc"},{"site":"vercel-docs","path":"/docs/cli/project"},{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication"},{"site":"vercel-docs","path":"/docs/connect/concepts/project-links"},{"site":"vercel-docs","path":"/docs/git/vercel-for-github"},{"site":"vercel-docs","path":"/docs/kms"},{"site":"vercel-docs","path":"/docs/kms/concepts/authentication"},{"site":"vercel-docs","path":"/docs/kms/concepts/project-grants"},{"site":"vercel-docs","path":"/docs/kms/quickstart"},{"site":"vercel-docs","path":"/docs/kms/ts-sdk-reference"},{"site":"vercel-docs","path":"/docs/project-configuration/security-settings"},{"site":"vercel-docs","path":"/docs/queues/quickstart"},{"site":"vercel-docs","path":"/docs/security/security-dashboard"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/vercel-blob/using-blob-sdk"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-concepts"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk"},{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address"},{"site":"vercel-kb","path":"/kb/guide/cost-aware-model-routing-with-ai-gateway"},{"site":"vercel-kb","path":"/kb/guide/daily-digest-bot-with-chat-sdk-and-workflow-sdk"},{"site":"vercel-kb","path":"/kb/guide/durable-web-research-agent-with-workflow-sdk"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent"},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot"},{"site":"vercel-kb","path":"/kb/guide/eve-typefully-social-media-agent"},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve"},{"site":"vercel-kb","path":"/kb/guide/marketing-team-eve"},{"site":"vercel-kb","path":"/kb/guide/migrate-containers-from-aws-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/rag-chatbot-production-architecture-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/sanity-eve-agent"},{"site":"vercel-kb","path":"/kb/guide/using-vercel-sandbox-claude-agent-sdk"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob"},{"site":"vercel-kb","path":"/kb/guide/vercel-drives"},{"site":"vercel-kb","path":"/kb/guide/vercel-kubernetes-support"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-kubernetes"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-render"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/oidc","distance":0.183},{"site":"vercel-docs","path":"/docs/oidc/reference","distance":0.2039},{"site":"vercel-docs","path":"/docs/oidc/api","distance":0.2041},{"site":"vercel-docs","path":"/docs/oidc/azure","distance":0.2161},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","distance":0.2217}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway","via":"inbound"},{"site":"eve","path":"/docs/guides/auth-and-route-protection","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/cost-aware-model-routing-with-ai-gateway","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/daily-digest-bot-with-chat-sdk-and-workflow-sdk","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"inbound"},{"site":"vercel-docs","path":"/docs/kms/concepts/authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/saml","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/ts-sdk-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/security-settings","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/oidc/api","title":"Connect your API","summary":"Learn how to configure your own API to trust Vercel's OpenID Connect \\(OIDC\\) Identity Provider \\(IdP\\)","outbound":[{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/projects"}],"inbound":[{"site":"vercel-docs","path":"/docs/oidc"}],"requires":[{"site":"vercel-docs","path":"/docs/oidc"}],"neighbors":[{"site":"vercel-docs","path":"/docs/oidc/azure","distance":0.1938},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/oidc","distance":0.1956},{"site":"vercel-docs","path":"/docs/oidc","distance":0.2041},{"site":"vercel-docs","path":"/docs/oidc/aws","distance":0.2081},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","distance":0.2291}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-a-vercel-api-access-token","via":"neighbor"},{"site":"vercel-docs","path":"/docs/oidc/azure","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/oidc","via":"neighbor"},{"site":"vercel-docs","path":"/docs/oidc/aws","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/oidc/gcp","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/oidc/aws","title":"AWS","summary":"Learn how to configure your AWS account to trust Vercel's OpenID Connect \\(OIDC\\) Identity Provider \\(IdP\\).","outbound":[{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/functions/quickstart"}],"inbound":[{"site":"vercel-docs","path":"/docs/environment-variables/reserved-environment-variables"},{"site":"vercel-docs","path":"/docs/oidc"},{"site":"vercel-docs","path":"/docs/oidc/reference"}],"requires":[{"site":"vercel-docs","path":"/docs/oidc"}],"neighbors":[{"site":"vercel-docs","path":"/docs/oidc/azure","distance":0.1666},{"site":"vercel-docs","path":"/docs/oidc/api","distance":0.2081},{"site":"vercel-docs","path":"/docs/oidc/gcp","distance":0.2115},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference","distance":0.223},{"site":"vercel-kb","path":"/kb/guide/connect-next-js-to-amazon-aurora-postgresql-using-vercel-marketplace","distance":0.226}],"related":[{"site":"vercel-kb","path":"/kb/guide/connect-next-js-to-amazon-aurora-postgresql-using-vercel-marketplace","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-aws-s3-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-containers-from-aws-to-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/oidc/azure","via":"neighbor"},{"site":"vercel-docs","path":"/docs/oidc/api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/oidc/gcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/oidc/reference","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/oidc/azure","title":"Azure","summary":"Learn how to configure your Microsoft Azure account to trust Vercel's OpenID Connect \\(OIDC\\) Identity Provider \\(IdP\\).","outbound":[{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/functions/quickstart"},{"site":"vercel-docs","path":"/docs/projects"}],"inbound":[{"site":"vercel-docs","path":"/docs/oidc"}],"requires":[{"site":"vercel-docs","path":"/docs/oidc"}],"neighbors":[{"site":"vercel-docs","path":"/docs/oidc/aws","distance":0.1666},{"site":"vercel-docs","path":"/docs/oidc/gcp","distance":0.1882},{"site":"vercel-docs","path":"/docs/oidc/api","distance":0.1938},{"site":"vercel-docs","path":"/docs/oidc","distance":0.2161},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/oidc","distance":0.2685}],"related":[{"site":"vercel-kb","path":"/kb/guide/connect-next-js-to-amazon-aurora-postgresql-using-vercel-marketplace","via":"neighbor"},{"site":"vercel-docs","path":"/docs/oidc/aws","via":"neighbor"},{"site":"vercel-docs","path":"/docs/oidc/gcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/oidc/api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/oidc","via":"neighbor"},{"site":"vercel-docs","path":"/docs/oidc/reference","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/oidc/gcp","title":"Google Cloud Platform","summary":"Learn how to configure your GCP project to trust Vercel's OpenID Connect \\(OIDC\\) Identity Provider \\(IdP\\).","outbound":[{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/functions/quickstart"}],"inbound":[{"site":"vercel-docs","path":"/docs/oidc"}],"requires":[{"site":"vercel-docs","path":"/docs/oidc"}],"neighbors":[{"site":"vercel-docs","path":"/docs/oidc/azure","distance":0.1882},{"site":"vercel-docs","path":"/docs/oidc/aws","distance":0.2115},{"site":"vercel-docs","path":"/docs/oidc/api","distance":0.2414},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/oidc","distance":0.2886},{"site":"vercel-docs","path":"/docs/oidc","distance":0.3008}],"related":[{"site":"vercel-docs","path":"/docs/oidc/azure","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google-vertex","via":"neighbor"},{"site":"vercel-docs","path":"/docs/oidc/aws","via":"neighbor"},{"site":"vercel-docs","path":"/docs/oidc/api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/oidc","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/oidc/reference","title":"OIDC Reference","summary":"Review helper libraries to help you connect with your backend and understand the structure of an OIDC token.","outbound":[{"site":"vercel-docs","path":"/docs/oidc/aws"}],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/oidc"}],"neighbors":[{"site":"vercel-docs","path":"/docs/oidc","distance":0.2039},{"site":"vercel-docs","path":"/docs/passport/token-claims","distance":0.227},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/tokens","distance":0.2272},{"site":"vercel-docs","path":"/docs/kms/concepts/authentication","distance":0.23},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","distance":0.2417}],"related":[{"site":"vercel-docs","path":"/docs/passport/token-claims","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/tokens","via":"neighbor"},{"site":"vercel-docs","path":"/docs/kms/concepts/authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/oidc/api","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/package-managers","title":"Package Managers","summary":"Discover the package managers supported by Vercel for dependency management. Learn how Vercel detects and uses npm, Yarn, pnpm, and Bun for optimal build performance.","outbound":[{"site":"vercel-docs","path":"/docs/builds"},{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"}],"inbound":[{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/production-checklist"},{"site":"vercel-kb","path":"/kb/guide/dependencies-from-package-json-missing-after-install"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-the-latest-npm-version-for-my-vercel-deployment","distance":0.2394},{"site":"vercel-kb","path":"/kb/guide/dependencies-from-package-json-missing-after-install","distance":0.2874},{"site":"vercel-docs","path":"/docs/builds/build-features","distance":0.292},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/node-js-versions","distance":0.3097},{"site":"vercel-kb","path":"/kb/guide/using-private-dependencies-with-vercel","distance":0.3161}],"related":[{"site":"vercel-kb","path":"/kb/guide/dependencies-from-package-json-missing-after-install","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-the-latest-npm-version-for-my-vercel-deployment","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-private-dependencies-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds/build-features","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/node-js-versions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/partial-prerendering","title":"Partial Prerendering","summary":"Partial Prerendering serves a cached static shell instantly, then renders and streams the dynamic parts of a page per request.","outbound":[{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/request-collapsing"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/partial-prerendering/quickstart"},{"site":"vercel-docs","path":"/docs/regions"}],"inbound":[{"site":"vercel-docs","path":"/docs/caching/cache-status"},{"site":"vercel-docs","path":"/docs/logs/runtime"},{"site":"vercel-docs","path":"/docs/partial-prerendering/quickstart"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/partial-prerendering/quickstart","distance":0.1071},{"site":"nextjs","path":"/docs/app/guides/ppr-platform-guide","distance":0.2372},{"site":"nextjs","path":"/docs/app/getting-started/caching","distance":0.2429},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration","distance":0.2431},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","distance":0.2645}],"related":[{"site":"nextjs","path":"/docs/app/guides/ppr-platform-guide","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-prerender-my-application-on-vercel","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/implementing-ppr-in-an-adapter","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-react-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn","via":"neighbor"},{"site":"vercel-docs","path":"/docs/build-output-api/features","via":"neighbor"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/create-react-app","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/partial-prerendering/quickstart","title":"Getting Started","summary":"Set up Partial Prerendering \\(PPR\\) in a Next.js App Router project: enable Cache Components, cache a static shell, and stream dynamic content per request.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag"},{"site":"vercel-docs","path":"/docs/partial-prerendering"}],"inbound":[{"site":"vercel-docs","path":"/docs/partial-prerendering"}],"requires":[{"site":"vercel-docs","path":"/docs/partial-prerendering"}],"neighbors":[{"site":"vercel-docs","path":"/docs/partial-prerendering","distance":0.1071},{"site":"nextjs","path":"/docs/app/getting-started/caching","distance":0.2084},{"site":"nextjs","path":"/docs/app/guides/ppr-platform-guide","distance":0.2366},{"site":"nextjs","path":"/docs/app/api-reference/adapters/implementing-ppr-in-an-adapter","distance":0.2396},{"site":"vercel-kb","path":"/kb/guide/how-can-i-prerender-my-application-on-vercel","distance":0.262}],"related":[{"site":"nextjs","path":"/docs/app/getting-started/caching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/ppr-platform-guide","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/implementing-ppr-in-an-adapter","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/public-static-pages","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-prerender-my-application-on-vercel","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","via":"neighbor"},{"site":"vercel-docs","path":"/docs/build-output-api/features","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/react-router","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/passport","title":"Passport","summary":"Learn how to protect deployments with Passport, read visitor identity, and verify Passport tokens in server-side code.","outbound":[{"site":"vercel-docs","path":"/docs/audit-log"},{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication"},{"site":"vercel-docs","path":"/docs/passport/additional-identity-scopes"},{"site":"vercel-docs","path":"/docs/passport/forward-identity"},{"site":"vercel-docs","path":"/docs/passport/read-identity"},{"site":"vercel-docs","path":"/docs/passport/set-up-identity-provider"},{"site":"vercel-docs","path":"/docs/passport/token-claims"},{"site":"vercel-docs","path":"/docs/passport/verify-identity"}],"inbound":[{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments"},{"site":"vercel-kb","path":"/kb/guide/vercel-passport-nextjs"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-passport","distance":0.1077},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments","distance":0.1519},{"site":"vercel-docs","path":"/docs/passport/set-up-identity-provider","distance":0.1706},{"site":"vercel-docs","path":"/docs/passport/read-identity","distance":0.1819},{"site":"vercel-kb","path":"/kb/guide/vercel-passport-nextjs","distance":0.1823}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-passport","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-passport-nextjs","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/access-control","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/password-protection","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/passport/additional-identity-scopes","title":"Additional Scopes","summary":"Request group membership and other provider-specific identity claims when using Passport.","outbound":[{"site":"vercel-docs","path":"/docs/passport/read-identity"},{"site":"vercel-docs","path":"/docs/passport/verify-identity"}],"inbound":[{"site":"vercel-docs","path":"/docs/passport"},{"site":"vercel-docs","path":"/docs/passport/read-identity"},{"site":"vercel-docs","path":"/docs/passport/verify-identity"}],"requires":[{"site":"vercel-docs","path":"/docs/passport"}],"neighbors":[{"site":"vercel-docs","path":"/docs/passport/token-claims","distance":0.2218},{"site":"vercel-docs","path":"/docs/passport/read-identity","distance":0.2244},{"site":"vercel-docs","path":"/docs/passport/set-up-identity-provider","distance":0.2324},{"site":"vercel-docs","path":"/docs/passport/verify-identity","distance":0.2535},{"site":"vercel-docs","path":"/docs/passport","distance":0.2624}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-passport","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-passport-nextjs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/passport/token-claims","via":"neighbor"},{"site":"vercel-docs","path":"/docs/passport/set-up-identity-provider","via":"neighbor"},{"site":"vercel-docs","path":"/docs/passport/forward-identity","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/scopes-and-permissions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/oidc/reference","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/passport/forward-identity","title":"Forward Identity","summary":"Forward a Passport visitor identity to another backend that you operate.","outbound":[{"site":"vercel-docs","path":"/docs/passport/verify-identity"}],"inbound":[{"site":"vercel-docs","path":"/docs/passport"}],"requires":[{"site":"vercel-docs","path":"/docs/passport"}],"neighbors":[{"site":"vercel-docs","path":"/docs/passport/verify-identity","distance":0.1828},{"site":"vercel-docs","path":"/docs/passport/read-identity","distance":0.2446},{"site":"vercel-docs","path":"/docs/passport","distance":0.2501},{"site":"vercel-docs","path":"/docs/passport/set-up-identity-provider","distance":0.2888},{"site":"vercel-kb","path":"/kb/guide/vercel-passport","distance":0.2982}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-passport","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-passport-nextjs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/passport/read-identity","via":"neighbor"},{"site":"vercel-docs","path":"/docs/passport/set-up-identity-provider","via":"neighbor"},{"site":"vercel-docs","path":"/docs/passport/additional-identity-scopes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/passport/token-claims","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/passport/read-identity","title":"Read Identity","summary":"Read verified Passport identity in server-side code and apply application-level authorization.","outbound":[{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation"},{"site":"vercel-docs","path":"/docs/passport/additional-identity-scopes"},{"site":"vercel-docs","path":"/docs/passport/token-claims"}],"inbound":[{"site":"vercel-docs","path":"/docs/passport"},{"site":"vercel-docs","path":"/docs/passport/additional-identity-scopes"}],"requires":[{"site":"vercel-docs","path":"/docs/passport"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-passport-nextjs","distance":0.1386},{"site":"vercel-docs","path":"/docs/passport/verify-identity","distance":0.1496},{"site":"vercel-kb","path":"/kb/guide/vercel-passport","distance":0.1728},{"site":"vercel-docs","path":"/docs/passport","distance":0.1819},{"site":"vercel-docs","path":"/docs/passport/token-claims","distance":0.1951}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-passport-nextjs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-passport","via":"neighbor"},{"site":"vercel-docs","path":"/docs/passport/verify-identity","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/complete-guide-authentication-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/passport/set-up-identity-provider","via":"neighbor"},{"site":"vercel-docs","path":"/docs/passport/forward-identity","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/tokens","via":"neighbor"},{"site":"vercel-docs","path":"/docs/oidc/reference","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/passport/set-up-identity-provider","title":"Set Up Passport","summary":"Configure Passport with Okta, Microsoft Entra ID, or another OpenID Connect provider.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/passport"}],"requires":[{"site":"vercel-docs","path":"/docs/passport"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-passport","distance":0.1254},{"site":"vercel-docs","path":"/docs/passport","distance":0.1706},{"site":"vercel-docs","path":"/docs/passport/read-identity","distance":0.2056},{"site":"vercel-docs","path":"/docs/passport/additional-identity-scopes","distance":0.2324},{"site":"vercel-docs","path":"/docs/passport/verify-identity","distance":0.2465}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-passport","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-passport-nextjs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/passport/read-identity","via":"neighbor"},{"site":"vercel-docs","path":"/docs/passport/additional-identity-scopes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/passport/verify-identity","via":"neighbor"},{"site":"vercel-docs","path":"/docs/passport/token-claims","via":"neighbor"},{"site":"vercel-docs","path":"/docs/oidc","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/passport/token-claims","title":"Token Claims","summary":"Review the standard, deployment, and visitor identity claims in a Passport token.","outbound":[{"site":"vercel-docs","path":"/docs/passport/verify-identity"}],"inbound":[{"site":"vercel-docs","path":"/docs/passport"},{"site":"vercel-docs","path":"/docs/passport/read-identity"},{"site":"vercel-docs","path":"/docs/passport/verify-identity"}],"requires":[{"site":"vercel-docs","path":"/docs/passport"}],"neighbors":[{"site":"vercel-docs","path":"/docs/passport/verify-identity","distance":0.1749},{"site":"vercel-docs","path":"/docs/passport/read-identity","distance":0.1951},{"site":"vercel-kb","path":"/kb/guide/vercel-passport-nextjs","distance":0.2122},{"site":"vercel-docs","path":"/docs/passport/additional-identity-scopes","distance":0.2218},{"site":"vercel-docs","path":"/docs/oidc/reference","distance":0.227}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-passport-nextjs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-passport","via":"neighbor"},{"site":"vercel-docs","path":"/docs/passport/read-identity","via":"neighbor"},{"site":"vercel-docs","path":"/docs/passport/additional-identity-scopes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/oidc/reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/tokens","via":"neighbor"},{"site":"vercel-docs","path":"/docs/passport/set-up-identity-provider","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/passport/verify-identity","title":"Verify Tokens","summary":"Verify a Passport token forwarded to your backend as a signed JWT.","outbound":[{"site":"vercel-docs","path":"/docs/passport/additional-identity-scopes"},{"site":"vercel-docs","path":"/docs/passport/token-claims"}],"inbound":[{"site":"vercel-docs","path":"/docs/passport"},{"site":"vercel-docs","path":"/docs/passport/additional-identity-scopes"},{"site":"vercel-docs","path":"/docs/passport/forward-identity"},{"site":"vercel-docs","path":"/docs/passport/token-claims"}],"requires":[{"site":"vercel-docs","path":"/docs/passport"}],"neighbors":[{"site":"vercel-docs","path":"/docs/passport/read-identity","distance":0.1496},{"site":"vercel-docs","path":"/docs/passport/token-claims","distance":0.1749},{"site":"vercel-docs","path":"/docs/passport/forward-identity","distance":0.1828},{"site":"vercel-kb","path":"/kb/guide/vercel-passport-nextjs","distance":0.2173},{"site":"vercel-kb","path":"/kb/guide/vercel-passport","distance":0.2355}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-passport-nextjs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-passport","via":"neighbor"},{"site":"vercel-docs","path":"/docs/passport/read-identity","via":"neighbor"},{"site":"vercel-docs","path":"/docs/passport/forward-identity","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/complete-guide-authentication-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/passport/set-up-identity-provider","via":"neighbor"},{"site":"vercel-docs","path":"/docs/oidc/reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/tokens","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/plans","title":"Plans","summary":"Learn about the different plans available on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/cdn-security/encryption"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/logs/runtime"},{"site":"vercel-docs","path":"/docs/notifications"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/plans/hobby"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/pricing/how-does-vercel-calculate-usage-of-resources"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage"},{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/saml"},{"site":"vercel-docs","path":"/docs/spend-management"}],"inbound":[{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/functions/concurrency-scaling"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/vercel-firewall/attack-mode"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/system-bypass-rules"},{"site":"vercel-kb","path":"/kb/guide/vercel-services"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/plans/pro-plan","distance":0.1643},{"site":"vercel-docs","path":"/docs/plans/hobby","distance":0.1656},{"site":"vercel-docs","path":"/docs/pricing","distance":0.1731},{"site":"vercel-docs","path":"/docs/plans/pro-plan/billing","distance":0.1871},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","distance":0.1933}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-services","via":"inbound"},{"site":"vercel-docs","path":"/docs/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/limits/fair-use-guidelines","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/accounts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/limits-and-pricing","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/plans/enterprise","title":"Enterprise Plan","summary":"Learn about the Enterprise plan for Vercel, including features, pricing, and more.","outbound":[{"site":"vercel-docs","path":"/docs/analytics/custom-events"},{"site":"vercel-docs","path":"/docs/audit-log"},{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/password-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build"},{"site":"vercel-docs","path":"/docs/directory-sync"},{"site":"vercel-docs","path":"/docs/domains"},{"site":"vercel-docs","path":"/docs/domains/custom-ssl-certificate"},{"site":"vercel-docs","path":"/docs/drains/reference/audit-logs"},{"site":"vercel-docs","path":"/docs/drains/using-drains"},{"site":"vercel-docs","path":"/docs/functions/concurrency-scaling"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/headers/request-headers"},{"site":"vercel-docs","path":"/docs/logs/runtime"},{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/query/monitoring"},{"site":"vercel-docs","path":"/docs/rbac/access-groups"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"},{"site":"vercel-docs","path":"/docs/saml"},{"site":"vercel-docs","path":"/docs/security"},{"site":"vercel-docs","path":"/docs/speed-insights/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/support-center"},{"site":"vercel-docs","path":"/docs/tracing"},{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/ip-blocking"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/managed-rulesets"}],"inbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/agent/pr-review"},{"site":"vercel-docs","path":"/docs/ai-gateway/pricing"},{"site":"vercel-docs","path":"/docs/audit-log"},{"site":"vercel-docs","path":"/docs/audit-log/migrating-to-drains"},{"site":"vercel-docs","path":"/docs/connect/observability"},{"site":"vercel-docs","path":"/docs/connect/pricing"},{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/drains/using-drains"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/launchdarkly-global-config"},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes"},{"site":"vercel-docs","path":"/docs/networking/static-ips/getting-started"},{"site":"vercel-docs","path":"/docs/plans"},{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice"},{"site":"vercel-docs","path":"/docs/production-checklist"},{"site":"vercel-docs","path":"/docs/query"},{"site":"vercel-docs","path":"/docs/query/monitoring/quickstart"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"},{"site":"vercel-docs","path":"/docs/rbac/access-roles/team-level-roles"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/system-bypass-rules"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"},{"site":"vercel-docs","path":"/docs/webhooks"},{"site":"vercel-kb","path":"/kb/guide/how-to-setup-verified-proxy"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features"},{"site":"vercel-kb","path":"/kb/guide/vercel-agent"},{"site":"vercel-kb","path":"/kb/guide/vercel-agent-code-review"},{"site":"vercel-kb","path":"/kb/guide/vercel-drives"},{"site":"vercel-kb","path":"/kb/guide/vercel-passport"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-account-deployment-blocked"}],"requires":[{"site":"vercel-docs","path":"/docs/plans"}],"neighbors":[{"site":"vercel-docs","path":"/docs/plans","distance":0.2138},{"site":"vercel-docs","path":"/docs/security","distance":0.2434},{"site":"vercel-docs","path":"/docs/security/compliance","distance":0.2446},{"site":"vercel-docs","path":"/docs/pricing","distance":0.252},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/limits","distance":0.2564}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-setup-verified-proxy","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-agent","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-agent-code-review","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-drives","via":"inbound"},{"site":"v0","path":"/docs/enterprise","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/compliance","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/limits","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans/pro-plan","via":"neighbor"},{"site":"vercel-docs","path":"/docs/production-checklist","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/plans/enterprise/billing","title":"Billing FAQ","summary":"This page covers frequently asked questions around payments, invoices, and billing on the Enterprise plan.","outbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/notifications"},{"site":"vercel-docs","path":"/docs/rbac"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"},{"site":"vercel-docs","path":"/docs/vercel-firewall/attack-mode"},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation"}],"inbound":[{"site":"vercel-docs","path":"/docs/notifications"}],"requires":[{"site":"vercel-docs","path":"/docs/plans"},{"site":"vercel-docs","path":"/docs/plans/enterprise"}],"neighbors":[{"site":"vercel-docs","path":"/docs/plans/pro-plan/billing","distance":0.1087},{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice","distance":0.1672},{"site":"vercel-docs","path":"/docs/plans","distance":0.2214},{"site":"vercel-docs","path":"/docs/integrations/create-integration/billing","distance":0.2256},{"site":"vercel-docs","path":"/docs/pricing","distance":0.2257}],"related":[{"site":"vercel-docs","path":"/docs/plans/pro-plan/billing","via":"neighbor"},{"site":"v0","path":"/docs/account","via":"neighbor"},{"site":"v0","path":"/docs/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/billing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/plans/hobby","title":"Hobby Plan","summary":"Learn about the Hobby plan and how it compares to the Pro plan.","outbound":[{"site":"vercel-docs","path":"/docs/activity-log"},{"site":"vercel-docs","path":"/docs/analytics/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/builds/managing-builds"},{"site":"vercel-docs","path":"/docs/comments"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/sharable-links"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/password-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication"},{"site":"vercel-docs","path":"/docs/drains/using-drains"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/global-config/using-global-config"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/limits/fair-use-guidelines"},{"site":"vercel-docs","path":"/docs/logs/runtime"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/trials"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"},{"site":"vercel-docs","path":"/docs/speed-insights"},{"site":"vercel-docs","path":"/docs/speed-insights/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/spend-management"},{"site":"vercel-docs","path":"/docs/storage"},{"site":"vercel-docs","path":"/docs/vercel-firewall/attack-mode"},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/ip-blocking"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"},{"site":"vercel-docs","path":"/docs/workflows/pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/analytics/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/builds/managing-builds"},{"site":"vercel-docs","path":"/docs/connect/observability"},{"site":"vercel-docs","path":"/docs/connect/pricing"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-project-collaboration"},{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing"},{"site":"vercel-docs","path":"/docs/logs/runtime"},{"site":"vercel-docs","path":"/docs/plans"},{"site":"vercel-docs","path":"/docs/sandbox/pricing"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/system-bypass-rules"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-account-deployment-blocked"}],"requires":[{"site":"vercel-docs","path":"/docs/plans"}],"neighbors":[{"site":"vercel-docs","path":"/docs/plans/pro-plan","distance":0.0927},{"site":"vercel-docs","path":"/docs/plans/pro-plan/trials","distance":0.1208},{"site":"vercel-docs","path":"/docs/plans","distance":0.1656},{"site":"vercel-docs","path":"/docs/pricing","distance":0.2178},{"site":"vercel-docs","path":"/docs/plans/pro-plan/billing","distance":0.2225}],"related":[{"site":"vercel-kb","path":"/kb/guide/why-is-my-account-deployment-blocked","via":"inbound"},{"site":"vercel-docs","path":"/docs/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/billing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability/observability-plus","via":"neighbor"},{"site":"vercel-docs","path":"/docs/accounts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/free-domain-with-pro","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/plans/pro-plan","title":"Pro Plan","summary":"Learn about the Vercel Pro plan with credit-based billing, free viewer seats, and self-serve enterprise features for professional teams.","outbound":[{"site":"vercel-docs","path":"/docs/analytics/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/builds/managing-builds"},{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployments/preview-deployment-suffix"},{"site":"vercel-docs","path":"/docs/domains/free-domain-with-pro"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/transfer-your-domain"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/trials"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"},{"site":"vercel-docs","path":"/docs/rbac/access-roles/team-level-roles"},{"site":"vercel-docs","path":"/docs/rbac/managing-team-members"},{"site":"vercel-docs","path":"/docs/saml"},{"site":"vercel-docs","path":"/docs/security/compliance"},{"site":"vercel-docs","path":"/docs/speed-insights"},{"site":"vercel-docs","path":"/docs/spend-management"},{"site":"vercel-docs","path":"/docs/storage"}],"inbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools"},{"site":"vercel-docs","path":"/docs/analytics/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/connect/pricing"},{"site":"vercel-docs","path":"/docs/cron-jobs/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-project-collaboration"},{"site":"vercel-docs","path":"/docs/domains/free-domain-with-pro"},{"site":"vercel-docs","path":"/docs/domains/troubleshooting"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains"},{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/drains/using-drains"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/image-optimization/legacy-pricing"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-product"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/logs/runtime"},{"site":"vercel-docs","path":"/docs/networking/static-ips/getting-started"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"},{"site":"vercel-docs","path":"/docs/plans"},{"site":"vercel-docs","path":"/docs/plans/hobby"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/billing"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/trials"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/arn1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/bom1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cdg1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cle1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cpt1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dxb1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/fra1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/gru1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hkg1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hnd1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/iad1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/icn1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/kix1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/lhr1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/pdx1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sin1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/syd1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/yul1"},{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice"},{"site":"vercel-docs","path":"/docs/production-checklist"},{"site":"vercel-docs","path":"/docs/query/monitoring"},{"site":"vercel-docs","path":"/docs/query/monitoring/quickstart"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"},{"site":"vercel-docs","path":"/docs/rbac/access-roles/team-level-roles"},{"site":"vercel-docs","path":"/docs/sandbox/pricing"},{"site":"vercel-docs","path":"/docs/spend-management"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/system-bypass-rules"},{"site":"vercel-docs","path":"/docs/webhooks"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-ownership-of-a-vercel-team"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-account-deployment-blocked"}],"requires":[{"site":"vercel-docs","path":"/docs/plans"}],"neighbors":[{"site":"vercel-docs","path":"/docs/plans/hobby","distance":0.0927},{"site":"vercel-docs","path":"/docs/plans/pro-plan/trials","distance":0.1569},{"site":"vercel-docs","path":"/docs/plans","distance":0.1643},{"site":"vercel-docs","path":"/docs/plans/pro-plan/billing","distance":0.1743},{"site":"vercel-docs","path":"/docs/domains/free-domain-with-pro","distance":0.1941}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-ownership-of-a-vercel-team","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-account-deployment-blocked","via":"inbound"},{"site":"vercel-docs","path":"/docs/plans/hobby","via":"neighbor"},{"site":"v0","path":"/docs/teams","via":"neighbor"},{"site":"vercel-docs","path":"/docs/accounts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/limits/fair-use-guidelines","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans/enterprise","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/plans/pro-plan/billing","title":"Billing FAQ","summary":"This page covers frequently asked questions around payments, invoices, and billing on the Pro plan.","outbound":[{"site":"vercel-docs","path":"/docs/notifications"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"},{"site":"vercel-docs","path":"/docs/vercel-firewall/attack-mode"},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation"}],"inbound":[{"site":"vercel-docs","path":"/docs/plans/pro-plan/trials"}],"requires":[{"site":"vercel-docs","path":"/docs/plans"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"}],"neighbors":[{"site":"vercel-docs","path":"/docs/plans/enterprise/billing","distance":0.1087},{"site":"vercel-docs","path":"/docs/plans/pro-plan","distance":0.1743},{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice","distance":0.1755},{"site":"vercel-docs","path":"/docs/pricing","distance":0.177},{"site":"vercel-docs","path":"/docs/plans","distance":0.1871}],"related":[{"site":"vercel-docs","path":"/docs/plans/enterprise/billing","via":"neighbor"},{"site":"v0","path":"/docs/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans/hobby","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/trials","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/billing","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/plans/pro-plan/trials","title":"Pro Plan Trial","summary":"Learn all about Vercel's Pro Plan free trial, including features, usage limits, and options post-trial. Learn how to manage your team's projects with Vercel's Pro Plan trial.","outbound":[{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/billing"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage"},{"site":"vercel-docs","path":"/docs/webhooks"}],"inbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/analytics/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication"},{"site":"vercel-docs","path":"/docs/domains/free-domain-with-pro"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains"},{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing"},{"site":"vercel-docs","path":"/docs/image-optimization/legacy-pricing"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/plans/hobby"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-ownership-of-a-vercel-team"}],"requires":[{"site":"vercel-docs","path":"/docs/plans"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"}],"neighbors":[{"site":"vercel-docs","path":"/docs/plans/hobby","distance":0.1208},{"site":"vercel-docs","path":"/docs/plans/pro-plan","distance":0.1569},{"site":"vercel-docs","path":"/docs/plans","distance":0.2088},{"site":"vercel-docs","path":"/docs/plans/pro-plan/billing","distance":0.2353},{"site":"vercel-docs","path":"/docs/observability/observability-plus","distance":0.2494}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-ownership-of-a-vercel-team","via":"inbound"},{"site":"vercel-docs","path":"/docs/plans/hobby","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/free-domain-with-pro","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/limits-and-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/limits/fair-use-guidelines","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/platforms","title":"Vercel for Platforms","summary":"Build platforms that serve multiple customers from a single codebase, with custom domains, wildcard subdomains, and automatic SSL.","outbound":[{"site":"vercel-docs","path":"/docs/platforms/examples/multi-tenant-template"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/concepts"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/concepts"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/claim-deployment"},{"site":"vercel-docs","path":"/docs/rest-api/sdk"}],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms","distance":0.1145},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/concepts","distance":0.1169},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms","distance":0.1462},{"site":"vercel-docs","path":"/docs/platforms/examples","distance":0.1609},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/reference","distance":0.162}],"related":[{"site":"vercel-kb","path":"/kb/guide/nextjs-multi-tenant-application","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/platforms/examples","title":"Examples","summary":"Clone working multi-tenant and multi-project starters to begin your platform build.","outbound":[{"site":"vercel-docs","path":"/docs/platforms/examples/multi-tenant-template"},{"site":"vercel-docs","path":"/docs/platforms/examples/oss-coding-agent"},{"site":"vercel-docs","path":"/docs/platforms/examples/platform-template"}],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/platforms"}],"neighbors":[{"site":"vercel-docs","path":"/docs/platforms","distance":0.1609},{"site":"vercel-docs","path":"/docs/platforms/examples/multi-tenant-template","distance":0.1868},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms","distance":0.194},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/concepts","distance":0.2051},{"site":"vercel-docs","path":"/docs/platforms/examples/platform-template","distance":0.2279}],"related":[{"site":"vercel-kb","path":"/kb/guide/nextjs-multi-tenant-application","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-express-starter-template","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-fastapi-starter-template","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/quickstart","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/platforms/examples/multi-tenant-template","title":"Multi-Tenant Template","summary":"Build SaaS applications that serve multiple domains from a single Next.js codebase.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/platforms"},{"site":"vercel-docs","path":"/docs/platforms/examples"}],"requires":[{"site":"vercel-docs","path":"/docs/platforms"},{"site":"vercel-docs","path":"/docs/platforms/examples"}],"neighbors":[{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/concepts","distance":0.1322},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms","distance":0.1375},{"site":"vercel-kb","path":"/kb/guide/nextjs-multi-tenant-application","distance":0.171},{"site":"vercel-docs","path":"/docs/platforms","distance":0.1829},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/middleware-and-routing","distance":0.1867}],"related":[{"site":"vercel-kb","path":"/kb/guide/nextjs-multi-tenant-application","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/middleware-and-routing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/concepts","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/platforms/examples/oss-coding-agent","title":"OSS Coding Agent","summary":"Build and deploy your own AI-powered coding platform with Vercel Sandboxes.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/platforms/examples"}],"requires":[{"site":"vercel-docs","path":"/docs/platforms"},{"site":"vercel-docs","path":"/docs/platforms/examples"}],"neighbors":[{"site":"vercel-docs","path":"/docs/platforms/examples/platform-template","distance":0.1868},{"site":"vercel-kb","path":"/kb/guide/running-ai-generated-code-sandbox","distance":0.2447},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/openai-sdk","distance":0.25},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","distance":0.2522},{"site":"vercel-kb","path":"/kb/guide/how-to-execute-ai-generated-code-safely","distance":0.2583}],"related":[{"site":"vercel-kb","path":"/kb/guide/running-ai-generated-code-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-execute-ai-generated-code-safely","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-on-demand-voice-agent-with-vercel-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel","via":"neighbor"},{"site":"v0","path":"/docs/text-prompting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/examples/platform-template","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/platforms/examples/platform-template","title":"Platform Template","summary":"Build an AI app builder on Vercel with sandboxes, AI Gateway, deployments, and project transfers.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/platforms/examples"}],"requires":[{"site":"vercel-docs","path":"/docs/platforms"},{"site":"vercel-docs","path":"/docs/platforms/examples"}],"neighbors":[{"site":"vercel-docs","path":"/docs/platforms/examples/oss-coding-agent","distance":0.1868},{"site":"vercel-docs","path":"/docs/platforms","distance":0.2034},{"site":"vercel-docs","path":"/docs/platforms/examples","distance":0.2279},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","distance":0.2391},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/quickstart","distance":0.2404}],"related":[{"site":"vercel-kb","path":"/kb/guide/build-with-a-nitro-starter-template","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nestjs-app-on-vercel","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/run-and-track-deploys-from-slack","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-fastapi-starter-template","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/examples/oss-coding-agent","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/examples/multi-tenant-template","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms","title":"Multi-Project Platforms","summary":"Give each customer its own Vercel project and deployment, created and managed programmatically with the Vercel SDK.","outbound":[{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/concepts"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/quickstart"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/reference"}],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/platforms"}],"neighbors":[{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/concepts","distance":0.1028},{"site":"vercel-docs","path":"/docs/platforms","distance":0.1462},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms","distance":0.1534},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/reference","distance":0.1628},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/quickstart","distance":0.214}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-can-i-serve-multiple-projects-under-a-single-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/nextjs-multi-tenant-application","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/examples","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/quickstart","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/concepts","title":"Concepts","summary":"Understand projects, deployments, domains, and architecture for multi-project platforms on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/quickstart"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/reference"}],"inbound":[{"site":"vercel-docs","path":"/docs/platforms"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/reference"}],"requires":[{"site":"vercel-docs","path":"/docs/platforms"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms"}],"neighbors":[{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/reference","distance":0.0835},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms","distance":0.1028},{"site":"vercel-docs","path":"/docs/platforms","distance":0.1169},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/quickstart","distance":0.1482},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms","distance":0.1529}],"related":[{"site":"vercel-kb","path":"/kb/guide/nextjs-multi-tenant-application","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-serve-multiple-projects-under-a-single-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/examples","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/quickstart","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/quickstart","title":"Quickstart","summary":"Programmatically host code for user-generated or AI-generated applications on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/actions/deploy-files"},{"site":"vercel-docs","path":"/docs/rest-api/aliases/assign-an-alias"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/create-a-new-deployment"},{"site":"vercel-docs","path":"/docs/rest-api/projects/add-a-domain-to-a-project"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-a-new-project"},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-protection-bypass-for-automation"},{"site":"vercel-docs","path":"/docs/routing-middleware"}],"inbound":[{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/concepts"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/reference"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/actions/deploy-files"}],"requires":[{"site":"vercel-docs","path":"/docs/platforms"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms"}],"neighbors":[{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/concepts","distance":0.1482},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/reference","distance":0.175},{"site":"vercel-docs","path":"/docs/platforms","distance":0.187},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/quickstart","distance":0.2088},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms","distance":0.214}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-can-i-serve-multiple-projects-under-a-single-domain","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/nextjs-multi-tenant-application","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/reference","title":"Reference","summary":"API reference, error codes, troubleshooting, and FAQ for multi-project platforms on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/concepts"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/quickstart"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/actions/deploy-files"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/deploy-popover"},{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/create-a-new-deployment"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-a-new-project"},{"site":"vercel-docs","path":"/docs/rest-api/sdk"}],"inbound":[{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/concepts"}],"requires":[{"site":"vercel-docs","path":"/docs/platforms"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms"}],"neighbors":[{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/concepts","distance":0.0835},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/reference","distance":0.1472},{"site":"vercel-docs","path":"/docs/platforms","distance":0.162},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms","distance":0.1628},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/quickstart","distance":0.175}],"related":[{"site":"vercel-kb","path":"/kb/guide/nextjs-multi-tenant-application","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/managing-projects","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms","title":"Multi-Tenant Platforms","summary":"Serve multiple customers from a single codebase and deployment, routing each tenant by subdomain or custom domain.","outbound":[{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/concepts"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/custom-subpaths"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/limits"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/middleware-and-routing"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/preview-url-prefixes"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/quickstart"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/reference"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/serving-static-files"}],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/platforms"}],"neighbors":[{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/concepts","distance":0.09},{"site":"vercel-docs","path":"/docs/platforms","distance":0.1145},{"site":"vercel-docs","path":"/docs/platforms/examples/multi-tenant-template","distance":0.1375},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/quickstart","distance":0.1477},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/concepts","distance":0.1529}],"related":[{"site":"vercel-kb","path":"/kb/guide/nextjs-multi-tenant-application","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/examples/multi-tenant-template","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/examples","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/reference","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/concepts","title":"Concepts","summary":"Understand tenants, domains, routing, and architecture for building multi-tenant applications on Vercel for Platforms.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/platforms"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms"}],"requires":[{"site":"vercel-docs","path":"/docs/platforms"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms"}],"neighbors":[{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms","distance":0.09},{"site":"vercel-docs","path":"/docs/platforms/examples/multi-tenant-template","distance":0.1322},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/middleware-and-routing","distance":0.1333},{"site":"vercel-kb","path":"/kb/guide/nextjs-multi-tenant-application","distance":0.1621},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/quickstart","distance":0.1632}],"related":[{"site":"vercel-kb","path":"/kb/guide/nextjs-multi-tenant-application","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/examples/multi-tenant-template","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/middleware-and-routing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/reference","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","title":"Configuring Domains","summary":"Add, verify, redirect, and remove wildcard and custom domains for a multi-tenant application using the Vercel SDK.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata"},{"site":"vercel-docs","path":"/docs/domains/working-with-nameservers"},{"site":"vercel-docs","path":"/docs/rest-api/sdk"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-vercel-deployment-url-being-shortened"}],"inbound":[{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/quickstart"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/actions/add-custom-domain"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/custom-domain"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/dns-table"}],"requires":[{"site":"vercel-docs","path":"/docs/platforms"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms"}],"neighbors":[{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/quickstart","distance":0.1041},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/reference","distance":0.1103},{"site":"vercel-kb","path":"/kb/guide/nextjs-multi-tenant-application","distance":0.1324},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","distance":0.1392},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","distance":0.1501}],"related":[{"site":"vercel-kb","path":"/kb/guide/nextjs-multi-tenant-application","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/a-record-and-caa-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/limits","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/custom-subpaths","title":"Custom Subpaths","summary":"Host platform content on custom subpaths of customer domains while maintaining a single Next.js application.","outbound":[{"site":"nextjs","path":"/docs/app/getting-started/proxy"}],"inbound":[{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms"}],"requires":[{"site":"vercel-docs","path":"/docs/platforms"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms"}],"neighbors":[{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms","distance":0.2389},{"site":"vercel-docs","path":"/docs/platforms","distance":0.2557},{"site":"vercel-docs","path":"/docs/platforms/examples/multi-tenant-template","distance":0.2688},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/middleware-and-routing","distance":0.2704},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/concepts","distance":0.276}],"related":[{"site":"vercel-kb","path":"/kb/guide/nextjs-multi-tenant-application","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-serve-multiple-projects-under-a-single-domain","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/avoiding-duplicate-content-with-vercel-app-urls","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/examples/multi-tenant-template","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/middleware-and-routing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/serving-static-files","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/limits","title":"Limits","summary":"Understand the limits and features available for Vercel for Platforms.","outbound":[{"site":"vercel-docs","path":"/docs/domains/custom-ssl-certificate"},{"site":"vercel-docs","path":"/docs/domains/working-with-nameservers"},{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-vercel-deployment-url-being-shortened"}],"inbound":[{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms"}],"requires":[{"site":"vercel-docs","path":"/docs/platforms"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms"}],"neighbors":[{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/reference","distance":0.147},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","distance":0.1924},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms","distance":0.1991},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/quickstart","distance":0.1999},{"site":"vercel-kb","path":"/kb/guide/nextjs-multi-tenant-application","distance":0.2133}],"related":[{"site":"vercel-kb","path":"/kb/guide/nextjs-multi-tenant-application","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/concepts","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/middleware-and-routing","title":"Proxy and Routing","summary":"Resolve tenants and route requests by subdomain, custom domain, or path using Next.js Proxy on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/functions/runtimes/edge"}],"inbound":[{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms"}],"requires":[{"site":"vercel-docs","path":"/docs/platforms"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms"}],"neighbors":[{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/concepts","distance":0.1333},{"site":"vercel-docs","path":"/docs/platforms/examples/multi-tenant-template","distance":0.1867},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms","distance":0.1933},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/serving-static-files","distance":0.244},{"site":"vercel-kb","path":"/kb/guide/nextjs-multi-tenant-application","distance":0.2466}],"related":[{"site":"vercel-kb","path":"/kb/guide/nextjs-multi-tenant-application","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/examples/multi-tenant-template","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/serving-static-files","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/custom-subpaths","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/quickstart","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/preview-url-prefixes","title":"Multi-tenant Preview URLs","summary":"Test tenant-specific experiences in preview deployments using dynamic URL prefixes.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms"}],"requires":[{"site":"vercel-docs","path":"/docs/platforms"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms"}],"neighbors":[{"site":"vercel-docs","path":"/docs/deployments/preview-deployment-suffix","distance":0.2023},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms","distance":0.2446},{"site":"vercel-kb","path":"/kb/guide/nextjs-multi-tenant-application","distance":0.2663},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/middleware-and-routing","distance":0.2721},{"site":"vercel-docs","path":"/docs/deployments/generated-urls","distance":0.2724}],"related":[{"site":"vercel-kb","path":"/kb/guide/nextjs-multi-tenant-application","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/preview-deployment-suffix-without-vercel-nameservers","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-do-my-vercel-deployments-have-multiple-domains","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/are-vercel-preview-deployment-indexed-by-search-engines","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/preview-deployment-suffix","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/middleware-and-routing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/quickstart","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/quickstart","title":"Quickstart","summary":"Set up wildcard domains, custom domains, domain verification, and redirects for a multi-tenant application on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/domains/working-with-nameservers"},{"site":"vercel-docs","path":"/docs/rest-api/sdk"}],"inbound":[{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms"}],"requires":[{"site":"vercel-docs","path":"/docs/platforms"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms"}],"neighbors":[{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","distance":0.1041},{"site":"vercel-kb","path":"/kb/guide/nextjs-multi-tenant-application","distance":0.1268},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/reference","distance":0.1439},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms","distance":0.1477},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/concepts","distance":0.1632}],"related":[{"site":"vercel-kb","path":"/kb/guide/nextjs-multi-tenant-application","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/limits","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/examples/multi-tenant-template","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/reference","title":"Reference","summary":"Reference for the Vercel domain API, error codes, troubleshooting, and FAQ for multi-tenant platforms.","outbound":[{"site":"vercel-docs","path":"/docs/platforms/platform-elements/actions/add-custom-domain"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/custom-domain"},{"site":"vercel-docs","path":"/docs/rest-api/domains/add-an-existing-domain-to-the-vercel-platform"},{"site":"vercel-docs","path":"/docs/rest-api/domains/get-a-domain-s-configuration"},{"site":"vercel-docs","path":"/docs/rest-api/domains/get-information-for-a-single-domain"},{"site":"vercel-docs","path":"/docs/rest-api/domains/list-all-the-domains"},{"site":"vercel-docs","path":"/docs/rest-api/domains/remove-a-domain-by-name"}],"inbound":[{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms"}],"requires":[{"site":"vercel-docs","path":"/docs/platforms"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms"}],"neighbors":[{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","distance":0.1103},{"site":"vercel-kb","path":"/kb/guide/nextjs-multi-tenant-application","distance":0.1244},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/quickstart","distance":0.1439},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/limits","distance":0.147},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/reference","distance":0.1472}],"related":[{"site":"vercel-kb","path":"/kb/guide/nextjs-multi-tenant-application","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/limits","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/concepts","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/serving-static-files","title":"Serving Static Files","summary":"Serve tenant-specific static files like robots.txt, sitemap.xml, and llms.txt dynamically using route handlers.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata"},{"site":"nextjs","path":"/docs/app/getting-started/proxy"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge"},{"site":"vercel-docs","path":"/docs/vercel-blob"}],"inbound":[{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms"}],"requires":[{"site":"vercel-docs","path":"/docs/platforms"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms"}],"neighbors":[{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/middleware-and-routing","distance":0.244},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/concepts","distance":0.2863},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms","distance":0.2938},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/custom-subpaths","distance":0.2944},{"site":"vercel-docs","path":"/docs/platforms/examples/multi-tenant-template","distance":0.3}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-serve-documentation-for-agents","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-files-in-serverless-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/middleware-and-routing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/custom-subpaths","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn","via":"neighbor"},{"site":"vercel-docs","path":"/docs/build-output-api/features","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/platforms/platform-elements","title":"Platform Elements","summary":"Prebuilt server actions and UI blocks you can install to speed up common platform tasks.","outbound":[{"site":"vercel-docs","path":"/docs/platforms/platform-elements/actions"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks"}],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/platforms"}],"neighbors":[{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks","distance":0.1542},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/actions","distance":0.185},{"site":"vercel-docs","path":"/docs/platforms","distance":0.2501},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/actions/add-custom-domain","distance":0.2856},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/claim-deployment","distance":0.2938}],"related":[{"site":"vercel-docs","path":"/docs/platforms/examples/platform-template","via":"neighbor"},{"site":"vercel-docs","path":"/docs/products","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/examples","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/actions","title":"Actions","summary":"Server actions you can install to run common platform tasks against the Vercel API.","outbound":[{"site":"vercel-docs","path":"/docs/platforms/platform-elements/actions/add-custom-domain"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/actions/deploy-files"}],"inbound":[{"site":"vercel-docs","path":"/docs/platforms/platform-elements"}],"requires":[{"site":"vercel-docs","path":"/docs/platforms"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements"}],"neighbors":[{"site":"vercel-docs","path":"/docs/platforms/platform-elements","distance":0.185},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/actions/add-custom-domain","distance":0.2066},{"site":"vercel-docs","path":"/docs/integrations/create-integration/deployment-integration-action","distance":0.2659},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/actions/deploy-files","distance":0.3013},{"site":"vercel-docs","path":"/docs/rest-api/deployments/update-deployment-integration-action","distance":0.3122}],"related":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/deployment-integration-action","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/update-deployment-integration-action","via":"neighbor"},{"site":"vercel-docs","path":"/docs/products","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/invoice-actions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/actions/add-custom-domain","title":"Add Custom Domain","summary":"Server action for programmatically adding custom domains to Vercel projects.","outbound":[{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/custom-domain"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/dns-table"}],"inbound":[{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/reference"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/actions"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/custom-domain"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/dns-table"}],"requires":[{"site":"vercel-docs","path":"/docs/platforms"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements"}],"neighbors":[{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/custom-domain","distance":0.154},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","distance":0.198},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","distance":0.2042},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/actions","distance":0.2066},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","distance":0.2275}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","via":"neighbor"},{"site":"v0","path":"/docs/custom-domains","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-domain-using-the-vercel-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain-to-environment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains/add-an-existing-domain-to-the-vercel-platform","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/add-a-domain-to-a-project","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/actions/deploy-files","title":"Deploy Files","summary":"Server action for programmatically deploying files to Vercel on behalf of platform users.","outbound":[{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/quickstart"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/claim-deployment"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/deploy-popover"}],"inbound":[{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/quickstart"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/reference"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/actions"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/claim-deployment"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/deploy-popover"}],"requires":[{"site":"vercel-docs","path":"/docs/platforms"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements"}],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/deployments/upload-deployment-files","distance":0.2481},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/claim-deployment","distance":0.2594},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/deploy-popover","distance":0.2768},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployment-files","distance":0.2775},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/actions","distance":0.3013}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/deployments/upload-deployment-files","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployment-files","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploy","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks","title":"Blocks","summary":"Prebuilt UI components for common platform flows like claiming deployments and managing domains.","outbound":[{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/claim-deployment"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/custom-domain"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/deploy-popover"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/dns-table"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/report-abuse"}],"inbound":[{"site":"vercel-docs","path":"/docs/platforms/platform-elements"}],"requires":[{"site":"vercel-docs","path":"/docs/platforms"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements"}],"neighbors":[{"site":"vercel-docs","path":"/docs/platforms/platform-elements","distance":0.1542},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/claim-deployment","distance":0.2254},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/custom-domain","distance":0.2626},{"site":"vercel-docs","path":"/docs/platforms","distance":0.2949},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/dns-table","distance":0.3008}],"related":[{"site":"vercel-docs","path":"/docs/platforms/platform-elements/actions/add-custom-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/products","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/actions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/examples","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/claim-deployment","title":"Claim Deployment","summary":"A component for users to claim ownership of Vercel deployments created on their behalf.","outbound":[{"site":"vercel-docs","path":"/docs/platforms/platform-elements/actions/deploy-files"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/deploy-popover"}],"inbound":[{"site":"vercel-docs","path":"/docs/platforms"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/actions/deploy-files"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/deploy-popover"}],"requires":[{"site":"vercel-docs","path":"/docs/platforms"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements"}],"neighbors":[{"site":"vercel-docs","path":"/docs/deployments/claim-deployments","distance":0.2035},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/deploy-popover","distance":0.2103},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks","distance":0.2254},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/actions/deploy-files","distance":0.2594},{"site":"vercel-docs","path":"/docs/platforms/platform-elements","distance":0.2938}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-agents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/claim-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/examples/platform-template","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/custom-domain","title":"Custom Domain","summary":"A complete domain management interface with DNS verification and real-time status tracking.","outbound":[{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/actions/add-custom-domain"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/dns-table"}],"inbound":[{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/reference"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/actions/add-custom-domain"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/dns-table"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/report-abuse"}],"requires":[{"site":"vercel-docs","path":"/docs/platforms"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements"}],"neighbors":[{"site":"vercel-docs","path":"/docs/platforms/platform-elements/actions/add-custom-domain","distance":0.154},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/dns-table","distance":0.182},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","distance":0.2256},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","distance":0.2355},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","distance":0.2373}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/deploy-popover","title":"Deploy Popover","summary":"A popover interface for deploying files to Vercel with real-time status tracking.","outbound":[{"site":"vercel-docs","path":"/docs/platforms/platform-elements/actions/deploy-files"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/claim-deployment"}],"inbound":[{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/reference"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/actions/deploy-files"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/claim-deployment"}],"requires":[{"site":"vercel-docs","path":"/docs/platforms"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements"}],"neighbors":[{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/claim-deployment","distance":0.2103},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/actions/deploy-files","distance":0.2768},{"site":"vercel-docs","path":"/docs/deployments","distance":0.3065},{"site":"vercel-docs","path":"/docs/drop","distance":0.3197},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments","distance":0.3238}],"related":[{"site":"v0","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/run-and-track-deploys-from-slack","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drop","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/upload-deployment-files","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/dns-table","title":"DNS Table","summary":"A DNS record display component with one-click copying for guiding users through domain configuration.","outbound":[{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/actions/add-custom-domain"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/custom-domain"}],"inbound":[{"site":"vercel-docs","path":"/docs/platforms/platform-elements/actions/add-custom-domain"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/custom-domain"}],"requires":[{"site":"vercel-docs","path":"/docs/platforms"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements"}],"neighbors":[{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/custom-domain","distance":0.182},{"site":"vercel-docs","path":"/docs/domains/working-with-dns","distance":0.2976},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks","distance":0.3008},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","distance":0.3131},{"site":"vercel-docs","path":"/docs/cli/dns","distance":0.3257}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-dns","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/dns","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/dns/create-a-dns-record","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/report-abuse","title":"Report Abuse","summary":"A content moderation interface for reporting abuse with categorization, validation, and privacy-focused design.","outbound":[{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/custom-domain"}],"inbound":[{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks"}],"requires":[{"site":"vercel-docs","path":"/docs/platforms"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements"}],"neighbors":[{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks","distance":0.3633},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/custom-domain","distance":0.3771},{"site":"vercel-docs","path":"/docs/platforms/platform-elements","distance":0.4048},{"site":"chat-sdk","path":"/docs/modals","distance":0.4139},{"site":"vercel-docs","path":"/docs/analytics/redacting-sensitive-data","distance":0.4244}],"related":[{"site":"chat-sdk","path":"/docs/modals","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/triage-form-submissions-with-chat-sdk","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-report-web-vitals","via":"neighbor"},{"site":"chat-sdk","path":"/docs/cards","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-report-web-vitals","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/client-side-error-reports-with-uriports-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/redacting-sensitive-data","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/claim-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/botid/get-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/dns-table","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/accessibility-audit-tool","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/pricing","title":"Pricing","summary":"Learn about Vercel's pricing model, including the resources and services that are billed, and how they are priced.","outbound":[{"site":"vercel-docs","path":"/docs/analytics/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/builds/managing-builds"},{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployments/generated-urls"},{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/global-config/global-config-limits"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/microfrontends"},{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/pricing/how-does-vercel-calculate-usage-of-resources"},{"site":"vercel-docs","path":"/docs/pricing/legacy"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"},{"site":"vercel-docs","path":"/docs/pricing/taxes"},{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice"},{"site":"vercel-docs","path":"/docs/query/monitoring/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/routing/redirects/bulk-redirects"},{"site":"vercel-docs","path":"/docs/saml"},{"site":"vercel-docs","path":"/docs/security/compliance"},{"site":"vercel-docs","path":"/docs/speed-insights"},{"site":"vercel-docs","path":"/docs/speed-insights/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/analytics/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/builds/build-queues"},{"site":"vercel-docs","path":"/docs/builds/managing-builds"},{"site":"vercel-docs","path":"/docs/deployments/preview-deployment-suffix"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/billing"},{"site":"vercel-docs","path":"/docs/pricing/how-does-vercel-calculate-usage-of-resources"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/arn1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/bom1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cdg1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cle1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cpt1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dxb1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/fra1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/gru1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hkg1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hnd1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/iad1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/icn1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/kix1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/lhr1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/pdx1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sin1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/syd1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/yul1"},{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice"},{"site":"vercel-docs","path":"/docs/queues/pricing"},{"site":"vercel-docs","path":"/docs/services/pricing"},{"site":"vercel-docs","path":"/docs/spend-management"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","distance":0.1361},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/pdx1","distance":0.1714},{"site":"vercel-docs","path":"/docs/plans","distance":0.1731},{"site":"vercel-docs","path":"/docs/plans/pro-plan/billing","distance":0.177},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1","distance":0.1773}],"related":[{"site":"vercel-docs","path":"/docs/plans","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/billing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds/build-queues","via":"inbound"},{"site":"vercel-docs","path":"/docs/deployments/preview-deployment-suffix","via":"inbound"},{"site":"vercel-docs","path":"/docs/glossary","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/pricing/how-does-vercel-calculate-usage-of-resources","title":"Calculating Usage of Resources","summary":"Understand how Vercel measures and calculates your resource usage based on a typical user journey.","outbound":[{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/marketplace-storage"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage"},{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice"},{"site":"vercel-docs","path":"/docs/routing-middleware"}],"inbound":[{"site":"vercel-docs","path":"/docs/plans"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage"},{"site":"vercel-docs","path":"/docs/spend-management"}],"requires":[{"site":"vercel-docs","path":"/docs/pricing"}],"neighbors":[{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","distance":0.1846},{"site":"vercel-docs","path":"/docs/pricing","distance":0.193},{"site":"vercel-docs","path":"/docs/manage-cdn-usage","distance":0.2428},{"site":"vercel-docs","path":"/docs/cdn","distance":0.2556},{"site":"vercel-docs","path":"/docs/speed-insights/managing-usage","distance":0.2572}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-revalidation-costs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-effectively-load-test-your-vercel-application","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/managing-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/image-optimization/managing-image-optimization-costs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/pricing/legacy","title":"Legacy Metrics","summary":"Learn about legacy usage metrics, including Bandwidth, Requests, Vercel Function Invocations, and Vercel Function Execution.","outbound":[{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"}],"inbound":[{"site":"vercel-docs","path":"/docs/pricing"}],"requires":[{"site":"vercel-docs","path":"/docs/pricing"}],"neighbors":[{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","distance":0.2399},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing","distance":0.2513},{"site":"vercel-docs","path":"/docs/analytics/accessing-metrics-with-vercel-cli","distance":0.2887},{"site":"vercel-docs","path":"/docs/observability/insights","distance":0.2903},{"site":"vercel-docs","path":"/docs/manage-cdn-usage","distance":0.3008}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/accessing-metrics-with-vercel-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability/insights","via":"neighbor"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","title":"Manage and Optimize Usage","summary":"Understand how to manage and optimize your usage on Vercel, learn how to track your usage, set up alerts, and optimize your usage to save costs.","outbound":[{"site":"vercel-docs","path":"/docs/builds/managing-builds"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/global-config/global-config-limits"},{"site":"vercel-docs","path":"/docs/image-optimization/managing-image-optimization-costs"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability"},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching"},{"site":"vercel-docs","path":"/docs/notifications"},{"site":"vercel-docs","path":"/docs/pricing/how-does-vercel-calculate-usage-of-resources"},{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice"}],"inbound":[{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/monorepos/turborepo"},{"site":"vercel-docs","path":"/docs/notifications"},{"site":"vercel-docs","path":"/docs/plans"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/trials"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/how-does-vercel-calculate-usage-of-resources"},{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice"},{"site":"vercel-docs","path":"/docs/production-checklist"},{"site":"vercel-docs","path":"/docs/spend-management"},{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute"}],"requires":[{"site":"vercel-docs","path":"/docs/pricing"}],"neighbors":[{"site":"vercel-docs","path":"/docs/pricing","distance":0.1361},{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability","distance":0.1601},{"site":"vercel-docs","path":"/docs/pricing/how-does-vercel-calculate-usage-of-resources","distance":0.1846},{"site":"vercel-docs","path":"/docs/plans","distance":0.1933},{"site":"vercel-docs","path":"/docs/speed-insights/limits-and-pricing","distance":0.1962}],"related":[{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute","via":"inbound"},{"site":"vercel-docs","path":"/docs/plans","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/limits-and-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/managing-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing","title":"Regional Pricing","summary":"Vercel pricing for Managed Infrastructure resources in different regions.","outbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/arn1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/bom1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cdg1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cle1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cpt1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dxb1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/fra1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/gru1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hkg1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hnd1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/iad1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/icn1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/kix1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/lhr1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/pdx1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sin1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/syd1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/yul1"},{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice"}],"inbound":[{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-sdk-python"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/limits/fair-use-guidelines"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/networking"},{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/queues/pricing"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/services/pricing"},{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address"},{"site":"vercel-kb","path":"/kb/guide/vercel-services"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway"}],"requires":[{"site":"vercel-docs","path":"/docs/pricing"}],"neighbors":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cpt1","distance":0.1021},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/icn1","distance":0.1056},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1","distance":0.1103},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1","distance":0.1114},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/pdx1","distance":0.1132}],"related":[{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-services","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify","via":"inbound"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache","via":"inbound"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package","via":"inbound"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing","via":"inbound"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing","via":"inbound"},{"site":"vercel-docs","path":"/docs/limits","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/arn1","title":"Stockholm, Sweden \\(arn1\\)","summary":"Vercel pricing for the Stockholm, Sweden \\(arn1\\) region.","outbound":[{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice"},{"site":"vercel-docs","path":"/docs/queues/pricing"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/services/pricing"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/usage-and-pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"requires":[{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"neighbors":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/icn1","distance":0.1011},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/syd1","distance":0.1104},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1","distance":0.1107},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/lhr1","distance":0.1108},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dxb1","distance":0.1123}],"related":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/icn1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/syd1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/lhr1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dxb1","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/bom1","title":"Mumbai, India \\(bom1\\)","summary":"Vercel pricing for the Mumbai, India \\(bom1\\) region.","outbound":[{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice"},{"site":"vercel-docs","path":"/docs/queues/pricing"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/services/pricing"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/usage-and-pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"requires":[{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"neighbors":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dxb1","distance":0.1161},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1","distance":0.1201},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing","distance":0.1206},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1","distance":0.122},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hnd1","distance":0.1222}],"related":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dxb1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hnd1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/lhr1","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cdg1","title":"Paris, France \\(cdg1\\)","summary":"Vercel pricing for the Paris, France \\(cdg1\\) region.","outbound":[{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice"},{"site":"vercel-docs","path":"/docs/queues/pricing"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/services/pricing"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/usage-and-pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"requires":[{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"neighbors":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/yul1","distance":0.1002},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1","distance":0.1016},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/fra1","distance":0.1038},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1","distance":0.1039},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/lhr1","distance":0.105}],"related":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/yul1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/fra1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/lhr1","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cle1","title":"Cleveland, USA \\(cle1\\)","summary":"Vercel pricing for the Cleveland, USA \\(cle1\\) region.","outbound":[{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice"},{"site":"vercel-docs","path":"/docs/queues/pricing"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/services/pricing"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/usage-and-pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"requires":[{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"neighbors":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/pdx1","distance":0.0952},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1","distance":0.1047},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1","distance":0.1051},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/lhr1","distance":0.1125},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/iad1","distance":0.1133}],"related":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/pdx1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/lhr1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/iad1","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cpt1","title":"Cape Town, South Africa \\(cpt1\\)","summary":"Vercel pricing for the Cape Town, South Africa \\(cpt1\\) region.","outbound":[{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice"},{"site":"vercel-docs","path":"/docs/queues/pricing"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/services/pricing"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/usage-and-pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"requires":[{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"neighbors":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/icn1","distance":0.0983},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing","distance":0.1021},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/syd1","distance":0.1091},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cdg1","distance":0.1176},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1","distance":0.1202}],"related":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/icn1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/syd1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cdg1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1","title":"Dublin, Ireland \\(dub1\\)","summary":"Vercel pricing for the Dublin, Ireland \\(dub1\\) region.","outbound":[{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice"},{"site":"vercel-docs","path":"/docs/queues/pricing"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/services/pricing"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/usage-and-pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"requires":[{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"neighbors":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dxb1","distance":0.0739},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/syd1","distance":0.0944},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1","distance":0.0951},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/lhr1","distance":0.0972},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/iad1","distance":0.1007}],"related":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dxb1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/syd1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/lhr1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/iad1","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dxb1","title":"Dubai, UAE \\(dxb1\\)","summary":"Vercel pricing for the Dubai, UAE \\(dxb1\\) region.","outbound":[{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice"},{"site":"vercel-docs","path":"/docs/queues/pricing"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/services/pricing"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/usage-and-pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"requires":[{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"neighbors":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1","distance":0.0739},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/syd1","distance":0.1104},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/arn1","distance":0.1123},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/iad1","distance":0.1157},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/bom1","distance":0.1161}],"related":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/syd1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/arn1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/iad1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/bom1","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/fra1","title":"Frankfurt, Germany \\(fra1\\)","summary":"Vercel pricing for the Frankfurt, Germany \\(fra1\\) region.","outbound":[{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice"},{"site":"vercel-docs","path":"/docs/queues/pricing"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/services/pricing"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/usage-and-pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"requires":[{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"neighbors":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cdg1","distance":0.1038},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1","distance":0.104},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1","distance":0.1106},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hkg1","distance":0.1218},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/lhr1","distance":0.129}],"related":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cdg1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hkg1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/lhr1","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/gru1","title":"São Paulo, Brazil \\(gru1\\)","summary":"Vercel pricing for the São Paulo, Brazil \\(gru1\\) region.","outbound":[{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice"},{"site":"vercel-docs","path":"/docs/queues/pricing"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/services/pricing"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/usage-and-pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"requires":[{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"neighbors":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing","distance":0.1278},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1","distance":0.1282},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cdg1","distance":0.1282},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/icn1","distance":0.1344},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/pdx1","distance":0.1359}],"related":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cdg1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/icn1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/pdx1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/arn1","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hkg1","title":"Hong Kong \\(hkg1\\)","summary":"Vercel pricing for the Hong Kong \\(hkg1\\) region.","outbound":[{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice"},{"site":"vercel-docs","path":"/docs/queues/pricing"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/services/pricing"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/usage-and-pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"requires":[{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"neighbors":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1","distance":0.0999},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1","distance":0.101},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sin1","distance":0.106},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/lhr1","distance":0.1083},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hnd1","distance":0.1097}],"related":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sin1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/lhr1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hnd1","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hnd1","title":"Tokyo, Japan \\(hnd1\\)","summary":"Vercel pricing for the Tokyo, Japan \\(hnd1\\) region.","outbound":[{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice"},{"site":"vercel-docs","path":"/docs/queues/pricing"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/services/pricing"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/usage-and-pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"requires":[{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"neighbors":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/kix1","distance":0.1019},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/lhr1","distance":0.1079},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hkg1","distance":0.1097},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing","distance":0.1155},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cdg1","distance":0.1172}],"related":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/kix1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/lhr1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hkg1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cdg1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/iad1","title":"Washington D.C., USA \\(iad1\\)","summary":"Vercel pricing for the Washington D.C., USA \\(iad1\\) region.","outbound":[{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice"},{"site":"vercel-docs","path":"/docs/queues/pricing"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/services/pricing"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/usage-and-pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"requires":[{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"neighbors":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1","distance":0.093},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/pdx1","distance":0.0997},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1","distance":0.1007},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cdg1","distance":0.1053},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cle1","distance":0.1133}],"related":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/pdx1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cdg1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cle1","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/icn1","title":"Seoul, South Korea \\(icn1\\)","summary":"Vercel pricing for the Seoul, South Korea \\(icn1\\) region.","outbound":[{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice"},{"site":"vercel-docs","path":"/docs/queues/pricing"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/services/pricing"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/usage-and-pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"requires":[{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"neighbors":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cpt1","distance":0.0983},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/arn1","distance":0.1011},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sin1","distance":0.1014},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1","distance":0.1025},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing","distance":0.1056}],"related":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cpt1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/arn1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sin1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/kix1","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/kix1","title":"Osaka, Japan \\(kix1\\)","summary":"Vercel pricing for the Osaka, Japan \\(kix1\\) region.","outbound":[{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice"},{"site":"vercel-docs","path":"/docs/queues/pricing"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/services/pricing"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/usage-and-pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"requires":[{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"neighbors":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hnd1","distance":0.1019},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/icn1","distance":0.1071},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/pdx1","distance":0.1212},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing","distance":0.1227},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/arn1","distance":0.1281}],"related":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hnd1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/icn1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/pdx1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/arn1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/syd1","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/lhr1","title":"London, UK \\(lhr1\\)","summary":"Vercel pricing for the London, UK \\(lhr1\\) region.","outbound":[{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice"},{"site":"vercel-docs","path":"/docs/queues/pricing"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/services/pricing"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/usage-and-pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"requires":[{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"neighbors":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1","distance":0.0972},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cdg1","distance":0.105},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hnd1","distance":0.1079},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hkg1","distance":0.1083},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/arn1","distance":0.1108}],"related":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cdg1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hnd1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hkg1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/arn1","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/pdx1","title":"Portland, USA \\(pdx1\\)","summary":"Vercel pricing for the Portland, USA \\(pdx1\\) region.","outbound":[{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice"},{"site":"vercel-docs","path":"/docs/queues/pricing"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/services/pricing"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/usage-and-pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"requires":[{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"neighbors":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cle1","distance":0.0952},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/iad1","distance":0.0997},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1","distance":0.1037},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1","distance":0.1044},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/syd1","distance":0.1115}],"related":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cle1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/iad1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/syd1","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1","title":"San Francisco, USA \\(sfo1\\)","summary":"Vercel pricing for the San Francisco, USA \\(sfo1\\) region.","outbound":[{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice"},{"site":"vercel-docs","path":"/docs/queues/pricing"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/services/pricing"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/usage-and-pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"requires":[{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"neighbors":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/iad1","distance":0.093},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/syd1","distance":0.0942},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1","distance":0.0951},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hkg1","distance":0.0999},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/pdx1","distance":0.1037}],"related":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/iad1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/syd1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hkg1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/pdx1","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sin1","title":"Singapore \\(sin1\\)","summary":"Vercel pricing for the Singapore \\(sin1\\) region.","outbound":[{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice"},{"site":"vercel-docs","path":"/docs/queues/pricing"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/services/pricing"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/usage-and-pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"requires":[{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"neighbors":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/icn1","distance":0.1014},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hkg1","distance":0.106},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/syd1","distance":0.107},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1","distance":0.1229},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1","distance":0.1246}],"related":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/icn1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hkg1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/syd1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/syd1","title":"Sydney, Australia \\(syd1\\)","summary":"Vercel pricing for the Sydney, Australia \\(syd1\\) region.","outbound":[{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice"},{"site":"vercel-docs","path":"/docs/queues/pricing"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/services/pricing"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/usage-and-pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"requires":[{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"neighbors":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1","distance":0.0942},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1","distance":0.0944},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sin1","distance":0.107},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cpt1","distance":0.1091},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cdg1","distance":0.1092}],"related":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sin1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cpt1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cdg1","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/yul1","title":"Montréal, Canada \\(yul1\\)","summary":"Vercel pricing for the Montréal, Canada \\(yul1\\) region.","outbound":[{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice"},{"site":"vercel-docs","path":"/docs/queues/pricing"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/services/pricing"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/usage-and-pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"requires":[{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"neighbors":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cdg1","distance":0.1002},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/pdx1","distance":0.1163},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1","distance":0.1196},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing","distance":0.1204},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/syd1","distance":0.1204}],"related":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cdg1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/pdx1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/syd1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/pricing/taxes","title":"Taxes","summary":"This page covers frequently asked questions around taxes.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/pricing"}],"requires":[{"site":"vercel-docs","path":"/docs/pricing"}],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/billing","distance":0.3116},{"site":"vercel-docs","path":"/docs/plans/enterprise/billing","distance":0.3229},{"site":"vercel-docs","path":"/docs/pricing","distance":0.3412},{"site":"vercel-docs","path":"/docs/plans/pro-plan/billing","distance":0.3547},{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice","distance":0.3571}],"related":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/billing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans/enterprise/billing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/billing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice","via":"neighbor"},{"site":"vercel-docs","path":"/docs/services/pricing","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice","title":"Billing & Invoices","summary":"Learn how Vercel invoices are structured for Pro and Enterprise plans, including plan charges, credits, and usage-based resources.","outbound":[{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage"}],"inbound":[{"site":"vercel-docs","path":"/docs/plans"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/billing"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/how-does-vercel-calculate-usage-of-resources"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/arn1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/bom1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cdg1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cle1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cpt1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dxb1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/fra1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/gru1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hkg1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hnd1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/iad1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/icn1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/kix1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/lhr1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/pdx1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sin1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/syd1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/yul1"},{"site":"vercel-docs","path":"/docs/spend-management"}],"requires":[{"site":"vercel-docs","path":"/docs/pricing"}],"neighbors":[{"site":"vercel-docs","path":"/docs/plans/enterprise/billing","distance":0.1672},{"site":"vercel-docs","path":"/docs/plans/pro-plan/billing","distance":0.1755},{"site":"vercel-docs","path":"/docs/pricing","distance":0.1957},{"site":"vercel-docs","path":"/docs/integrations/create-integration/billing","distance":0.2134},{"site":"vercel-docs","path":"/docs/plans","distance":0.2427}],"related":[{"site":"vercel-kb","path":"/kb/guide/where-can-i-get-copies-of-my-vercel-invoices","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans/enterprise/billing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/billing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/billing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans","via":"neighbor"},{"site":"vercel-docs","path":"/docs/spend-management","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/production-checklist","title":"Production Checklist","summary":"Ensure your application is ready for launch with this comprehensive production checklist by the Vercel engineering team. Covering operational excellence, security, reliability, performance efficiency, and cost optimization.","outbound":[{"site":"nextjs","path":"/docs/app/getting-started/fonts"},{"site":"nextjs","path":"/docs/app/guides/scripts"},{"site":"vercel-docs","path":"/docs/audit-log"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/cdn-security/security-headers"},{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployments/generated-urls"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments"},{"site":"vercel-docs","path":"/docs/domains/troubleshooting"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain"},{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/memory"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/image-optimization/managing-image-optimization-costs"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/quickstart"},{"site":"vercel-docs","path":"/docs/instant-rollback"},{"site":"vercel-docs","path":"/docs/monorepos/turborepo"},{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"},{"site":"vercel-docs","path":"/docs/package-managers"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"},{"site":"vercel-docs","path":"/docs/saml"},{"site":"vercel-docs","path":"/docs/security/reverse-proxy"},{"site":"vercel-docs","path":"/docs/speed-insights"},{"site":"vercel-docs","path":"/docs/speed-insights/metrics"},{"site":"vercel-docs","path":"/docs/spend-management"},{"site":"vercel-docs","path":"/docs/tracing"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/ip-blocking"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/managed-rulesets"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting"},{"site":"vercel-kb","path":"/kb/guide/what-s-vercel-s-policy-regarding-load-testing-deployments"},{"site":"vercel-kb","path":"/kb/guide/zero-downtime-migration-for-dns"}],"inbound":[{"site":"vercel-docs","path":"/docs/security/shared-responsibility"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","distance":0.2659},{"site":"vercel-docs","path":"/docs/plans/enterprise","distance":0.2737},{"site":"vercel-docs","path":"/docs/observability/insights","distance":0.2743},{"site":"vercel-docs","path":"/docs/pricing","distance":0.2809},{"site":"vercel-docs","path":"/docs/security/compliance","distance":0.2872}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-effectively-load-test-your-vercel-application","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability/insights","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/compliance","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn","via":"neighbor"},{"site":"vercel-docs","path":"/docs/glossary","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/products","title":"Products","summary":"Explore all Vercel products and capabilities.","outbound":[{"site":"vercel-docs","path":"/docs/agent"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-sdk"},{"site":"vercel-docs","path":"/docs/bot-management"},{"site":"vercel-docs","path":"/docs/botid"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/container-registry"},{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/domains"},{"site":"vercel-docs","path":"/docs/flags"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/mcp"},{"site":"vercel-docs","path":"/docs/microfrontends"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/security/compliance"},{"site":"vercel-docs","path":"/docs/storage"},{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"},{"site":"vercel-docs","path":"/docs/workflows"}],"inbound":[{"site":"vercel-docs","path":"/docs/getting-started-with-vercel"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","distance":0.2006},{"site":"vercel-docs","path":"/docs/fundamentals","distance":0.2288},{"site":"vercel-docs","path":"/docs/security","distance":0.238},{"site":"vercel-docs","path":"/docs/integrations","distance":0.2407},{"site":"vercel-docs","path":"/docs/deployments","distance":0.2474}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-agents","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/project-configuration","title":"Project Configuration","summary":"Learn how to configure your Vercel projects using vercel.json, vercel.ts, or the dashboard to control builds, routing, functions, and more.","outbound":[{"site":"vercel-docs","path":"/docs/project-configuration/general-settings"},{"site":"vercel-docs","path":"/docs/project-configuration/git-configuration"},{"site":"vercel-docs","path":"/docs/project-configuration/git-settings"},{"site":"vercel-docs","path":"/docs/project-configuration/global-configuration"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"},{"site":"vercel-docs","path":"/docs/project-configuration/security-settings"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts"}],"inbound":[{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/advanced-configuration"},{"site":"vercel-docs","path":"/docs/fundamentals/builds"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/vercel-api-integrations"},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"},{"site":"vercel-docs","path":"/docs/projects/transferring-projects"},{"site":"vercel-docs","path":"/docs/routing/redirects/configuration-redirects"},{"site":"vercel-docs","path":"/docs/routing/redirects/manage-redirects-at-scale"},{"site":"vercel-kb","path":"/kb/guide/can-i-redirect-from-a-subdomain-to-a-subpath"},{"site":"vercel-kb","path":"/kb/guide/can-i-route-based-on-letter-casing-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-ruby-on-rails-applications"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-increase-the-limit-of-redirects-or-use-dynamic-redirects-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-serve-multiple-projects-under-a-single-domain"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-perform-vercel-redirects-based-on-query-strings"},{"site":"vercel-kb","path":"/kb/guide/how-to-configure-the-cache-control-response-header-in-vercel-projects"},{"site":"vercel-kb","path":"/kb/guide/how-to-enable-cors"},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime"},{"site":"vercel-kb","path":"/kb/guide/how-to-prevent-vercel-github-comments"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","distance":0.1493},{"site":"vercel-docs","path":"/docs/project-configuration/general-settings","distance":0.1774},{"site":"vercel-docs","path":"/docs/project-configuration/global-configuration","distance":0.1889},{"site":"vercel-docs","path":"/docs/project-configuration/security-settings","distance":0.2245},{"site":"vercel-docs","path":"/docs/project-configuration/git-configuration","distance":0.2368}],"related":[{"site":"vercel-kb","path":"/kb/guide/can-i-redirect-from-a-subdomain-to-a-subpath","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/can-i-route-based-on-letter-casing-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-ruby-on-rails-applications","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-increase-the-limit-of-redirects-or-use-dynamic-redirects-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel","via":"inbound"},{"site":"vercel-docs","path":"/docs/cli/global-options","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config/global-config-dashboard","via":"neighbor"},{"site":"vercel-docs","path":"/docs/services/config-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/advanced-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/project","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/project-configuration/general-settings","title":"General Settings","summary":"Configure basic settings for your Vercel project, including the project name, build and development settings, root directory, Node.js version, Project ID, and Vercel Toolbar settings.","outbound":[{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/comments"},{"site":"vercel-docs","path":"/docs/draft-mode"},{"site":"vercel-docs","path":"/docs/edit-mode"},{"site":"vercel-docs","path":"/docs/flags"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/node-js-versions"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/accessibility-audit-tool"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/interaction-timing-tool"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/layout-shift-tool"}],"inbound":[{"site":"vercel-docs","path":"/docs/comments/integrations"},{"site":"vercel-docs","path":"/docs/project-configuration"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"},{"site":"vercel-docs","path":"/docs/projects"},{"site":"vercel-docs","path":"/docs/sandbox/cli-reference"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/authentication"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/firewall"},{"site":"vercel-kb","path":"/kb/guide/firewall-terraform-configuration"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-change-the-name-of-my-vercel-project"}],"requires":[{"site":"vercel-docs","path":"/docs/project-configuration"}],"neighbors":[{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","distance":0.1408},{"site":"vercel-docs","path":"/docs/project-configuration","distance":0.1774},{"site":"vercel-docs","path":"/docs/project-configuration/security-settings","distance":0.2143},{"site":"vercel-docs","path":"/docs/vercel-toolbar","distance":0.2502},{"site":"vercel-docs","path":"/docs/builds/build-features","distance":0.2564}],"related":[{"site":"vercel-kb","path":"/kb/guide/firewall-terraform-configuration","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-change-the-name-of-my-vercel-project","via":"inbound"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/security-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds/build-features","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/project-linking","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/project-configuration/git-configuration","title":"Git Configuration","summary":"Learn how to configure Git for your project through vercel.json or vercel.ts.","outbound":[{"site":"vercel-docs","path":"/docs/git/vercel-for-github"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts"}],"inbound":[{"site":"vercel-docs","path":"/docs/deploy-hooks"},{"site":"vercel-docs","path":"/docs/git/vercel-for-github"},{"site":"vercel-docs","path":"/docs/project-configuration"}],"requires":[{"site":"vercel-docs","path":"/docs/project-configuration"}],"neighbors":[{"site":"vercel-docs","path":"/docs/git/vercel-for-github","distance":0.2063},{"site":"vercel-docs","path":"/docs/project-configuration/git-settings","distance":0.2097},{"site":"vercel-docs","path":"/docs/git","distance":0.2155},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","distance":0.2199},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket","distance":0.2233}],"related":[{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/git-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/system-environment-variables","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/project-configuration/git-settings","title":"Git Settings","summary":"Use the project settings to manage the Git connection, enable Git LFS, and create deploy hooks.","outbound":[{"site":"vercel-docs","path":"/docs/deploy-hooks"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"}],"inbound":[{"site":"vercel-docs","path":"/docs/project-configuration"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"}],"requires":[{"site":"vercel-docs","path":"/docs/project-configuration"}],"neighbors":[{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","distance":0.2072},{"site":"vercel-docs","path":"/docs/project-configuration/git-configuration","distance":0.2097},{"site":"vercel-docs","path":"/docs/git","distance":0.2142},{"site":"vercel-docs","path":"/docs/cli/git","distance":0.2158},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket","distance":0.2331}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-gitlab-pipelines-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-disable-git-notifications-from-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/git-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/git","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/security-settings","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/project-configuration/global-configuration","title":"Global Configuration","summary":"Learn how to configure Vercel CLI under your system user.","outbound":[{"site":"vercel-docs","path":"/docs/accounts"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli/global-options"},{"site":"vercel-docs","path":"/docs/project-configuration"}],"requires":[{"site":"vercel-docs","path":"/docs/project-configuration"}],"neighbors":[{"site":"vercel-docs","path":"/docs/project-configuration","distance":0.1889},{"site":"vercel-docs","path":"/docs/cli/global-options","distance":0.1933},{"site":"vercel-docs","path":"/docs/cli/global-config","distance":0.2542},{"site":"vercel-docs","path":"/docs/global-config/using-global-config","distance":0.2554},{"site":"vercel-docs","path":"/docs/global-config/global-config-dashboard","distance":0.2622}],"related":[{"site":"vercel-docs","path":"/docs/cli/global-options","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config/using-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config/global-config-dashboard","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","title":"Project Settings","summary":"Use the project settings, to configure custom domains, environment variables, Git, integrations, deployment protection, functions, cron jobs, project members, webhooks, Drains, and security settings.","outbound":[{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/builds/managing-builds"},{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/password-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication"},{"site":"vercel-docs","path":"/docs/deployment-retention"},{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/domains"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain"},{"site":"vercel-docs","path":"/docs/drains/using-drains"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/environment-variables/sensitive-environment-variables"},{"site":"vercel-docs","path":"/docs/environment-variables/shared-environment-variables"},{"site":"vercel-docs","path":"/docs/environment-variables/system-environment-variables"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/node-js-versions"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/monorepos"},{"site":"vercel-docs","path":"/docs/project-configuration"},{"site":"vercel-docs","path":"/docs/project-configuration/general-settings"},{"site":"vercel-docs","path":"/docs/project-configuration/git-settings"},{"site":"vercel-docs","path":"/docs/project-configuration/security-settings"},{"site":"vercel-docs","path":"/docs/projects"},{"site":"vercel-docs","path":"/docs/rbac/access-roles/project-level-roles"},{"site":"vercel-docs","path":"/docs/skew-protection"},{"site":"vercel-docs","path":"/docs/vercel-firewall/attack-mode"},{"site":"vercel-docs","path":"/docs/webhooks"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-the-ignored-build-step-field-on-vercel"}],"inbound":[{"site":"vercel-docs","path":"/docs/builds"},{"site":"vercel-docs","path":"/docs/builds/managing-builds"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips"},{"site":"vercel-docs","path":"/docs/monorepos"},{"site":"vercel-docs","path":"/docs/monorepos/nx"},{"site":"vercel-docs","path":"/docs/monorepos/turborepo"},{"site":"vercel-docs","path":"/docs/project-configuration"},{"site":"vercel-docs","path":"/docs/project-configuration/git-settings"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts"},{"site":"vercel-docs","path":"/docs/projects"},{"site":"vercel-docs","path":"/docs/projects/managing-projects"},{"site":"vercel-docs","path":"/docs/rest-api/networking/configures-static-ip-s-for-a-project"},{"site":"vercel-docs","path":"/docs/rolling-releases"},{"site":"vercel-kb","path":"/kb/guide/can-i-use-a-non-default-branch-for-production"}],"requires":[{"site":"vercel-docs","path":"/docs/project-configuration"}],"neighbors":[{"site":"vercel-docs","path":"/docs/project-configuration/security-settings","distance":0.1373},{"site":"vercel-docs","path":"/docs/project-configuration/general-settings","distance":0.1408},{"site":"vercel-docs","path":"/docs/project-configuration","distance":0.1493},{"site":"vercel-docs","path":"/docs/deployments","distance":0.1671},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket","distance":0.1852}],"related":[{"site":"vercel-kb","path":"/kb/guide/can-i-use-a-non-default-branch-for-production","via":"inbound"},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/managing-projects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds/build-features","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/project-configuration/security-settings","title":"Security settings","summary":"Configure security settings for your Vercel project, including Logs and Source Protection, Vercel Support Code Visibility, Git Fork Protection, and Secure Backend Access with OIDC Federation.","outbound":[{"site":"vercel-docs","path":"/docs/cli/deploy"},{"site":"vercel-docs","path":"/docs/deployment-retention"},{"site":"vercel-docs","path":"/docs/oidc"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/rbac/managing-team-members"},{"site":"vercel-docs","path":"/docs/vercel-firewall/attack-mode"}],"inbound":[{"site":"vercel-docs","path":"/docs/project-configuration"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"},{"site":"vercel-docs","path":"/docs/security/security-dashboard"}],"requires":[{"site":"vercel-docs","path":"/docs/project-configuration"}],"neighbors":[{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","distance":0.1373},{"site":"vercel-docs","path":"/docs/security","distance":0.1928},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments","distance":0.2045},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication","distance":0.2047},{"site":"vercel-docs","path":"/docs/security/access-control","distance":0.2096}],"related":[{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/access-control","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json","title":"vercel.json","summary":"Learn how to use vercel.json to configure and override the default behavior of Vercel from within your project.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/output"},{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/builds/build-features"},{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/project-linking"},{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/environment-variables/reserved-environment-variables"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/memory"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/functions/runtimes/bun"},{"site":"vercel-docs","path":"/docs/functions/runtimes/edge"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket"},{"site":"vercel-docs","path":"/docs/git/vercel-for-github"},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab"},{"site":"vercel-docs","path":"/docs/headers"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/monorepos"},{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"},{"site":"vercel-docs","path":"/docs/projects"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/routing-middleware/api"},{"site":"vercel-docs","path":"/docs/routing/redirects"},{"site":"vercel-docs","path":"/docs/routing/redirects/bulk-redirects"},{"site":"vercel-docs","path":"/docs/routing/rewrites"},{"site":"vercel-docs","path":"/docs/services"},{"site":"vercel-docs","path":"/docs/services/routing"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules"}],"inbound":[{"site":"vercel-docs","path":"/docs/build-output-api/configuration"},{"site":"vercel-docs","path":"/docs/build-output-api/features"},{"site":"vercel-docs","path":"/docs/builds/build-image"},{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/caching/cache-control-headers"},{"site":"vercel-docs","path":"/docs/cron-jobs/quickstart"},{"site":"vercel-docs","path":"/docs/drains/reference/logs"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/django"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/advanced-configuration"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/functions/runtimes/bun"},{"site":"vercel-docs","path":"/docs/functions/runtimes/go"},{"site":"vercel-docs","path":"/docs/functions/runtimes/python/api-directory"},{"site":"vercel-docs","path":"/docs/headers"},{"site":"vercel-docs","path":"/docs/headers/response-headers"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/monorepos/monorepo-faq"},{"site":"vercel-docs","path":"/docs/package-managers"},{"site":"vercel-docs","path":"/docs/project-configuration"},{"site":"vercel-docs","path":"/docs/project-configuration/git-configuration"},{"site":"vercel-docs","path":"/docs/project-configuration/security-settings"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts"},{"site":"vercel-docs","path":"/docs/projects/transferring-projects"},{"site":"vercel-docs","path":"/docs/query/monitoring/monitoring-reference"},{"site":"vercel-docs","path":"/docs/routing"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/routing-middleware/api"},{"site":"vercel-docs","path":"/docs/routing-middleware/getting-started"},{"site":"vercel-docs","path":"/docs/routing/redirects/bulk-redirects"},{"site":"vercel-docs","path":"/docs/routing/redirects/bulk-redirects/getting-started"},{"site":"vercel-docs","path":"/docs/routing/rewrites"},{"site":"vercel-docs","path":"/docs/services/config-reference"},{"site":"vercel-docs","path":"/docs/services/routing"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules"},{"site":"vercel-kb","path":"/kb/guide/are-vercel-preview-deployment-indexed-by-search-engines"},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/deploy-php-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/dot-net-asp-net-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/full-stack-preview-deployments-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-cache-tags-for-external-origins"},{"site":"vercel-kb","path":"/kb/guide/kubernetes-manifests-to-vercel-json"},{"site":"vercel-kb","path":"/kb/guide/vercel-reverse-proxy-rewrites-external"}],"requires":[{"site":"vercel-docs","path":"/docs/project-configuration"}],"neighbors":[{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts","distance":0.163},{"site":"vercel-docs","path":"/docs/build-output-api/configuration","distance":0.229},{"site":"vercel-docs","path":"/docs/functions/runtimes","distance":0.2626},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/advanced-configuration","distance":0.2713},{"site":"vercel-docs","path":"/docs/functions/limitations","distance":0.2765}],"related":[{"site":"vercel-kb","path":"/kb/guide/are-vercel-preview-deployment-indexed-by-search-engines","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/deploy-php-on-vercel-with-docker","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/dot-net-asp-net-on-vercel-with-docker","via":"inbound"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/build-output-api/configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/advanced-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/build-output-api/primitives","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-a-new-project","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts","title":"vercel.ts","summary":"Define your Vercel configuration in vercel.ts with @vercel/config for type-safe routing and build settings.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/output"},{"site":"vercel-docs","path":"/docs/builds/build-features"},{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/memory"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/functions/runtimes/bun"},{"site":"vercel-docs","path":"/docs/functions/runtimes/edge"},{"site":"vercel-docs","path":"/docs/headers"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/routing/redirects"},{"site":"vercel-docs","path":"/docs/routing/redirects/bulk-redirects"},{"site":"vercel-docs","path":"/docs/routing/rewrites"}],"inbound":[{"site":"vercel-docs","path":"/docs/project-configuration"},{"site":"vercel-docs","path":"/docs/project-configuration/git-configuration"},{"site":"vercel-docs","path":"/docs/routing"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-increase-the-limit-of-redirects-or-use-dynamic-redirects-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/managing-redirects-from-your-cms-using-vercel-bulk-redirects"}],"requires":[{"site":"vercel-docs","path":"/docs/project-configuration"}],"neighbors":[{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json","distance":0.163},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","distance":0.2748},{"site":"vercel-docs","path":"/docs/build-output-api/configuration","distance":0.2839},{"site":"vercel-docs","path":"/docs/functions/runtimes/edge","distance":0.2851},{"site":"vercel-docs","path":"/docs/functions/runtimes","distance":0.2878}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-can-i-increase-the-limit-of-redirects-or-use-dynamic-redirects-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/managing-redirects-from-your-cms-using-vercel-bulk-redirects","via":"inbound"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/headers","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/headers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","via":"neighbor"},{"site":"vercel-docs","path":"/docs/build-output-api/configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package","via":"neighbor"},{"site":"vercel-docs","path":"/docs/build-output-api/primitives","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing-middleware/api","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/projects","title":"Projects","summary":"A project is the application that you have deployed to Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/domains"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/logs"},{"site":"vercel-docs","path":"/docs/monorepos"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/project-configuration/general-settings"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"},{"site":"vercel-docs","path":"/docs/speed-insights"},{"site":"vercel-docs","path":"/docs/vercel-firewall"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools"},{"site":"vercel-docs","path":"/docs/audit-log"},{"site":"vercel-docs","path":"/docs/builds/managing-builds"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge"},{"site":"vercel-docs","path":"/docs/cli/link"},{"site":"vercel-docs","path":"/docs/cli/project-linking"},{"site":"vercel-docs","path":"/docs/cli/remove"},{"site":"vercel-docs","path":"/docs/cron-jobs/quickstart"},{"site":"vercel-docs","path":"/docs/deploy-hooks"},{"site":"vercel-docs","path":"/docs/deployments/generated-urls"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/environment-variables/shared-environment-variables"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing"},{"site":"vercel-docs","path":"/docs/git/vercel-for-azure-pipelines"},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket"},{"site":"vercel-docs","path":"/docs/git/vercel-for-github"},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab"},{"site":"vercel-docs","path":"/docs/global-config/get-started"},{"site":"vercel-docs","path":"/docs/global-config/global-config-dashboard"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/devcycle-global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/launchdarkly-global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/split-global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/statsig-global-config"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/vercel-api-integrations"},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/microfrontends/quickstart"},{"site":"vercel-docs","path":"/docs/monorepos"},{"site":"vercel-docs","path":"/docs/monorepos/nx"},{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/oidc/api"},{"site":"vercel-docs","path":"/docs/oidc/azure"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/projects/managing-projects"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"},{"site":"vercel-docs","path":"/docs/spend-management"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost/add-to-localhost"},{"site":"vercel-kb","path":"/kb/guide/how-to-execute-ai-generated-code-safely"},{"site":"vercel-kb","path":"/kb/guide/how-to-reconnect-to-a-running-sandbox"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-snapshots-for-faster-sandbox-startup"},{"site":"vercel-kb","path":"/kb/guide/running-opencode-securely-with-the-vercel-sandbox"},{"site":"vercel-kb","path":"/kb/guide/unable-to-find-github-repository"},{"site":"vercel-kb","path":"/kb/guide/using-vercel-sandbox-claude-agent-sdk"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","distance":0.2002},{"site":"vercel-docs","path":"/docs/projects/managing-projects","distance":0.2093},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/concepts","distance":0.2136},{"site":"v0","path":"/docs/projects","distance":0.2245},{"site":"vercel-docs","path":"/docs/deployments","distance":0.2282}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-execute-ai-generated-code-safely","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-reconnect-to-a-running-sandbox","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-snapshots-for-faster-sandbox-startup","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/running-opencode-securely-with-the-vercel-sandbox","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/unable-to-find-github-repository","via":"inbound"},{"site":"v0","path":"/docs/projects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","title":"Deploy from CLI","summary":"Set up and deploy a Vercel project using the CLI, from linking to production.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/deploy"},{"site":"vercel-docs","path":"/docs/cli/domains"},{"site":"vercel-docs","path":"/docs/cli/env"},{"site":"vercel-docs","path":"/docs/cli/link"},{"site":"vercel-docs","path":"/docs/deployments/environments"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources"},{"site":"vercel-docs","path":"/docs/agent-resources/workflows"},{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain"},{"site":"vercel-docs","path":"/docs/environment-variables/manage-across-environments"}],"requires":[{"site":"vercel-docs","path":"/docs/projects"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","distance":0.1116},{"site":"vercel-docs","path":"/docs/deployments","distance":0.1137},{"site":"vercel-docs","path":"/docs/cli/project-linking","distance":0.1446},{"site":"vercel-docs","path":"/docs/cli/deploy","distance":0.1504},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","distance":0.1546}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-circleci-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/project-linking","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/projects/managing-projects","title":"Managing projects","summary":"Learn how to manage your projects through the Vercel Dashboard.","outbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/monorepos"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"},{"site":"vercel-docs","path":"/docs/projects"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"},{"site":"vercel-docs","path":"/docs/rbac/access-roles/extended-permissions"},{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-docs","path":"/docs/rest-api/projects/pause-a-project"},{"site":"vercel-docs","path":"/docs/rest-api/projects/unpause-a-project"},{"site":"vercel-docs","path":"/docs/spend-management"}],"inbound":[{"site":"vercel-docs","path":"/docs/botid/get-started"},{"site":"vercel-docs","path":"/docs/microfrontends/routing"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-change-the-name-of-my-vercel-project"},{"site":"vercel-kb","path":"/kb/guide/protect-ai-endpoints-with-vercel-botid"}],"requires":[{"site":"vercel-docs","path":"/docs/projects"}],"neighbors":[{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","distance":0.1923},{"site":"vercel-docs","path":"/docs/projects","distance":0.2093},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments","distance":0.2156},{"site":"vercel-docs","path":"/docs/deployments","distance":0.2175},{"site":"vercel-docs","path":"/docs/rest-api/projects/pause-a-project","distance":0.2209}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-change-the-name-of-my-vercel-project","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/protect-ai-endpoints-with-vercel-botid","via":"inbound"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config/global-config-dashboard","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/delete-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/projects/transferring-projects","title":"Transferring a project","summary":"Learn how to transfer a project between Vercel teams.","outbound":[{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/builds/managing-builds"},{"site":"vercel-docs","path":"/docs/comments"},{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/deployments/generated-urls"},{"site":"vercel-docs","path":"/docs/deployments/logs"},{"site":"vercel-docs","path":"/docs/domains"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain"},{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/transferring-an-integration"},{"site":"vercel-docs","path":"/docs/logs/runtime"},{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-docs","path":"/docs/project-configuration"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/query/monitoring"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/snapshots"},{"site":"vercel-docs","path":"/docs/speed-insights"},{"site":"vercel-docs","path":"/docs/storage"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-migrate-away-from-vercel-json-env-and-build-env"}],"inbound":[{"site":"vercel-docs","path":"/docs/deployments/claim-deployments"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/transferring-an-integration"},{"site":"vercel-docs","path":"/docs/security/enterprise-managed-users"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-move-a-domain-to-a-team"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-delete-a-vercel-team"}],"requires":[{"site":"vercel-docs","path":"/docs/projects"}],"neighbors":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains/transfer-your-domain","distance":0.1494},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/transferring-an-integration","distance":0.1916},{"site":"vercel-kb","path":"/kb/guide/how-can-i-move-a-domain-to-a-team","distance":0.1963},{"site":"vercel-kb","path":"/kb/guide/transferring-domains-to-vercel","distance":0.2468},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-to-vercel","distance":0.2649}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-can-i-move-a-domain-to-a-team","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-delete-a-vercel-team","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/transferring-domains-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-ownership-of-a-vercel-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/transfer-your-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-project-transfer-request","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/accept-project-transfer-request","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/claim-deployments","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/protected-git-scopes","title":"Restricting Git Connections to a single Vercel team","summary":"Information to stop developers from deploying their repositories to a personal Vercel account by using Protected Git Scopes.","outbound":[{"site":"vercel-docs","path":"/docs/rbac/access-roles"}],"inbound":[{"site":"vercel-docs","path":"/docs/glossary"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/project-configuration/security-settings","distance":0.2715},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/scopes-and-permissions","distance":0.275},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication","distance":0.2897},{"site":"vercel-docs","path":"/docs/rbac","distance":0.2909},{"site":"vercel-docs","path":"/docs/rbac/managing-team-members","distance":0.2939}],"related":[{"site":"vercel-kb","path":"/kb/guide/connecting-teams-with-personal-git-accounts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/security-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/scopes-and-permissions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rbac","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rbac/managing-team-members","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/query","title":"Query","summary":"Query and visualize your Vercel usage, traffic, and more in observability.","outbound":[{"site":"vercel-docs","path":"/docs/notebooks"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/query/reference"}],"inbound":[{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"},{"site":"vercel-docs","path":"/docs/query/monitoring"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-v2-observability-query"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features"},{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/query/monitoring","distance":0.1954},{"site":"vercel-docs","path":"/docs/observability","distance":0.2148},{"site":"vercel-docs","path":"/docs/analytics/accessing-metrics-with-vercel-cli","distance":0.2333},{"site":"vercel-docs","path":"/docs/analytics/web-analytics-api","distance":0.2364},{"site":"vercel-docs","path":"/docs/query/monitoring/quickstart","distance":0.2406}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute","via":"inbound"},{"site":"vercel-docs","path":"/docs/observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/accessing-metrics-with-vercel-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/web-analytics-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability/insights","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/accessing-metrics-with-vercel-cli","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/query/monitoring","title":"Monitoring","summary":"Query and visualize your Vercel usage, traffic, and more with Monitoring.","outbound":[{"site":"vercel-docs","path":"/docs/notebooks"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/query"},{"site":"vercel-docs","path":"/docs/query/monitoring/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/query/monitoring/monitoring-reference"},{"site":"vercel-docs","path":"/docs/query/monitoring/quickstart"}],"inbound":[{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/projects/transferring-projects"},{"site":"vercel-docs","path":"/docs/query/monitoring/quickstart"},{"site":"vercel-docs","path":"/docs/routing"},{"site":"vercel-docs","path":"/docs/security/shared-responsibility"},{"site":"vercel-docs","path":"/docs/skew-protection"},{"site":"vercel-docs","path":"/docs/vercel-firewall"}],"requires":[{"site":"vercel-docs","path":"/docs/query"}],"neighbors":[{"site":"vercel-docs","path":"/docs/query","distance":0.1954},{"site":"vercel-docs","path":"/docs/query/monitoring/quickstart","distance":0.2171},{"site":"vercel-docs","path":"/docs/observability","distance":0.2271},{"site":"vercel-docs","path":"/docs/query/monitoring/limits-and-pricing","distance":0.241},{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability","distance":0.2437}],"related":[{"site":"vercel-docs","path":"/docs/observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/accessing-metrics-with-vercel-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability/insights","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/query/monitoring/limits-and-pricing","title":"Limits and Pricing","summary":"Learn about our limits and pricing when using Monitoring. Different limitations are applied depending on your plan.","outbound":[{"site":"vercel-docs","path":"/docs/observability/observability-plus"},{"site":"vercel-docs","path":"/docs/query/monitoring/monitoring-reference"}],"inbound":[{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/query/monitoring"}],"requires":[{"site":"vercel-docs","path":"/docs/query"},{"site":"vercel-docs","path":"/docs/query/monitoring"}],"neighbors":[{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability","distance":0.2406},{"site":"vercel-docs","path":"/docs/query/monitoring","distance":0.241},{"site":"vercel-docs","path":"/docs/speed-insights/limits-and-pricing","distance":0.2472},{"site":"vercel-docs","path":"/docs/observability/observability-plus","distance":0.252},{"site":"vercel-docs","path":"/docs/queues/pricing","distance":0.2666}],"related":[{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/limits-and-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/limits-and-pricing","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/query/monitoring/monitoring-reference","title":"Monitoring Reference","summary":"This reference covers the clauses, fields, and variables used to create a Monitoring query.","outbound":[{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/runtimes/edge"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/skew-protection"},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf"}],"inbound":[{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability"},{"site":"vercel-docs","path":"/docs/query/monitoring"},{"site":"vercel-docs","path":"/docs/query/monitoring/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/query/monitoring/quickstart"},{"site":"vercel-docs","path":"/docs/query/reference"},{"site":"vercel-docs","path":"/docs/vercel-firewall"}],"requires":[{"site":"vercel-docs","path":"/docs/query"},{"site":"vercel-docs","path":"/docs/query/monitoring"}],"neighbors":[{"site":"vercel-docs","path":"/docs/query/reference","distance":0.1263},{"site":"vercel-docs","path":"/docs/analytics/web-analytics-api","distance":0.2989},{"site":"vercel-docs","path":"/docs/cli/metrics","distance":0.3017},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools","distance":0.3089},{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/aggregates-page-views","distance":0.312}],"related":[{"site":"vercel-docs","path":"/docs/query/reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/web-analytics-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/metrics","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/aggregates-page-views","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/query/monitoring/quickstart","title":"Getting Started","summary":"In this quickstart guide, you'll discover how to create and execute a query to visualize the most popular posts on your website.","outbound":[{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/query/monitoring"},{"site":"vercel-docs","path":"/docs/query/monitoring/monitoring-reference"}],"inbound":[{"site":"vercel-docs","path":"/docs/query/monitoring"}],"requires":[{"site":"vercel-docs","path":"/docs/query"},{"site":"vercel-docs","path":"/docs/query/monitoring"}],"neighbors":[{"site":"vercel-docs","path":"/docs/query/monitoring","distance":0.2171},{"site":"vercel-docs","path":"/docs/query","distance":0.2406},{"site":"vercel-docs","path":"/docs/analytics/web-analytics-api","distance":0.2896},{"site":"vercel-docs","path":"/docs/analytics/accessing-metrics-with-vercel-cli","distance":0.2943},{"site":"vercel-docs","path":"/docs/speed-insights/accessing-metrics-with-vercel-cli","distance":0.3357}],"related":[{"site":"vercel-docs","path":"/docs/analytics/web-analytics-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/accessing-metrics-with-vercel-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/accessing-metrics-with-vercel-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/metrics","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/query/reference","title":"Query Reference","summary":"This reference covers the dimensions and operators used to create a query.","outbound":[{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/query/monitoring/monitoring-reference"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/skew-protection"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf"}],"inbound":[{"site":"vercel-docs","path":"/docs/query"}],"requires":[{"site":"vercel-docs","path":"/docs/query"}],"neighbors":[{"site":"vercel-docs","path":"/docs/query/monitoring/monitoring-reference","distance":0.1263},{"site":"vercel-docs","path":"/docs/analytics/web-analytics-api","distance":0.2833},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/custom-reporting","distance":0.2902},{"site":"vercel-docs","path":"/docs/cli/metrics","distance":0.299},{"site":"vercel-docs","path":"/docs/query","distance":0.3198}],"related":[{"site":"vercel-docs","path":"/docs/analytics/web-analytics-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/custom-reporting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/metrics","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/aggregates-page-views","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/accessing-metrics-with-vercel-cli","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/queues","title":"Queues","summary":"Durable event streaming for serverless. Publish messages to topics and process them reliably with managed consumer groups, automatic scaling, and built-in retries.","outbound":[{"site":"vercel-docs","path":"/docs/queues/api"},{"site":"vercel-docs","path":"/docs/queues/concepts"},{"site":"vercel-docs","path":"/docs/queues/observability"},{"site":"vercel-docs","path":"/docs/queues/poll-mode"},{"site":"vercel-docs","path":"/docs/queues/pricing"},{"site":"vercel-docs","path":"/docs/queues/python-sdk"},{"site":"vercel-docs","path":"/docs/queues/quickstart"},{"site":"vercel-docs","path":"/docs/queues/sdk"},{"site":"vercel-docs","path":"/docs/workflows"}],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/backend/celery"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/observability/insights"},{"site":"vercel-docs","path":"/docs/queues/sdk"},{"site":"vercel-docs","path":"/docs/workflows"},{"site":"vercel-kb","path":"/kb/guide/ai-evaluation-dashboard-architecture-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/astro-on-vercel-vs-webflow-cloud"},{"site":"vercel-kb","path":"/kb/guide/building-ai-chat-app-with-rag-and-citations-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/docker-compose-concepts-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-move-to-on-demand-revalidation"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-an-astro-app-from-webflow-cloud-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-cloudflare-workflows-to-vercel-workflows"},{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-cloudflare"},{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-webflow-cloud"},{"site":"vercel-kb","path":"/kb/guide/nextjs-on-vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/publish-and-subscribe-to-realtime-data-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/sending-emails-from-an-application-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-elysia-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-flask-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-h3-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-hono-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/tanstack-start-on-vercel-vs-cloudflare"},{"site":"vercel-kb","path":"/kb/guide/tanstack-start-on-vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud"},{"site":"workflow","path":"/docs/how-it-works/framework-integrations"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/queues/concepts","distance":0.1395},{"site":"vercel-docs","path":"/docs/queues/sdk","distance":0.1932},{"site":"vercel-docs","path":"/docs/queues/quickstart","distance":0.2059},{"site":"vercel-docs","path":"/docs/workflows","distance":0.2171},{"site":"vercel-docs","path":"/docs/queues/poll-mode","distance":0.2237}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-evaluation-dashboard-architecture-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/astro-on-vercel-vs-webflow-cloud","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/building-ai-chat-app-with-rag-and-citations-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/docker-compose-concepts-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel","via":"inbound"},{"site":"workflow","path":"/docs/how-it-works/framework-integrations","via":"inbound"},{"site":"vercel-docs","path":"/docs/frameworks/backend/celery","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds/build-queues","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability/insights","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/queues/api","title":"API Reference","summary":"HTTP API reference for Vercel Queues. Publish, consume, acknowledge, and manage messages.","outbound":[{"site":"vercel-docs","path":"/docs/queues/concepts"},{"site":"vercel-docs","path":"/docs/regions"}],"inbound":[{"site":"vercel-docs","path":"/docs/queues"},{"site":"vercel-docs","path":"/docs/queues/concepts"},{"site":"vercel-docs","path":"/docs/queues/python-sdk"},{"site":"vercel-docs","path":"/docs/queues/quickstart"},{"site":"vercel-docs","path":"/docs/queues/sdk"}],"requires":[{"site":"vercel-docs","path":"/docs/queues"}],"neighbors":[{"site":"vercel-docs","path":"/docs/queues/concepts","distance":0.2503},{"site":"vercel-docs","path":"/docs/queues/pricing","distance":0.2803},{"site":"vercel-docs","path":"/docs/queues/sdk","distance":0.2931},{"site":"vercel-docs","path":"/docs/queues","distance":0.3135},{"site":"vercel-docs","path":"/docs/queues/python-sdk","distance":0.3252}],"related":[{"site":"eve","path":"/docs/guides/client/messages","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues/sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues/python-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues/observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues/poll-mode","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/queues/concepts","title":"Concepts","summary":"Learn delivery, retries, visibility timeouts, and deployment isolation in Vercel Queues.","outbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/queues/api"},{"site":"vercel-docs","path":"/docs/queues/poll-mode"},{"site":"vercel-docs","path":"/docs/queues/pricing"},{"site":"vercel-docs","path":"/docs/queues/python-sdk"},{"site":"vercel-docs","path":"/docs/queues/sdk"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/services"},{"site":"vercel-docs","path":"/docs/services/bindings"},{"site":"vercel-docs","path":"/docs/workflows"}],"inbound":[{"site":"vercel-docs","path":"/docs/queues"},{"site":"vercel-docs","path":"/docs/queues/api"},{"site":"vercel-docs","path":"/docs/queues/poll-mode"},{"site":"vercel-docs","path":"/docs/services"},{"site":"vercel-kb","path":"/kb/guide/publish-and-subscribe-to-realtime-data-on-vercel"},{"site":"workflow","path":"/docs/how-it-works/framework-integrations"}],"requires":[{"site":"vercel-docs","path":"/docs/queues"}],"neighbors":[{"site":"vercel-docs","path":"/docs/queues","distance":0.1395},{"site":"vercel-docs","path":"/docs/queues/python-sdk","distance":0.202},{"site":"vercel-docs","path":"/docs/queues/sdk","distance":0.2037},{"site":"vercel-docs","path":"/docs/queues/poll-mode","distance":0.2054},{"site":"vercel-docs","path":"/docs/queues/quickstart","distance":0.2116}],"related":[{"site":"vercel-kb","path":"/kb/guide/publish-and-subscribe-to-realtime-data-on-vercel","via":"inbound"},{"site":"workflow","path":"/docs/how-it-works/framework-integrations","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/sending-emails-from-an-application-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-ai-chat-app-with-rag-and-citations-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues/observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/celery","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds/build-queues","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/queues/observability","title":"Observability","summary":"Monitor queue throughput, message age, and consumer performance to optimize your queue-based workflows.","outbound":[{"site":"vercel-docs","path":"/docs/queues/sdk"}],"inbound":[{"site":"vercel-docs","path":"/docs/observability/insights"},{"site":"vercel-docs","path":"/docs/queues"}],"requires":[{"site":"vercel-docs","path":"/docs/queues"}],"neighbors":[{"site":"vercel-docs","path":"/docs/queues","distance":0.23},{"site":"vercel-docs","path":"/docs/observability/insights","distance":0.2524},{"site":"vercel-docs","path":"/docs/queues/concepts","distance":0.2581},{"site":"vercel-docs","path":"/docs/queues/sdk","distance":0.3},{"site":"vercel-docs","path":"/docs/queues/pricing","distance":0.3095}],"related":[{"site":"vercel-docs","path":"/docs/observability/insights","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues/api","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/queues/poll-mode","title":"Poll Mode","summary":"Consume messages from Vercel Queues by polling on your own schedule, from any environment.","outbound":[{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/queues/concepts"},{"site":"vercel-docs","path":"/docs/queues/python-sdk"},{"site":"vercel-docs","path":"/docs/services"}],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/backend/celery"},{"site":"vercel-docs","path":"/docs/queues"},{"site":"vercel-docs","path":"/docs/queues/concepts"},{"site":"vercel-docs","path":"/docs/queues/python-sdk"},{"site":"vercel-docs","path":"/docs/queues/quickstart"},{"site":"vercel-docs","path":"/docs/queues/sdk"}],"requires":[{"site":"vercel-docs","path":"/docs/queues"}],"neighbors":[{"site":"vercel-docs","path":"/docs/queues/concepts","distance":0.2054},{"site":"vercel-docs","path":"/docs/queues/python-sdk","distance":0.2176},{"site":"vercel-docs","path":"/docs/queues","distance":0.2237},{"site":"vercel-docs","path":"/docs/queues/sdk","distance":0.2441},{"site":"vercel-docs","path":"/docs/queues/quickstart","distance":0.276}],"related":[{"site":"vercel-kb","path":"/kb/guide/publish-and-subscribe-to-realtime-data-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-ai-chat-app-with-rag-and-citations-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/sending-emails-from-an-application-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/rag-chatbot-production-architecture-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues/sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues/observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues/api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds/build-queues","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/queues/pricing","title":"Pricing and Limits","summary":"Understand how Vercel Queues billing works, what's included, and which service limits apply.","outbound":[{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/arn1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/bom1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cdg1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cle1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cpt1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dxb1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/fra1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/gru1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hkg1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hnd1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/iad1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/icn1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/kix1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/lhr1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/pdx1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sin1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/syd1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/yul1"},{"site":"vercel-docs","path":"/docs/queues"},{"site":"vercel-docs","path":"/docs/queues/concepts"},{"site":"vercel-docs","path":"/docs/queues/quickstart"},{"site":"vercel-docs","path":"/docs/workflows/pricing"}],"requires":[{"site":"vercel-docs","path":"/docs/queues"}],"neighbors":[{"site":"vercel-docs","path":"/docs/services/pricing","distance":0.2298},{"site":"vercel-docs","path":"/docs/queues","distance":0.2345},{"site":"vercel-docs","path":"/docs/queues/concepts","distance":0.2534},{"site":"vercel-docs","path":"/docs/pricing","distance":0.2584},{"site":"vercel-docs","path":"/docs/query/monitoring/limits-and-pricing","distance":0.2666}],"related":[{"site":"vercel-docs","path":"/docs/services/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/query/monitoring/limits-and-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues/api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/kms/pricing","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/queues/python-sdk","title":"Python SDK Reference","summary":"Publish and consume messages with the Vercel Queues Python SDK.","outbound":[{"site":"vercel-docs","path":"/docs/queues/api"},{"site":"vercel-docs","path":"/docs/queues/poll-mode"},{"site":"vercel-docs","path":"/docs/queues/sdk"}],"inbound":[{"site":"vercel-docs","path":"/docs/queues"},{"site":"vercel-docs","path":"/docs/queues/concepts"},{"site":"vercel-docs","path":"/docs/queues/poll-mode"},{"site":"vercel-docs","path":"/docs/queues/quickstart"},{"site":"vercel-docs","path":"/docs/queues/sdk"}],"requires":[{"site":"vercel-docs","path":"/docs/queues"}],"neighbors":[{"site":"vercel-docs","path":"/docs/queues/concepts","distance":0.202},{"site":"vercel-docs","path":"/docs/queues/sdk","distance":0.2167},{"site":"vercel-docs","path":"/docs/queues/poll-mode","distance":0.2176},{"site":"vercel-docs","path":"/docs/queues/quickstart","distance":0.2421},{"site":"vercel-docs","path":"/docs/queues","distance":0.2857}],"related":[{"site":"vercel-docs","path":"/docs/queues/concepts","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/publish-and-subscribe-to-realtime-data-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/sending-emails-from-an-application-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues/quickstart","via":"neighbor"},{"site":"eve","path":"/docs/channels/slack","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/slack-bot-vercel-blob","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues/observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/queues/quickstart","title":"Quickstart","summary":"Set up Vercel Queues with the SDK.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/oidc"},{"site":"vercel-docs","path":"/docs/queues/api"},{"site":"vercel-docs","path":"/docs/queues/poll-mode"},{"site":"vercel-docs","path":"/docs/queues/pricing"},{"site":"vercel-docs","path":"/docs/queues/python-sdk"},{"site":"vercel-docs","path":"/docs/queues/sdk"},{"site":"vercel-docs","path":"/docs/workflows"}],"inbound":[{"site":"vercel-docs","path":"/docs/queues"}],"requires":[{"site":"vercel-docs","path":"/docs/queues"}],"neighbors":[{"site":"vercel-docs","path":"/docs/queues/sdk","distance":0.1368},{"site":"vercel-docs","path":"/docs/queues","distance":0.2059},{"site":"vercel-docs","path":"/docs/queues/concepts","distance":0.2116},{"site":"vercel-docs","path":"/docs/queues/python-sdk","distance":0.2421},{"site":"vercel-docs","path":"/docs/frameworks/backend/celery","distance":0.2513}],"related":[{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-flask-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/sending-emails-from-an-application-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-h3-app-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/celery","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/quickstart","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/queues/sdk","title":"JS SDK Reference","summary":"Publish and consume messages with the @vercel/queue SDK.","outbound":[{"site":"vercel-docs","path":"/docs/queues"},{"site":"vercel-docs","path":"/docs/queues/api"},{"site":"vercel-docs","path":"/docs/queues/poll-mode"},{"site":"vercel-docs","path":"/docs/queues/python-sdk"}],"inbound":[{"site":"vercel-docs","path":"/docs/queues"},{"site":"vercel-docs","path":"/docs/queues/concepts"},{"site":"vercel-docs","path":"/docs/queues/observability"},{"site":"vercel-docs","path":"/docs/queues/python-sdk"},{"site":"vercel-docs","path":"/docs/queues/quickstart"}],"requires":[{"site":"vercel-docs","path":"/docs/queues"}],"neighbors":[{"site":"vercel-docs","path":"/docs/queues/quickstart","distance":0.1368},{"site":"vercel-docs","path":"/docs/queues","distance":0.1932},{"site":"vercel-docs","path":"/docs/queues/concepts","distance":0.2037},{"site":"vercel-docs","path":"/docs/queues/python-sdk","distance":0.2167},{"site":"vercel-docs","path":"/docs/queues/poll-mode","distance":0.2441}],"related":[{"site":"vercel-docs","path":"/docs/queues/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/celery","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rbac","title":"RBAC","summary":"Learn how to manage team members on Vercel, and how to assign roles to each member with role-based access control \\(RBAC\\).","outbound":[{"site":"vercel-docs","path":"/docs/rbac/access-groups"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"},{"site":"vercel-docs","path":"/docs/rbac/managing-team-members"}],"inbound":[{"site":"vercel-docs","path":"/docs/audit-log"},{"site":"vercel-docs","path":"/docs/deployments/generated-urls"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes"},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching"},{"site":"vercel-docs","path":"/docs/plans/enterprise/billing"},{"site":"vercel-kb","path":"/kb/guide/hipaa-compliance-guide-vercel"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rbac/managing-team-members","distance":0.1206},{"site":"vercel-docs","path":"/docs/rbac/access-roles/team-level-roles","distance":0.1281},{"site":"vercel-docs","path":"/docs/rbac/access-roles/project-level-roles","distance":0.1459},{"site":"vercel-docs","path":"/docs/rbac/access-groups","distance":0.1852},{"site":"vercel-docs","path":"/docs/rbac/access-roles/extended-permissions","distance":0.2338}],"related":[{"site":"vercel-kb","path":"/kb/guide/hipaa-compliance-guide-vercel","via":"inbound"},{"site":"vercel-docs","path":"/docs/security/access-control","via":"neighbor"},{"site":"vercel-docs","path":"/docs/directory-sync","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-access-groups-for-a-team-project-or-member","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/scopes-and-permissions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/list-team-members","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rbac/access-groups","title":"Access Groups","summary":"Learn how to configure access groups for team members on a Vercel account.","outbound":[{"site":"vercel-docs","path":"/docs/directory-sync"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"},{"site":"vercel-docs","path":"/docs/rbac/access-roles/project-level-roles"}],"inbound":[{"site":"v0","path":"/docs/enterprise"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication"},{"site":"vercel-docs","path":"/docs/deployment-protection/protected-source-maps"},{"site":"vercel-docs","path":"/docs/instant-rollback"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/rbac"}],"requires":[{"site":"vercel-docs","path":"/docs/rbac"}],"neighbors":[{"site":"vercel-docs","path":"/docs/rbac","distance":0.1852},{"site":"vercel-docs","path":"/docs/directory-sync","distance":0.1936},{"site":"vercel-docs","path":"/docs/rbac/managing-team-members","distance":0.2025},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-access-groups-for-a-team-project-or-member","distance":0.2141},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/create-an-access-group-project","distance":0.2248}],"related":[{"site":"v0","path":"/docs/enterprise","via":"inbound"},{"site":"vercel-docs","path":"/docs/rbac/managing-team-members","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-access-groups-for-a-team-project-or-member","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/create-an-access-group-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/creates-an-access-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rbac/access-roles/team-level-roles","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rbac/access-roles","title":"Access Roles","summary":"Learn about the different roles available for team members on a Vercel account.","outbound":[{"site":"vercel-docs","path":"/docs/deploy-hooks"},{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/domains"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/projects"},{"site":"vercel-docs","path":"/docs/rbac/access-roles/project-level-roles"},{"site":"vercel-docs","path":"/docs/rbac/access-roles/team-level-roles"},{"site":"vercel-docs","path":"/docs/rbac/managing-team-members"}],"inbound":[{"site":"v0","path":"/docs/account"},{"site":"v0","path":"/docs/design-systems-2"},{"site":"v0","path":"/docs/teams"},{"site":"v0","path":"/docs/vercel-integration"},{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/audit-log"},{"site":"vercel-docs","path":"/docs/cli/security"},{"site":"vercel-docs","path":"/docs/cli/usage"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/sharable-links"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication"},{"site":"vercel-docs","path":"/docs/deployment-protection/protected-source-maps"},{"site":"vercel-docs","path":"/docs/directory-sync"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/transfer-your-domain"},{"site":"vercel-docs","path":"/docs/environment-variables/sensitive-environment-variables"},{"site":"vercel-docs","path":"/docs/instant-rollback"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/product-integration"},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching"},{"site":"vercel-docs","path":"/docs/notifications"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/plans/enterprise/billing"},{"site":"vercel-docs","path":"/docs/plans/hobby"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/billing"},{"site":"vercel-docs","path":"/docs/production-checklist"},{"site":"vercel-docs","path":"/docs/projects/managing-projects"},{"site":"vercel-docs","path":"/docs/projects/transferring-projects"},{"site":"vercel-docs","path":"/docs/protected-git-scopes"},{"site":"vercel-docs","path":"/docs/rbac"},{"site":"vercel-docs","path":"/docs/rbac/access-groups"},{"site":"vercel-docs","path":"/docs/rbac/access-roles/extended-permissions"},{"site":"vercel-docs","path":"/docs/rbac/access-roles/project-level-roles"},{"site":"vercel-docs","path":"/docs/rbac/access-roles/team-level-roles"},{"site":"vercel-docs","path":"/docs/rbac/managing-team-members"},{"site":"vercel-docs","path":"/docs/security/security-dashboard"},{"site":"vercel-docs","path":"/docs/spend-management"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/ip-blocking"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/managed-rulesets"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost/add-to-production"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-ownership-of-a-vercel-team"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall"},{"site":"vercel-kb","path":"/kb/guide/update-icann-domain-information-for-vercel-domain"},{"site":"vercel-kb","path":"/kb/guide/vercel-passport"}],"requires":[{"site":"vercel-docs","path":"/docs/rbac"}],"neighbors":[{"site":"vercel-docs","path":"/docs/rbac/access-roles/project-level-roles","distance":0.2004},{"site":"vercel-docs","path":"/docs/rbac/access-roles/extended-permissions","distance":0.2166},{"site":"vercel-docs","path":"/docs/rbac/access-roles/team-level-roles","distance":0.2255},{"site":"vercel-docs","path":"/docs/rbac/managing-team-members","distance":0.2478},{"site":"vercel-docs","path":"/docs/rbac/access-groups","distance":0.262}],"related":[{"site":"v0","path":"/docs/account","via":"inbound"},{"site":"v0","path":"/docs/design-systems-2","via":"inbound"},{"site":"v0","path":"/docs/teams","via":"inbound"},{"site":"v0","path":"/docs/vercel-integration","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-ownership-of-a-vercel-team","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/update-icann-domain-information-for-vercel-domain","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-passport","via":"inbound"},{"site":"v0","path":"/docs/enterprise","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rbac/access-groups","via":"neighbor"},{"site":"vercel-docs","path":"/docs/directory-sync","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/manage-integrations-reference","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rbac/access-roles/extended-permissions","title":"Extended Permissions","summary":"Learn about extended permissions in Vercel's RBAC system. Understand how to combine roles and permissions for precise access control.","outbound":[{"site":"vercel-docs","path":"/docs/rbac/access-roles"}],"inbound":[{"site":"vercel-docs","path":"/docs/instant-rollback"},{"site":"vercel-docs","path":"/docs/projects/managing-projects"}],"requires":[{"site":"vercel-docs","path":"/docs/rbac"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"}],"neighbors":[{"site":"vercel-docs","path":"/docs/rbac/access-roles/project-level-roles","distance":0.1743},{"site":"vercel-docs","path":"/docs/rbac/access-roles/team-level-roles","distance":0.2124},{"site":"vercel-docs","path":"/docs/rbac/access-roles","distance":0.2166},{"site":"vercel-docs","path":"/docs/rbac","distance":0.2338},{"site":"vercel-docs","path":"/docs/rbac/access-groups","distance":0.2491}],"related":[{"site":"vercel-docs","path":"/docs/rbac/access-roles/project-level-roles","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rbac/access-roles/team-level-roles","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rbac/access-groups","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/manage-integrations-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rbac/managing-team-members","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rbac/access-roles/project-level-roles","title":"Project Level Roles","summary":"Learn about the project level roles and their permissions.","outbound":[{"site":"vercel-docs","path":"/docs/rbac/access-roles"}],"inbound":[{"site":"vercel-docs","path":"/docs/deployments/sharing-deployments"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"},{"site":"vercel-docs","path":"/docs/rbac/access-groups"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-ownership-of-a-vercel-team"}],"requires":[{"site":"vercel-docs","path":"/docs/rbac"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"}],"neighbors":[{"site":"vercel-docs","path":"/docs/rbac/access-roles/team-level-roles","distance":0.0804},{"site":"vercel-docs","path":"/docs/rbac","distance":0.1459},{"site":"vercel-docs","path":"/docs/rbac/access-roles/extended-permissions","distance":0.1743},{"site":"vercel-docs","path":"/docs/rbac/access-roles","distance":0.2004},{"site":"vercel-docs","path":"/docs/rbac/managing-team-members","distance":0.2208}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-ownership-of-a-vercel-team","via":"inbound"},{"site":"vercel-docs","path":"/docs/rbac/access-roles/team-level-roles","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rbac/access-roles/extended-permissions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rbac/managing-team-members","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rbac/access-groups","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/manage-integrations-reference","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rbac/access-roles/team-level-roles","title":"Team Level Roles","summary":"Learn about the different team level roles and the permissions they provide.","outbound":[{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"}],"inbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/budgets"},{"site":"vercel-docs","path":"/docs/monorepos/turborepo"},{"site":"vercel-docs","path":"/docs/notifications"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"},{"site":"vercel-docs","path":"/docs/saml"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-ownership-of-a-vercel-team"}],"requires":[{"site":"vercel-docs","path":"/docs/rbac"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"}],"neighbors":[{"site":"vercel-docs","path":"/docs/rbac/access-roles/project-level-roles","distance":0.0804},{"site":"vercel-docs","path":"/docs/rbac","distance":0.1281},{"site":"vercel-docs","path":"/docs/rbac/managing-team-members","distance":0.1874},{"site":"vercel-docs","path":"/docs/rbac/access-roles/extended-permissions","distance":0.2124},{"site":"vercel-docs","path":"/docs/rbac/access-roles","distance":0.2255}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-ownership-of-a-vercel-team","via":"inbound"},{"site":"vercel-docs","path":"/docs/rbac/access-roles/project-level-roles","via":"neighbor"},{"site":"v0","path":"/docs/enterprise","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rbac/managing-team-members","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rbac/access-roles/extended-permissions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rbac/access-groups","via":"neighbor"},{"site":"vercel-docs","path":"/docs/directory-sync","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rbac/managing-team-members","title":"Managing Team Members","summary":"Learn how to manage team members on Vercel, and how to assign roles to each member with role-based access control \\(RBAC\\).","outbound":[{"site":"vercel-docs","path":"/docs/rbac/access-roles"}],"inbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/audit-log"},{"site":"vercel-docs","path":"/docs/cli/teams"},{"site":"vercel-docs","path":"/docs/deployments/logs"},{"site":"vercel-docs","path":"/docs/directory-sync"},{"site":"vercel-docs","path":"/docs/git/vercel-for-github"},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes"},{"site":"vercel-docs","path":"/docs/logs/runtime"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/project-configuration/security-settings"},{"site":"vercel-docs","path":"/docs/rbac"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"},{"site":"vercel-docs","path":"/docs/saml"},{"site":"vercel-docs","path":"/docs/two-factor-enforcement"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-ownership-of-a-vercel-team"}],"requires":[{"site":"vercel-docs","path":"/docs/rbac"}],"neighbors":[{"site":"vercel-docs","path":"/docs/rbac","distance":0.1206},{"site":"vercel-docs","path":"/docs/rbac/access-roles/team-level-roles","distance":0.1874},{"site":"vercel-docs","path":"/docs/rbac/access-groups","distance":0.2025},{"site":"vercel-docs","path":"/docs/rbac/access-roles/project-level-roles","distance":0.2208},{"site":"vercel-docs","path":"/docs/directory-sync","distance":0.2212}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-ownership-of-a-vercel-team","via":"inbound"},{"site":"vercel-docs","path":"/docs/rbac/access-roles/team-level-roles","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rbac/access-groups","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rbac/access-roles/project-level-roles","via":"neighbor"},{"site":"vercel-docs","path":"/docs/directory-sync","via":"neighbor"},{"site":"vercel-docs","path":"/docs/accounts","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/regions","title":"Global Network & Regions","summary":"View the list of regions supported by Vercel's CDN and learn about our global infrastructure.","outbound":[{"site":"vercel-docs","path":"/docs/cli/dev"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/build-output-api/primitives"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/cli/deploy"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/functions/runtimes/edge"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure"},{"site":"vercel-docs","path":"/docs/headers/request-headers"},{"site":"vercel-docs","path":"/docs/headers/response-headers"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works"},{"site":"vercel-docs","path":"/docs/partial-prerendering"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/arn1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/bom1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cdg1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cle1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cpt1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dxb1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/fra1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/gru1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hkg1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hnd1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/iad1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/icn1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/kix1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/lhr1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/pdx1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sin1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/syd1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/yul1"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts"},{"site":"vercel-docs","path":"/docs/projects/transferring-projects"},{"site":"vercel-docs","path":"/docs/query/monitoring/monitoring-reference"},{"site":"vercel-docs","path":"/docs/query/reference"},{"site":"vercel-docs","path":"/docs/queues/api"},{"site":"vercel-docs","path":"/docs/queues/concepts"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/routing-middleware/api"},{"site":"vercel-docs","path":"/docs/routing/redirects/configuration-redirects"},{"site":"vercel-docs","path":"/docs/security/compliance"},{"site":"vercel-docs","path":"/docs/security/shared-responsibility"},{"site":"vercel-docs","path":"/docs/storage"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/workflows"},{"site":"vercel-kb","path":"/kb/guide/managing-redirects-from-your-cms-using-vercel-bulk-redirects"},{"site":"vercel-kb","path":"/kb/guide/migrate-containers-from-aws-to-vercel"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/cdn","distance":0.1827},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region","distance":0.1896},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works","distance":0.1898},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing","distance":0.2281},{"site":"vercel-docs","path":"/docs/security/compliance","distance":0.2394}],"related":[{"site":"vercel-kb","path":"/kb/guide/managing-redirects-from-your-cms-using-vercel-bulk-redirects","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/migrate-containers-from-aws-to-vercel","via":"inbound"},{"site":"vercel-docs","path":"/docs/cdn","via":"neighbor"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/compliance","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api","title":"Rest API","summary":"Learn about rest api on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/rest-api/access-groups/create-an-access-group-project"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/creates-an-access-group"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/delete-an-access-group-project"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/deletes-an-access-group"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-access-groups-for-a-team-project-or-member"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-members-of-an-access-group"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-projects-of-an-access-group"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/reads-an-access-group"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/reads-an-access-group-project"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/update-an-access-group"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/update-an-access-group-project"},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/create-rule"},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/delete-rule"},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/list-rules"},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/update-rule"},{"site":"vercel-docs","path":"/docs/rest-api/aliases/assign-an-alias"},{"site":"vercel-docs","path":"/docs/rest-api/aliases/delete-an-alias"},{"site":"vercel-docs","path":"/docs/rest-api/aliases/get-an-alias"},{"site":"vercel-docs","path":"/docs/rest-api/aliases/list-aliases"},{"site":"vercel-docs","path":"/docs/rest-api/aliases/list-deployment-aliases"},{"site":"vercel-docs","path":"/docs/rest-api/aliases/update-the-protection-bypass-for-a-url"},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/create-virtual-model-config"},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/delete-virtual-model-config"},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/get-virtual-model-config"},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/list-virtual-model-configs"},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/update-virtual-model-config"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/check-if-a-cache-artifact-exists"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/delete-all-cache-artifacts"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/download-a-cache-artifact"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/get-status-of-remote-caching-for-this-principal"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/query-information-about-an-artifact"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/record-an-artifacts-cache-usage-event"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/upload-a-cache-artifact"},{"site":"vercel-docs","path":"/docs/rest-api/authentication/create-an-auth-token"},{"site":"vercel-docs","path":"/docs/rest-api/authentication/delete-an-authentication-token"},{"site":"vercel-docs","path":"/docs/rest-api/authentication/get-auth-token-metadata"},{"site":"vercel-docs","path":"/docs/rest-api/authentication/list-auth-tokens"},{"site":"vercel-docs","path":"/docs/rest-api/authentication/sso-token-exchange"},{"site":"vercel-docs","path":"/docs/rest-api/billing/list-focus-billing-charges"},{"site":"vercel-docs","path":"/docs/rest-api/billing/list-focus-contract-commitments"},{"site":"vercel-docs","path":"/docs/rest-api/billing/purchase-credits"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/delete-project-level-redirects"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/edit-a-project-level-redirect"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/get-the-version-history-for-a-project-s-redirects"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/gets-project-level-redirects"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/promote-a-staging-version-to-production-or-restore-a-previous-production-version"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/restore-staged-project-level-redirects-to-their-production-version"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/stages-new-redirects-for-a-project"},{"site":"vercel-docs","path":"/docs/rest-api/certs/get-cert-by-id"},{"site":"vercel-docs","path":"/docs/rest-api/certs/get-certs"},{"site":"vercel-docs","path":"/docs/rest-api/certs/issue-a-new-cert"},{"site":"vercel-docs","path":"/docs/rest-api/certs/remove-cert"},{"site":"vercel-docs","path":"/docs/rest-api/certs/upload-a-cert"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/create-a-check"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/create-a-check-run"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/delete-a-check"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check-run"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-all-checks-for-a-project"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-check-runs-for-a-deployment"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-runs-for-a-check"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/update-a-check"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/update-a-check-run"},{"site":"vercel-docs","path":"/docs/rest-api/connect/create-a-connect-authorization-request"},{"site":"vercel-docs","path":"/docs/rest-api/connect/create-a-connect-installation-request"},{"site":"vercel-docs","path":"/docs/rest-api/connect/create-a-connector"},{"site":"vercel-docs","path":"/docs/rest-api/connect/get-a-connect-token"},{"site":"vercel-docs","path":"/docs/rest-api/connect/import-connect-tokens"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/cancel-a-deployment"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/create-a-new-deployment"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/delete-a-deployment"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-a-deployment-by-id-or-url"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-events"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-file-contents"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployment-files"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/update-deployment-integration-action"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/upload-deployment-files"},{"site":"vercel-docs","path":"/docs/rest-api/dns/create-a-dns-record"},{"site":"vercel-docs","path":"/docs/rest-api/dns/delete-a-dns-record"},{"site":"vercel-docs","path":"/docs/rest-api/dns/list-existing-dns-records"},{"site":"vercel-docs","path":"/docs/rest-api/dns/update-an-existing-dns-record"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-a-domain"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-multiple-domains"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-a-domain-order"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-a-domain-s-transfer-status"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-availability-for-a-domain"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-availability-for-multiple-domains"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-contact-info-schema"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-contact-verification-status-for-a-domain"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-price-data-for-a-domain"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-the-auth-code-for-a-domain"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-tld"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-tld-price-data"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/renew-a-domain"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/transfer-in-a-domain"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/update-auto-renew-for-a-domain"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/update-nameservers-for-a-domain"},{"site":"vercel-docs","path":"/docs/rest-api/domains/add-an-existing-domain-to-the-vercel-platform"},{"site":"vercel-docs","path":"/docs/rest-api/domains/claim-domain-ownership"},{"site":"vercel-docs","path":"/docs/rest-api/domains/get-a-domain-s-configuration"},{"site":"vercel-docs","path":"/docs/rest-api/domains/get-domain-verification-record"},{"site":"vercel-docs","path":"/docs/rest-api/domains/get-information-for-a-single-domain"},{"site":"vercel-docs","path":"/docs/rest-api/domains/list-all-the-domains"},{"site":"vercel-docs","path":"/docs/rest-api/domains/list-project-domains-by-apex-domain"},{"site":"vercel-docs","path":"/docs/rest-api/domains/remove-a-domain-by-name"},{"site":"vercel-docs","path":"/docs/rest-api/domains/update-or-move-apex-domain"},{"site":"vercel-docs","path":"/docs/rest-api/drains/create-a-new-drain"},{"site":"vercel-docs","path":"/docs/rest-api/drains/delete-a-drain"},{"site":"vercel-docs","path":"/docs/rest-api/drains/find-a-drain-by-id"},{"site":"vercel-docs","path":"/docs/rest-api/drains/retrieve-a-list-of-all-drains"},{"site":"vercel-docs","path":"/docs/rest-api/drains/update-an-existing-drain"},{"site":"vercel-docs","path":"/docs/rest-api/drains/validate-drain-delivery-configuration"},{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/dangerously-delete-by-source-image"},{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/dangerously-delete-by-tag"},{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/invalidate-by-source-image"},{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/invalidate-by-tag"},{"site":"vercel-docs","path":"/docs/rest-api/environment/create-a-custom-environment-for-the-current-project"},{"site":"vercel-docs","path":"/docs/rest-api/environment/create-one-or-more-shared-environment-variables"},{"site":"vercel-docs","path":"/docs/rest-api/environment/delete-one-or-more-env-var"},{"site":"vercel-docs","path":"/docs/rest-api/environment/disconnects-a-shared-environment-variable-for-a-given-project"},{"site":"vercel-docs","path":"/docs/rest-api/environment/lists-all-shared-environment-variables-for-a-team"},{"site":"vercel-docs","path":"/docs/rest-api/environment/remove-a-custom-environment"},{"site":"vercel-docs","path":"/docs/rest-api/environment/retrieve-a-custom-environment"},{"site":"vercel-docs","path":"/docs/rest-api/environment/retrieve-custom-environments"},{"site":"vercel-docs","path":"/docs/rest-api/environment/retrieve-the-decrypted-value-of-a-shared-environment-variable-by-id"},{"site":"vercel-docs","path":"/docs/rest-api/environment/update-a-custom-environment"},{"site":"vercel-docs","path":"/docs/rest-api/environment/updates-one-or-more-shared-environment-variables"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-a-flag"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-a-segment"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-an-sdk-key"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/delete-a-flag"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/delete-a-segment"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/delete-an-sdk-key"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-a-flag"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-a-segment"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-all-sdk-keys"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-project-flag-settings"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-all-flags-for-a-team"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-flag-versions"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-flags"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-segments"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-team-project-flag-settings"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/retrieve-the-feature-flags-of-a-deployment"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-a-flag"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-a-segment"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-project-flag-settings"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config-token"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/delete-a-global-config"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/delete-a-global-config-s-schema"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/delete-one-or-more-global-config-tokens"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config-item"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-all-tokens-of-a-global-config"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-backup"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-backups"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-items"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-schema"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-token-meta-data"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-configs"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/restore-global-config-backup"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/update-a-global-config"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/update-global-config-items-in-batch"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/update-global-config-schema"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/connect-integration-resource-to-project"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/create-integration-store-free-and-paid-plans"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/delete-an-integration-configuration"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/list-git-namespaces-by-provider"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/list-git-repositories-linked-to-namespace-by-provider"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/list-integration-billing-plans"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/list-products-for-integration-configuration"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/retrieve-an-integration-configuration"},{"site":"vercel-docs","path":"/docs/rest-api/kms/activate-a-signing-key"},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-a-signing-key"},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer"},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer-policy"},{"site":"vercel-docs","path":"/docs/rest-api/kms/delete-an-issuer"},{"site":"vercel-docs","path":"/docs/rest-api/kms/delete-an-issuer-policy"},{"site":"vercel-docs","path":"/docs/rest-api/kms/get-an-issuer"},{"site":"vercel-docs","path":"/docs/rest-api/kms/list-issuers"},{"site":"vercel-docs","path":"/docs/rest-api/kms/revoke-a-signing-key"},{"site":"vercel-docs","path":"/docs/rest-api/kms/sign-a-message"},{"site":"vercel-docs","path":"/docs/rest-api/kms/sign-a-token"},{"site":"vercel-docs","path":"/docs/rest-api/kms/update-an-issuer"},{"site":"vercel-docs","path":"/docs/rest-api/kms/update-an-issuer-policy"},{"site":"vercel-docs","path":"/docs/rest-api/logs/get-logs-for-a-deployment"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/create-event"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/create-one-or-multiple-experimentation-items"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/delete-an-existing-experimentation-item"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/delete-integration-resource"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/finalize-installation"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-account-information"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resource"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resources"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-invoice"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-member-information"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-the-data-of-a-user-provided-global-config"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/import-resource"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/invoice-actions"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/patch-an-existing-experimentation-item"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/push-data-into-a-user-provided-global-config"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/rotate-installation-credential"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-billing-data"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-invoice"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-prepayment-balances"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-installation"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-resource"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-resource-secrets"},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/create-a-microfrontends-group-with-applications"},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/get-microfrontends-config-for-a-deployment"},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/get-microfrontends-config-for-a-project"},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/list-microfrontends-groups"},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/list-projects-in-a-microfrontends-group"},{"site":"vercel-docs","path":"/docs/rest-api/networking/create-a-secure-compute-network"},{"site":"vercel-docs","path":"/docs/rest-api/networking/delete-a-secure-compute-network"},{"site":"vercel-docs","path":"/docs/rest-api/networking/list-secure-compute-networks"},{"site":"vercel-docs","path":"/docs/rest-api/networking/read-a-secure-compute-network"},{"site":"vercel-docs","path":"/docs/rest-api/networking/update-a-secure-compute-network"},{"site":"vercel-docs","path":"/docs/rest-api/observability/lists-disabled-observability-plus-projects"},{"site":"vercel-docs","path":"/docs/rest-api/observability/updates-a-disabled-observability-plus-project-setting"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/add-a-routing-rule"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/delete-routing-rules"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/edit-a-routing-rule"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/generate-a-routing-rule-from-natural-language"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/get-project-routing-rules"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/get-routing-rule-version-history"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/promote-restore-or-discard-a-routing-rule-version"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/stage-routing-rules"},{"site":"vercel-docs","path":"/docs/rest-api/projectmembers/adds-a-new-member-to-a-project"},{"site":"vercel-docs","path":"/docs/rest-api/projectmembers/list-project-members"},{"site":"vercel-docs","path":"/docs/rest-api/projectmembers/remove-a-project-member"},{"site":"vercel-docs","path":"/docs/rest-api/projects/accept-project-transfer-request"},{"site":"vercel-docs","path":"/docs/rest-api/projects/add-a-domain-to-a-project"},{"site":"vercel-docs","path":"/docs/rest-api/projects/batch-remove-environment-variables"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-a-new-project"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-a-trace-session-token-for-a-deployment"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-one-or-more-environment-variables"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-project-transfer-request"},{"site":"vercel-docs","path":"/docs/rest-api/projects/delete-a-project"},{"site":"vercel-docs","path":"/docs/rest-api/projects/edit-an-environment-variable"},{"site":"vercel-docs","path":"/docs/rest-api/projects/find-a-project-by-id-or-name"},{"site":"vercel-docs","path":"/docs/rest-api/projects/generate-a-project-oidc-token"},{"site":"vercel-docs","path":"/docs/rest-api/projects/get-a-project-domain"},{"site":"vercel-docs","path":"/docs/rest-api/projects/get-a-project-trace-by-request-id"},{"site":"vercel-docs","path":"/docs/rest-api/projects/gets-a-list-of-aliases-with-status-for-the-current-promote"},{"site":"vercel-docs","path":"/docs/rest-api/projects/move-a-project-domain"},{"site":"vercel-docs","path":"/docs/rest-api/projects/pause-a-project"},{"site":"vercel-docs","path":"/docs/rest-api/projects/point-production-traffic-to-a-given-deployment"},{"site":"vercel-docs","path":"/docs/rest-api/projects/point-production-traffic-to-a-previous-production-deployment-by-id"},{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-a-domain-from-a-project"},{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-an-environment-variable"},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-a-list-of-projects"},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-project-domains-by-project-by-id-or-name"},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-decrypted-value-of-an-environment-variable-of-a-project-by-id"},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-environment-variables-of-a-project-by-id-or-name"},{"site":"vercel-docs","path":"/docs/rest-api/projects/unpause-a-project"},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-a-project-domain"},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-an-existing-project"},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-protection-bypass-for-automation"},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-the-microfrontends-settings"},{"site":"vercel-docs","path":"/docs/rest-api/projects/updates-the-description-for-a-rollback"},{"site":"vercel-docs","path":"/docs/rest-api/projects/upload-a-project-avatar"},{"site":"vercel-docs","path":"/docs/rest-api/projects/verify-project-domain"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/complete-the-rolling-release-for-the-project"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/delete-rolling-release-configuration"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-rolling-release-billing-status"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-rolling-release-configuration"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-the-active-rolling-release-information-for-a-project"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/start-a-rolling-release-for-the-project"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/update-the-active-rolling-release-to-the-next-stage-for-a-project"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/update-the-rolling-release-settings-for-the-project"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/create-a-directory"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/create-a-named-sandbox"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/create-a-snapshot"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-drive"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-sandbox"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-snapshot"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/execute-a-command"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/extend-session-timeout"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/fork-a-named-sandbox"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-command"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-named-sandbox"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-session"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-snapshot"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-or-create-a-drive"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/kill-a-command"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-commands"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-drives"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-sandboxes"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-sessions"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-snapshots"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/read-a-file"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/stop-a-session"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/stream-command-logs"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/update-a-sandbox"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/update-network-policy"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/write-files"},{"site":"vercel-docs","path":"/docs/rest-api/sdk"},{"site":"vercel-docs","path":"/docs/rest-api/security/create-system-bypass-rule"},{"site":"vercel-docs","path":"/docs/rest-api/security/generate-a-firewall-rule-from-natural-language"},{"site":"vercel-docs","path":"/docs/rest-api/security/put-firewall-configuration"},{"site":"vercel-docs","path":"/docs/rest-api/security/read-active-attack-data"},{"site":"vercel-docs","path":"/docs/rest-api/security/read-firewall-actions-by-project"},{"site":"vercel-docs","path":"/docs/rest-api/security/read-firewall-configuration"},{"site":"vercel-docs","path":"/docs/rest-api/security/read-system-bypass"},{"site":"vercel-docs","path":"/docs/rest-api/security/remove-system-bypass-rule"},{"site":"vercel-docs","path":"/docs/rest-api/security/returns-activated-waf-config"},{"site":"vercel-docs","path":"/docs/rest-api/security/update-attack-challenge-mode"},{"site":"vercel-docs","path":"/docs/rest-api/security/update-firewall-configuration"},{"site":"vercel-docs","path":"/docs/rest-api/storage/create-a-blob-store"},{"site":"vercel-docs","path":"/docs/rest-api/storage/delete-a-blob-store"},{"site":"vercel-docs","path":"/docs/rest-api/storage/get-a-store"},{"site":"vercel-docs","path":"/docs/rest-api/teams/create-a-team"},{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-microfrontends-group"},{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-team"},{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-team-invite-code"},{"site":"vercel-docs","path":"/docs/rest-api/teams/get-a-team"},{"site":"vercel-docs","path":"/docs/rest-api/teams/get-access-request-status"},{"site":"vercel-docs","path":"/docs/rest-api/teams/invite-a-user"},{"site":"vercel-docs","path":"/docs/rest-api/teams/join-a-team"},{"site":"vercel-docs","path":"/docs/rest-api/teams/list-all-teams"},{"site":"vercel-docs","path":"/docs/rest-api/teams/list-team-members"},{"site":"vercel-docs","path":"/docs/rest-api/teams/remove-a-team-member"},{"site":"vercel-docs","path":"/docs/rest-api/teams/request-access-to-a-team"},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-microfrontends-group"},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-team"},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-team-member"},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-team-directory-sync-role-mappings"},{"site":"vercel-docs","path":"/docs/rest-api/user/delete-user-account"},{"site":"vercel-docs","path":"/docs/rest-api/user/get-the-user"},{"site":"vercel-docs","path":"/docs/rest-api/user/list-event-types"},{"site":"vercel-docs","path":"/docs/rest-api/user/list-user-events"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/add-a-repository-permission"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/cancel-a-blob-upload"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/check-if-a-blob-exists"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/check-if-a-manifest-exists"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/check-registry-api-version-support"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/clear-all-repository-permissions"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/complete-a-blob-upload"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/create-a-repository"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-a-blob"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-a-repository"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-a-repository-image"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-an-image-manifest"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/download-a-blob"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository-image"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository-tag"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-blob-upload-status"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-image-tags"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repositories"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-images"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-permissions"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-tags"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/pull-an-image-manifest"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/push-an-image-manifest"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/remove-a-repository-permission"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/start-a-blob-upload"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/upload-a-blob-chunk"},{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/aggregates-custom-events"},{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/aggregates-page-views"},{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/counts-custom-events"},{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/counts-page-views"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/creates-a-webhook"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/deletes-a-webhook"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/get-a-list-of-webhooks"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/get-a-webhook"}],"inbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/accounts/access-tokens"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/api-keys"},{"site":"vercel-docs","path":"/docs/analytics/web-analytics-api"},{"site":"vercel-docs","path":"/docs/build-output-api/configuration"},{"site":"vercel-docs","path":"/docs/build-output-api/primitives"},{"site":"vercel-docs","path":"/docs/builds/managing-builds"},{"site":"vercel-docs","path":"/docs/checks/creating-checks"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/alias"},{"site":"vercel-docs","path":"/docs/cli/api"},{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication"},{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/deployments/deployment-policy"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments"},{"site":"vercel-docs","path":"/docs/domains/registrar-api"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/remove-a-domain"},{"site":"vercel-docs","path":"/docs/drop"},{"site":"vercel-docs","path":"/docs/environment-variables/sensitive-environment-variables"},{"site":"vercel-docs","path":"/docs/fundamentals/builds"},{"site":"vercel-docs","path":"/docs/git/vercel-for-azure-pipelines"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-sdk"},{"site":"vercel-docs","path":"/docs/global-config/using-global-config"},{"site":"vercel-docs","path":"/docs/global-config/vercel-api"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/deployment-integration-action"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/vercel-api-integrations"},{"site":"vercel-docs","path":"/docs/kms/concepts/authentication"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/reference"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/limits"},{"site":"vercel-docs","path":"/docs/projects/managing-projects"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/create-an-access-group-project"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/creates-an-access-group"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/delete-an-access-group-project"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/deletes-an-access-group"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-access-groups-for-a-team-project-or-member"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-members-of-an-access-group"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-projects-of-an-access-group"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/reads-an-access-group"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/reads-an-access-group-project"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/update-an-access-group"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/update-an-access-group-project"},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/create-rule"},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/delete-rule"},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/list-rules"},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/update-rule"},{"site":"vercel-docs","path":"/docs/rest-api/aliases/assign-an-alias"},{"site":"vercel-docs","path":"/docs/rest-api/aliases/delete-an-alias"},{"site":"vercel-docs","path":"/docs/rest-api/aliases/get-an-alias"},{"site":"vercel-docs","path":"/docs/rest-api/aliases/list-aliases"},{"site":"vercel-docs","path":"/docs/rest-api/aliases/list-deployment-aliases"},{"site":"vercel-docs","path":"/docs/rest-api/aliases/update-the-protection-bypass-for-a-url"},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/create-virtual-model-config"},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/delete-virtual-model-config"},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/get-virtual-model-config"},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/list-virtual-model-configs"},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/update-virtual-model-config"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/check-if-a-cache-artifact-exists"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/delete-all-cache-artifacts"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/download-a-cache-artifact"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/get-status-of-remote-caching-for-this-principal"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/query-information-about-an-artifact"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/record-an-artifacts-cache-usage-event"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/upload-a-cache-artifact"},{"site":"vercel-docs","path":"/docs/rest-api/authentication/create-an-auth-token"},{"site":"vercel-docs","path":"/docs/rest-api/authentication/delete-an-authentication-token"},{"site":"vercel-docs","path":"/docs/rest-api/authentication/get-auth-token-metadata"},{"site":"vercel-docs","path":"/docs/rest-api/authentication/list-auth-tokens"},{"site":"vercel-docs","path":"/docs/rest-api/authentication/sso-token-exchange"},{"site":"vercel-docs","path":"/docs/rest-api/billing/list-focus-billing-charges"},{"site":"vercel-docs","path":"/docs/rest-api/billing/list-focus-contract-commitments"},{"site":"vercel-docs","path":"/docs/rest-api/billing/purchase-credits"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/delete-project-level-redirects"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/edit-a-project-level-redirect"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/get-the-version-history-for-a-project-s-redirects"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/gets-project-level-redirects"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/promote-a-staging-version-to-production-or-restore-a-previous-production-version"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/restore-staged-project-level-redirects-to-their-production-version"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/stages-new-redirects-for-a-project"},{"site":"vercel-docs","path":"/docs/rest-api/certs/get-cert-by-id"},{"site":"vercel-docs","path":"/docs/rest-api/certs/get-certs"},{"site":"vercel-docs","path":"/docs/rest-api/certs/issue-a-new-cert"},{"site":"vercel-docs","path":"/docs/rest-api/certs/remove-cert"},{"site":"vercel-docs","path":"/docs/rest-api/certs/upload-a-cert"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/create-a-check"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/create-a-check-run"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/delete-a-check"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check-run"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-all-checks-for-a-project"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-check-runs-for-a-deployment"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-runs-for-a-check"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/update-a-check"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/update-a-check-run"},{"site":"vercel-docs","path":"/docs/rest-api/connect/create-a-connect-authorization-request"},{"site":"vercel-docs","path":"/docs/rest-api/connect/create-a-connect-installation-request"},{"site":"vercel-docs","path":"/docs/rest-api/connect/create-a-connector"},{"site":"vercel-docs","path":"/docs/rest-api/connect/get-a-connect-token"},{"site":"vercel-docs","path":"/docs/rest-api/connect/import-connect-tokens"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/cancel-a-deployment"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/create-a-new-deployment"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/delete-a-deployment"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-a-deployment-by-id-or-url"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-events"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-file-contents"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployment-files"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/update-deployment-integration-action"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/upload-deployment-files"},{"site":"vercel-docs","path":"/docs/rest-api/dns/create-a-dns-record"},{"site":"vercel-docs","path":"/docs/rest-api/dns/delete-a-dns-record"},{"site":"vercel-docs","path":"/docs/rest-api/dns/list-existing-dns-records"},{"site":"vercel-docs","path":"/docs/rest-api/dns/update-an-existing-dns-record"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-a-domain"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-multiple-domains"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-a-domain-order"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-a-domain-s-transfer-status"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-availability-for-a-domain"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-availability-for-multiple-domains"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-contact-info-schema"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-contact-verification-status-for-a-domain"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-price-data-for-a-domain"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-the-auth-code-for-a-domain"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-tld"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-tld-price-data"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/renew-a-domain"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/transfer-in-a-domain"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/update-auto-renew-for-a-domain"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/update-nameservers-for-a-domain"},{"site":"vercel-docs","path":"/docs/rest-api/domains/add-an-existing-domain-to-the-vercel-platform"},{"site":"vercel-docs","path":"/docs/rest-api/domains/claim-domain-ownership"},{"site":"vercel-docs","path":"/docs/rest-api/domains/get-a-domain-s-configuration"},{"site":"vercel-docs","path":"/docs/rest-api/domains/get-domain-verification-record"},{"site":"vercel-docs","path":"/docs/rest-api/domains/get-information-for-a-single-domain"},{"site":"vercel-docs","path":"/docs/rest-api/domains/list-all-the-domains"},{"site":"vercel-docs","path":"/docs/rest-api/domains/list-project-domains-by-apex-domain"},{"site":"vercel-docs","path":"/docs/rest-api/domains/remove-a-domain-by-name"},{"site":"vercel-docs","path":"/docs/rest-api/domains/update-or-move-apex-domain"},{"site":"vercel-docs","path":"/docs/rest-api/drains/create-a-new-drain"},{"site":"vercel-docs","path":"/docs/rest-api/drains/delete-a-drain"},{"site":"vercel-docs","path":"/docs/rest-api/drains/find-a-drain-by-id"},{"site":"vercel-docs","path":"/docs/rest-api/drains/retrieve-a-list-of-all-drains"},{"site":"vercel-docs","path":"/docs/rest-api/drains/update-an-existing-drain"},{"site":"vercel-docs","path":"/docs/rest-api/drains/validate-drain-delivery-configuration"},{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/dangerously-delete-by-source-image"},{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/dangerously-delete-by-tag"},{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/invalidate-by-source-image"},{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/invalidate-by-tag"},{"site":"vercel-docs","path":"/docs/rest-api/environment/create-a-custom-environment-for-the-current-project"},{"site":"vercel-docs","path":"/docs/rest-api/environment/create-one-or-more-shared-environment-variables"},{"site":"vercel-docs","path":"/docs/rest-api/environment/delete-one-or-more-env-var"},{"site":"vercel-docs","path":"/docs/rest-api/environment/disconnects-a-shared-environment-variable-for-a-given-project"},{"site":"vercel-docs","path":"/docs/rest-api/environment/lists-all-shared-environment-variables-for-a-team"},{"site":"vercel-docs","path":"/docs/rest-api/environment/remove-a-custom-environment"},{"site":"vercel-docs","path":"/docs/rest-api/environment/retrieve-a-custom-environment"},{"site":"vercel-docs","path":"/docs/rest-api/environment/retrieve-custom-environments"},{"site":"vercel-docs","path":"/docs/rest-api/environment/retrieve-the-decrypted-value-of-a-shared-environment-variable-by-id"},{"site":"vercel-docs","path":"/docs/rest-api/environment/update-a-custom-environment"},{"site":"vercel-docs","path":"/docs/rest-api/environment/updates-one-or-more-shared-environment-variables"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-a-flag"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-a-segment"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-an-sdk-key"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/delete-a-flag"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/delete-a-segment"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/delete-an-sdk-key"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-a-flag"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-a-segment"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-all-sdk-keys"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-project-flag-settings"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-all-flags-for-a-team"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-flag-versions"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-flags"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-segments"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-team-project-flag-settings"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/retrieve-the-feature-flags-of-a-deployment"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-a-flag"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-a-segment"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-project-flag-settings"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config-token"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/delete-a-global-config"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/delete-a-global-config-s-schema"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/delete-one-or-more-global-config-tokens"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config-item"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-all-tokens-of-a-global-config"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-backup"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-backups"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-items"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-schema"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-token-meta-data"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-configs"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/restore-global-config-backup"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/update-a-global-config"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/update-global-config-items-in-batch"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/update-global-config-schema"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/connect-integration-resource-to-project"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/create-integration-store-free-and-paid-plans"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/delete-an-integration-configuration"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/list-git-namespaces-by-provider"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/list-git-repositories-linked-to-namespace-by-provider"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/list-integration-billing-plans"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/list-products-for-integration-configuration"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/retrieve-an-integration-configuration"},{"site":"vercel-docs","path":"/docs/rest-api/kms/activate-a-signing-key"},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-a-signing-key"},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer"},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer-policy"},{"site":"vercel-docs","path":"/docs/rest-api/kms/delete-an-issuer"},{"site":"vercel-docs","path":"/docs/rest-api/kms/delete-an-issuer-policy"},{"site":"vercel-docs","path":"/docs/rest-api/kms/get-an-issuer"},{"site":"vercel-docs","path":"/docs/rest-api/kms/list-issuers"},{"site":"vercel-docs","path":"/docs/rest-api/kms/revoke-a-signing-key"},{"site":"vercel-docs","path":"/docs/rest-api/kms/sign-a-message"},{"site":"vercel-docs","path":"/docs/rest-api/kms/sign-a-token"},{"site":"vercel-docs","path":"/docs/rest-api/kms/update-an-issuer"},{"site":"vercel-docs","path":"/docs/rest-api/kms/update-an-issuer-policy"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/creates-a-configurable-log-drain-deprecated"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/creates-a-new-integration-log-drain-deprecated"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/deletes-a-configurable-log-drain-deprecated"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/deletes-the-integration-log-drain-with-the-provided-id-deprecated"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/retrieves-a-configurable-log-drain-deprecated"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/retrieves-a-list-of-all-the-log-drains-deprecated"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/retrieves-a-list-of-integration-log-drains-deprecated"},{"site":"vercel-docs","path":"/docs/rest-api/logs/get-logs-for-a-deployment"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/create-event"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/create-one-or-multiple-experimentation-items"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/delete-an-existing-experimentation-item"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/delete-integration-resource"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/finalize-installation"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-account-information"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resource"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resources"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-invoice"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-member-information"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-the-data-of-a-user-provided-global-config"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/import-resource"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/invoice-actions"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/patch-an-existing-experimentation-item"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/push-data-into-a-user-provided-global-config"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/rotate-installation-credential"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-billing-data"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-invoice"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-prepayment-balances"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-installation"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-resource"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-resource-secrets"},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/create-a-microfrontends-group-with-applications"},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/get-microfrontends-config-for-a-deployment"},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/get-microfrontends-config-for-a-project"},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/list-microfrontends-groups"},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/list-projects-in-a-microfrontends-group"},{"site":"vercel-docs","path":"/docs/rest-api/networking/create-a-secure-compute-network"},{"site":"vercel-docs","path":"/docs/rest-api/networking/delete-a-secure-compute-network"},{"site":"vercel-docs","path":"/docs/rest-api/networking/list-secure-compute-networks"},{"site":"vercel-docs","path":"/docs/rest-api/networking/read-a-secure-compute-network"},{"site":"vercel-docs","path":"/docs/rest-api/networking/update-a-secure-compute-network"},{"site":"vercel-docs","path":"/docs/rest-api/observability/lists-disabled-observability-plus-projects"},{"site":"vercel-docs","path":"/docs/rest-api/observability/updates-a-disabled-observability-plus-project-setting"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/add-a-routing-rule"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/delete-routing-rules"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/edit-a-routing-rule"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/generate-a-routing-rule-from-natural-language"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/get-project-routing-rules"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/get-routing-rule-version-history"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/promote-restore-or-discard-a-routing-rule-version"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/stage-routing-rules"},{"site":"vercel-docs","path":"/docs/rest-api/projectmembers/adds-a-new-member-to-a-project"},{"site":"vercel-docs","path":"/docs/rest-api/projectmembers/list-project-members"},{"site":"vercel-docs","path":"/docs/rest-api/projectmembers/remove-a-project-member"},{"site":"vercel-docs","path":"/docs/rest-api/projects/accept-project-transfer-request"},{"site":"vercel-docs","path":"/docs/rest-api/projects/add-a-domain-to-a-project"},{"site":"vercel-docs","path":"/docs/rest-api/projects/batch-remove-environment-variables"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-a-new-project"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-a-trace-session-token-for-a-deployment"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-one-or-more-environment-variables"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-project-transfer-request"},{"site":"vercel-docs","path":"/docs/rest-api/projects/delete-a-project"},{"site":"vercel-docs","path":"/docs/rest-api/projects/edit-an-environment-variable"},{"site":"vercel-docs","path":"/docs/rest-api/projects/find-a-project-by-id-or-name"},{"site":"vercel-docs","path":"/docs/rest-api/projects/generate-a-project-oidc-token"},{"site":"vercel-docs","path":"/docs/rest-api/projects/get-a-project-domain"},{"site":"vercel-docs","path":"/docs/rest-api/projects/get-a-project-trace-by-request-id"},{"site":"vercel-docs","path":"/docs/rest-api/projects/gets-a-list-of-aliases-with-status-for-the-current-promote"},{"site":"vercel-docs","path":"/docs/rest-api/projects/move-a-project-domain"},{"site":"vercel-docs","path":"/docs/rest-api/projects/pause-a-project"},{"site":"vercel-docs","path":"/docs/rest-api/projects/point-production-traffic-to-a-given-deployment"},{"site":"vercel-docs","path":"/docs/rest-api/projects/point-production-traffic-to-a-previous-production-deployment-by-id"},{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-a-domain-from-a-project"},{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-an-environment-variable"},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-a-list-of-projects"},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-project-domains-by-project-by-id-or-name"},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-decrypted-value-of-an-environment-variable-of-a-project-by-id"},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-environment-variables-of-a-project-by-id-or-name"},{"site":"vercel-docs","path":"/docs/rest-api/projects/unpause-a-project"},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-a-project-domain"},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-an-existing-project"},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-protection-bypass-for-automation"},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-the-microfrontends-settings"},{"site":"vercel-docs","path":"/docs/rest-api/projects/updates-the-description-for-a-rollback"},{"site":"vercel-docs","path":"/docs/rest-api/projects/upload-a-project-avatar"},{"site":"vercel-docs","path":"/docs/rest-api/projects/verify-project-domain"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/complete-the-rolling-release-for-the-project"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/delete-rolling-release-configuration"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-rolling-release-billing-status"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-rolling-release-configuration"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-the-active-rolling-release-information-for-a-project"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/start-a-rolling-release-for-the-project"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/update-the-active-rolling-release-to-the-next-stage-for-a-project"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/update-the-rolling-release-settings-for-the-project"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/create-a-directory"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/create-a-named-sandbox"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/create-a-snapshot"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-drive"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-sandbox"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-snapshot"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/execute-a-command"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/extend-session-timeout"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/fork-a-named-sandbox"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-command"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-named-sandbox"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-session"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-snapshot"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-or-create-a-drive"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/kill-a-command"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-commands"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-drives"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-sandboxes"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-sessions"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-snapshots"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/read-a-file"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/stop-a-session"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/stream-command-logs"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/update-a-sandbox"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/update-network-policy"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/write-files"},{"site":"vercel-docs","path":"/docs/rest-api/sdk"},{"site":"vercel-docs","path":"/docs/rest-api/security/create-system-bypass-rule"},{"site":"vercel-docs","path":"/docs/rest-api/security/generate-a-firewall-rule-from-natural-language"},{"site":"vercel-docs","path":"/docs/rest-api/security/put-firewall-configuration"},{"site":"vercel-docs","path":"/docs/rest-api/security/read-active-attack-data"},{"site":"vercel-docs","path":"/docs/rest-api/security/read-firewall-actions-by-project"},{"site":"vercel-docs","path":"/docs/rest-api/security/read-firewall-configuration"},{"site":"vercel-docs","path":"/docs/rest-api/security/read-system-bypass"},{"site":"vercel-docs","path":"/docs/rest-api/security/remove-system-bypass-rule"},{"site":"vercel-docs","path":"/docs/rest-api/security/returns-activated-waf-config"},{"site":"vercel-docs","path":"/docs/rest-api/security/update-attack-challenge-mode"},{"site":"vercel-docs","path":"/docs/rest-api/security/update-firewall-configuration"},{"site":"vercel-docs","path":"/docs/rest-api/storage/create-a-blob-store"},{"site":"vercel-docs","path":"/docs/rest-api/storage/delete-a-blob-store"},{"site":"vercel-docs","path":"/docs/rest-api/storage/get-a-store"},{"site":"vercel-docs","path":"/docs/rest-api/teams/create-a-team"},{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-microfrontends-group"},{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-team"},{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-team-invite-code"},{"site":"vercel-docs","path":"/docs/rest-api/teams/get-a-team"},{"site":"vercel-docs","path":"/docs/rest-api/teams/get-access-request-status"},{"site":"vercel-docs","path":"/docs/rest-api/teams/invite-a-user"},{"site":"vercel-docs","path":"/docs/rest-api/teams/join-a-team"},{"site":"vercel-docs","path":"/docs/rest-api/teams/list-all-teams"},{"site":"vercel-docs","path":"/docs/rest-api/teams/list-team-members"},{"site":"vercel-docs","path":"/docs/rest-api/teams/remove-a-team-member"},{"site":"vercel-docs","path":"/docs/rest-api/teams/request-access-to-a-team"},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-microfrontends-group"},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-team"},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-team-member"},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-team-directory-sync-role-mappings"},{"site":"vercel-docs","path":"/docs/rest-api/user/delete-user-account"},{"site":"vercel-docs","path":"/docs/rest-api/user/get-the-user"},{"site":"vercel-docs","path":"/docs/rest-api/user/list-event-types"},{"site":"vercel-docs","path":"/docs/rest-api/user/list-user-events"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/add-a-repository-permission"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/cancel-a-blob-upload"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/check-if-a-blob-exists"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/check-if-a-manifest-exists"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/check-registry-api-version-support"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/clear-all-repository-permissions"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/complete-a-blob-upload"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/create-a-repository"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-a-blob"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-a-repository"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-a-repository-image"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-an-image-manifest"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/download-a-blob"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository-image"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository-tag"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-blob-upload-status"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-image-tags"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repositories"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-images"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-permissions"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-tags"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/pull-an-image-manifest"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/push-an-image-manifest"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/remove-a-repository-permission"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/start-a-blob-upload"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/upload-a-blob-chunk"},{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/aggregates-custom-events"},{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/aggregates-page-views"},{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/counts-custom-events"},{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/counts-page-views"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/creates-a-webhook"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/deletes-a-webhook"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/get-a-list-of-webhooks"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/get-a-webhook"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/authentication"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/manage-from-dashboard"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-api"},{"site":"vercel-docs","path":"/docs/webhooks/webhooks-api"},{"site":"vercel-kb","path":"/kb/guide/ai-agents"},{"site":"vercel-kb","path":"/kb/guide/firewall-terraform-configuration"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-domain-using-the-vercel-api"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-a-vercel-api-access-token"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall"},{"site":"vercel-kb","path":"/kb/guide/how-to-move-a-domain-between-vercel-projects-with-zero-downtime"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features"},{"site":"vercel-kb","path":"/kb/guide/managing-redirects-from-your-cms-using-vercel-bulk-redirects"},{"site":"vercel-kb","path":"/kb/guide/nextjs-multi-tenant-application"},{"site":"vercel-kb","path":"/kb/guide/vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/vercel-drop-vs-netlify-drop"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/sdk","distance":0.0169},{"site":"vercel-docs","path":"/docs/cli/global-config","distance":0.2729},{"site":"vercel-docs","path":"/docs/global-config/vercel-api","distance":0.2793},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-configs","distance":0.2913},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config","distance":0.3035}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-agents","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/firewall-terraform-configuration","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-domain-using-the-vercel-api","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-a-vercel-api-access-token","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall","via":"inbound"},{"site":"vercel-docs","path":"/docs/cli/global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/audit-log","via":"neighbor"},{"site":"vercel-docs","path":"/docs/accounts","via":"inbound"},{"site":"vercel-docs","path":"/docs/accounts/access-tokens","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/create-an-access-group-project","title":"Create an access group project","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/access-groups/creates-an-access-group","distance":0.0658},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/update-an-access-group-project","distance":0.0891},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/reads-an-access-group-project","distance":0.0951},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-projects-of-an-access-group","distance":0.1057},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/delete-an-access-group-project","distance":0.1083}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/access-groups/creates-an-access-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/update-an-access-group-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/reads-an-access-group-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-projects-of-an-access-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/delete-an-access-group-project","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/creates-an-access-group","title":"Creates an access group","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/access-groups/create-an-access-group-project","distance":0.0658},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/reads-an-access-group","distance":0.1022},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/update-an-access-group","distance":0.1059},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/deletes-an-access-group","distance":0.1325},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-members-of-an-access-group","distance":0.1353}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/access-groups/create-an-access-group-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/reads-an-access-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/update-an-access-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/deletes-an-access-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-members-of-an-access-group","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/delete-an-access-group-project","title":"Delete an access group project","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/access-groups/deletes-an-access-group","distance":0.0922},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/create-an-access-group-project","distance":0.1083},{"site":"vercel-docs","path":"/docs/rest-api/projects/delete-a-project","distance":0.1094},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/reads-an-access-group-project","distance":0.1241},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/update-an-access-group-project","distance":0.1248}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/access-groups/deletes-an-access-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/create-an-access-group-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/delete-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/reads-an-access-group-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/update-an-access-group-project","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/deletes-an-access-group","title":"Deletes an access group","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/access-groups/delete-an-access-group-project","distance":0.0922},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/creates-an-access-group","distance":0.1325},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/reads-an-access-group","distance":0.1427},{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-microfrontends-group","distance":0.1539},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/update-an-access-group","distance":0.1618}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/access-groups/delete-an-access-group-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/creates-an-access-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/reads-an-access-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-microfrontends-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/update-an-access-group","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-access-groups-for-a-team-project-or-member","title":"List access groups for a team, project or member","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-members-of-an-access-group","distance":0.0706},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-projects-of-an-access-group","distance":0.0972},{"site":"vercel-docs","path":"/docs/rest-api/teams/list-team-members","distance":0.1169},{"site":"vercel-docs","path":"/docs/rest-api/projectmembers/list-project-members","distance":0.1177},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/reads-an-access-group","distance":0.1268}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-members-of-an-access-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-projects-of-an-access-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/list-team-members","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projectmembers/list-project-members","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/reads-an-access-group","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-members-of-an-access-group","title":"List members of an access group","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-access-groups-for-a-team-project-or-member","distance":0.0706},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/reads-an-access-group","distance":0.116},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-projects-of-an-access-group","distance":0.1196},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/creates-an-access-group","distance":0.1353},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/update-an-access-group","distance":0.1419}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-access-groups-for-a-team-project-or-member","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/reads-an-access-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-projects-of-an-access-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/creates-an-access-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/update-an-access-group","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-projects-of-an-access-group","title":"List projects of an access group","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-access-groups-for-a-team-project-or-member","distance":0.0972},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/create-an-access-group-project","distance":0.1057},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/reads-an-access-group-project","distance":0.116},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-members-of-an-access-group","distance":0.1196},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-a-list-of-projects","distance":0.1332}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-access-groups-for-a-team-project-or-member","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/create-an-access-group-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/reads-an-access-group-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-members-of-an-access-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-a-list-of-projects","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/reads-an-access-group","title":"Reads an access group","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/access-groups/reads-an-access-group-project","distance":0.0651},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/creates-an-access-group","distance":0.1022},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-members-of-an-access-group","distance":0.116},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-access-groups-for-a-team-project-or-member","distance":0.1268},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/update-an-access-group","distance":0.128}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/access-groups/reads-an-access-group-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/creates-an-access-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-members-of-an-access-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-access-groups-for-a-team-project-or-member","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/update-an-access-group","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/reads-an-access-group-project","title":"Reads an access group project","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/access-groups/reads-an-access-group","distance":0.0651},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/create-an-access-group-project","distance":0.0951},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-projects-of-an-access-group","distance":0.116},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/delete-an-access-group-project","distance":0.1241},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/update-an-access-group-project","distance":0.1293}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/access-groups/reads-an-access-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/create-an-access-group-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-projects-of-an-access-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/delete-an-access-group-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/update-an-access-group-project","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/update-an-access-group","title":"Update an access group","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/access-groups/update-an-access-group-project","distance":0.0601},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/creates-an-access-group","distance":0.1059},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/reads-an-access-group","distance":0.128},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/create-an-access-group-project","distance":0.1311},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-members-of-an-access-group","distance":0.1419}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/access-groups/update-an-access-group-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/creates-an-access-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/reads-an-access-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/create-an-access-group-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-members-of-an-access-group","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/update-an-access-group-project","title":"Update an access group project","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/access-groups/update-an-access-group","distance":0.0601},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/create-an-access-group-project","distance":0.0891},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/delete-an-access-group-project","distance":0.1248},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/reads-an-access-group-project","distance":0.1293},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-projects-of-an-access-group","distance":0.1413}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/access-groups/update-an-access-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/create-an-access-group-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/delete-an-access-group-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/reads-an-access-group-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-projects-of-an-access-group","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/create-rule","title":"Create rule","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/update-rule","distance":0.1038},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/list-rules","distance":0.1081},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/delete-rule","distance":0.1225},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/add-a-routing-rule","distance":0.1692},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/edit-a-routing-rule","distance":0.1785}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/update-rule","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/list-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/delete-rule","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/add-a-routing-rule","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/edit-a-routing-rule","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/delete-rule","title":"Delete rule","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/project-routes/delete-routing-rules","distance":0.1164},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/create-rule","distance":0.1225},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/list-rules","distance":0.1515},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/update-rule","distance":0.1543},{"site":"vercel-docs","path":"/docs/rest-api/security/remove-system-bypass-rule","distance":0.196}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/project-routes/delete-routing-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/create-rule","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/list-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/update-rule","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/remove-system-bypass-rule","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/list-rules","title":"List rules","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/create-rule","distance":0.1081},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/update-rule","distance":0.1373},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/delete-rule","distance":0.1515},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/get-project-routing-rules","distance":0.177},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/routing-rules","distance":0.1846}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/create-rule","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/update-rule","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/delete-rule","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/get-project-routing-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/routing-rules","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/update-rule","title":"Update rule","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/create-rule","distance":0.1038},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/list-rules","distance":0.1373},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/delete-rule","distance":0.1543},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/edit-a-routing-rule","distance":0.179},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/add-a-routing-rule","distance":0.1984}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/create-rule","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/list-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/delete-rule","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/edit-a-routing-rule","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/add-a-routing-rule","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/aliases/assign-an-alias","title":"Assign an Alias","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/quickstart"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/aliases/get-an-alias","distance":0.1206},{"site":"vercel-docs","path":"/docs/rest-api/aliases/list-deployment-aliases","distance":0.1252},{"site":"vercel-docs","path":"/docs/rest-api/aliases/delete-an-alias","distance":0.1526},{"site":"vercel-docs","path":"/docs/rest-api/aliases/list-aliases","distance":0.1602},{"site":"vercel-docs","path":"/docs/cli/alias","distance":0.2169}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/aliases/get-an-alias","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/aliases/list-deployment-aliases","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-resolve-alias-errors-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/aliases/delete-an-alias","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-alias-a-preview-deployment-using-the-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/aliases/list-aliases","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/gets-a-list-of-aliases-with-status-for-the-current-promote","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/aliases/delete-an-alias","title":"Delete an Alias","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/aliases/get-an-alias","distance":0.1188},{"site":"vercel-docs","path":"/docs/rest-api/aliases/assign-an-alias","distance":0.1526},{"site":"vercel-docs","path":"/docs/rest-api/aliases/list-aliases","distance":0.1728},{"site":"vercel-docs","path":"/docs/rest-api/aliases/list-deployment-aliases","distance":0.1922},{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-team","distance":0.2214}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/aliases/get-an-alias","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/aliases/assign-an-alias","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/aliases/list-aliases","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/aliases/list-deployment-aliases","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-team","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/aliases/get-an-alias","title":"Get an Alias","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/aliases/list-aliases","distance":0.0887},{"site":"vercel-docs","path":"/docs/rest-api/aliases/delete-an-alias","distance":0.1188},{"site":"vercel-docs","path":"/docs/rest-api/aliases/assign-an-alias","distance":0.1206},{"site":"vercel-docs","path":"/docs/rest-api/aliases/list-deployment-aliases","distance":0.1432},{"site":"vercel-docs","path":"/docs/rest-api/projects/gets-a-list-of-aliases-with-status-for-the-current-promote","distance":0.1703}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/aliases/list-aliases","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/aliases/delete-an-alias","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/aliases/assign-an-alias","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/aliases/list-deployment-aliases","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/gets-a-list-of-aliases-with-status-for-the-current-promote","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/aliases/list-aliases","title":"List aliases","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/aliases/list-deployment-aliases","distance":0.0827},{"site":"vercel-docs","path":"/docs/rest-api/aliases/get-an-alias","distance":0.0887},{"site":"vercel-docs","path":"/docs/rest-api/projects/gets-a-list-of-aliases-with-status-for-the-current-promote","distance":0.1366},{"site":"vercel-docs","path":"/docs/rest-api/aliases/assign-an-alias","distance":0.1602},{"site":"vercel-docs","path":"/docs/rest-api/aliases/delete-an-alias","distance":0.1728}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/aliases/list-deployment-aliases","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/aliases/get-an-alias","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/gets-a-list-of-aliases-with-status-for-the-current-promote","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/aliases/assign-an-alias","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/aliases/delete-an-alias","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/aliases/list-deployment-aliases","title":"List Deployment Aliases","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/aliases/list-aliases","distance":0.0827},{"site":"vercel-docs","path":"/docs/rest-api/aliases/assign-an-alias","distance":0.1252},{"site":"vercel-docs","path":"/docs/rest-api/aliases/get-an-alias","distance":0.1432},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","distance":0.1717},{"site":"vercel-docs","path":"/docs/rest-api/projects/gets-a-list-of-aliases-with-status-for-the-current-promote","distance":0.1819}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/aliases/list-aliases","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/aliases/assign-an-alias","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/aliases/get-an-alias","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/gets-a-list-of-aliases-with-status-for-the-current-promote","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/aliases/update-the-protection-bypass-for-a-url","title":"Update the protection bypass for a URL","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/projects/update-protection-bypass-for-automation","distance":0.1614},{"site":"vercel-docs","path":"/docs/rest-api/security/update-attack-challenge-mode","distance":0.2265},{"site":"vercel-docs","path":"/docs/rest-api/aliases/get-an-alias","distance":0.2273},{"site":"vercel-docs","path":"/docs/rest-api/aliases/list-aliases","distance":0.2351},{"site":"vercel-docs","path":"/docs/rest-api/security/remove-system-bypass-rule","distance":0.238}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/projects/update-protection-bypass-for-automation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/update-attack-challenge-mode","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/aliases/get-an-alias","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/aliases/list-aliases","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/remove-system-bypass-rule","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/create-virtual-model-config","title":"Create virtual model config","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/get-virtual-model-config","distance":0.0286},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/update-virtual-model-config","distance":0.0501},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/list-virtual-model-configs","distance":0.0597},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/delete-virtual-model-config","distance":0.1578},{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team","distance":0.213}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/get-virtual-model-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/update-virtual-model-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/list-virtual-model-configs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/delete-virtual-model-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/delete-virtual-model-config","title":"Delete virtual model config","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/create-virtual-model-config","distance":0.1578},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/get-virtual-model-config","distance":0.1622},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/list-virtual-model-configs","distance":0.1643},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/update-virtual-model-config","distance":0.1683},{"site":"vercel-docs","path":"/docs/rest-api/global-config/delete-a-global-config","distance":0.2064}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/create-virtual-model-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/get-virtual-model-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/list-virtual-model-configs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/update-virtual-model-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/delete-a-global-config","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/get-virtual-model-config","title":"Get virtual model config","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/create-virtual-model-config","distance":0.0286},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/list-virtual-model-configs","distance":0.0416},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/update-virtual-model-config","distance":0.0509},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/delete-virtual-model-config","distance":0.1622},{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team","distance":0.1871}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/create-virtual-model-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/list-virtual-model-configs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/update-virtual-model-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/delete-virtual-model-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/list-virtual-model-configs","title":"List virtual model configs","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/get-virtual-model-config","distance":0.0416},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/create-virtual-model-config","distance":0.0597},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/update-virtual-model-config","distance":0.079},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/delete-virtual-model-config","distance":0.1643},{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team","distance":0.1793}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/get-virtual-model-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/create-virtual-model-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/update-virtual-model-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/delete-virtual-model-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/update-virtual-model-config","title":"Update virtual model config","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/create-virtual-model-config","distance":0.0501},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/get-virtual-model-config","distance":0.0509},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/list-virtual-model-configs","distance":0.079},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/delete-virtual-model-config","distance":0.1683},{"site":"vercel-docs","path":"/docs/rest-api/security/update-firewall-configuration","distance":0.2164}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/create-virtual-model-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/get-virtual-model-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/list-virtual-model-configs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/delete-virtual-model-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/update-firewall-configuration","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/check-if-a-cache-artifact-exists","title":"Check if a cache artifact exists","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/artifacts/download-a-cache-artifact","distance":0.1379},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/upload-a-cache-artifact","distance":0.1615},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/delete-all-cache-artifacts","distance":0.1804},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/query-information-about-an-artifact","distance":0.1882},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/get-status-of-remote-caching-for-this-principal","distance":0.2133}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/artifacts/download-a-cache-artifact","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/upload-a-cache-artifact","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/delete-all-cache-artifacts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/query-information-about-an-artifact","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/get-status-of-remote-caching-for-this-principal","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/delete-all-cache-artifacts","title":"Delete all cache artifacts","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/artifacts/upload-a-cache-artifact","distance":0.1677},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/download-a-cache-artifact","distance":0.1689},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/check-if-a-cache-artifact-exists","distance":0.1804},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/query-information-about-an-artifact","distance":0.2104},{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-team","distance":0.2312}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/artifacts/upload-a-cache-artifact","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/download-a-cache-artifact","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/check-if-a-cache-artifact-exists","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/query-information-about-an-artifact","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-team","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/download-a-cache-artifact","title":"Download a cache artifact","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/artifacts/upload-a-cache-artifact","distance":0.0952},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/check-if-a-cache-artifact-exists","distance":0.1379},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/delete-all-cache-artifacts","distance":0.1689},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/query-information-about-an-artifact","distance":0.1857},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/record-an-artifacts-cache-usage-event","distance":0.215}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/artifacts/upload-a-cache-artifact","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/check-if-a-cache-artifact-exists","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/delete-all-cache-artifacts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/query-information-about-an-artifact","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/record-an-artifacts-cache-usage-event","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/get-status-of-remote-caching-for-this-principal","title":"Get status of Remote Caching for this principal","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/artifacts/query-information-about-an-artifact","distance":0.2012},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/check-if-a-cache-artifact-exists","distance":0.2133},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/delete-all-cache-artifacts","distance":0.2419},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/download-a-cache-artifact","distance":0.2438},{"site":"vercel-docs","path":"/docs/rest-api/teams/get-access-request-status","distance":0.2534}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/artifacts/query-information-about-an-artifact","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/check-if-a-cache-artifact-exists","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/delete-all-cache-artifacts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/download-a-cache-artifact","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/get-access-request-status","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/query-information-about-an-artifact","title":"Query information about an artifact","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/artifacts/download-a-cache-artifact","distance":0.1857},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/check-if-a-cache-artifact-exists","distance":0.1882},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/upload-a-cache-artifact","distance":0.1911},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/get-status-of-remote-caching-for-this-principal","distance":0.2012},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/delete-all-cache-artifacts","distance":0.2104}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/artifacts/download-a-cache-artifact","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/check-if-a-cache-artifact-exists","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/upload-a-cache-artifact","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/get-status-of-remote-caching-for-this-principal","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/delete-all-cache-artifacts","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/record-an-artifacts-cache-usage-event","title":"Record an artifacts cache usage event","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/artifacts/upload-a-cache-artifact","distance":0.1859},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/download-a-cache-artifact","distance":0.215},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/query-information-about-an-artifact","distance":0.2171},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/check-if-a-cache-artifact-exists","distance":0.2291},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/delete-all-cache-artifacts","distance":0.2322}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/artifacts/upload-a-cache-artifact","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/download-a-cache-artifact","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/usage/list-usage-events","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/query-information-about-an-artifact","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/check-if-a-cache-artifact-exists","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/delete-all-cache-artifacts","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/upload-a-cache-artifact","title":"Upload a cache artifact","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/artifacts/download-a-cache-artifact","distance":0.0952},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/check-if-a-cache-artifact-exists","distance":0.1615},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/delete-all-cache-artifacts","distance":0.1677},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/record-an-artifacts-cache-usage-event","distance":0.1859},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/query-information-about-an-artifact","distance":0.1911}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/artifacts/download-a-cache-artifact","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/check-if-a-cache-artifact-exists","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/delete-all-cache-artifacts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/record-an-artifacts-cache-usage-event","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/query-information-about-an-artifact","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/authentication/create-an-auth-token","title":"Create an Auth Token","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/accounts/access-tokens"},{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/authentication/list-auth-tokens","distance":0.132},{"site":"vercel-docs","path":"/docs/rest-api/authentication/get-auth-token-metadata","distance":0.1386},{"site":"vercel-docs","path":"/docs/rest-api/authentication/delete-an-authentication-token","distance":0.1437},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config-token","distance":0.1829},{"site":"vercel-docs","path":"/docs/rest-api/projects/generate-a-project-oidc-token","distance":0.1941}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall","via":"inbound"},{"site":"vercel-docs","path":"/docs/rest-api/authentication/list-auth-tokens","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/authentication/get-auth-token-metadata","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/authentication/delete-an-authentication-token","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config-token","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/generate-a-project-oidc-token","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/authentication/delete-an-authentication-token","title":"Delete an authentication token","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/authentication/create-an-auth-token","distance":0.1437},{"site":"vercel-docs","path":"/docs/rest-api/authentication/get-auth-token-metadata","distance":0.1803},{"site":"vercel-docs","path":"/docs/rest-api/authentication/list-auth-tokens","distance":0.1951},{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-team","distance":0.2453},{"site":"vercel-docs","path":"/docs/rest-api/aliases/delete-an-alias","distance":0.2457}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/authentication/create-an-auth-token","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/authentication/get-auth-token-metadata","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/authentication/list-auth-tokens","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/aliases/delete-an-alias","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/authentication/get-auth-token-metadata","title":"Get Auth Token Metadata","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/authentication/list-auth-tokens","distance":0.1264},{"site":"vercel-docs","path":"/docs/rest-api/authentication/create-an-auth-token","distance":0.1386},{"site":"vercel-docs","path":"/docs/rest-api/authentication/delete-an-authentication-token","distance":0.1803},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-token-meta-data","distance":0.1938},{"site":"vercel-docs","path":"/docs/rest-api/connect/get-a-connect-token","distance":0.2078}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/authentication/list-auth-tokens","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/authentication/create-an-auth-token","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/authentication/delete-an-authentication-token","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-token-meta-data","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/connect/get-a-connect-token","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/authentication/list-auth-tokens","title":"List Auth Tokens","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/authentication/get-auth-token-metadata","distance":0.1264},{"site":"vercel-docs","path":"/docs/rest-api/authentication/create-an-auth-token","distance":0.132},{"site":"vercel-docs","path":"/docs/rest-api/authentication/delete-an-authentication-token","distance":0.1951},{"site":"vercel-docs","path":"/docs/rest-api/teams/list-all-teams","distance":0.2043},{"site":"vercel-docs","path":"/docs/cli/tokens","distance":0.2233}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/authentication/get-auth-token-metadata","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/authentication/create-an-auth-token","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/authentication/delete-an-authentication-token","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/list-all-teams","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/tokens","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/authentication/sso-token-exchange","title":"SSO Token Exchange","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/submit-integration"},{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/authentication/create-an-auth-token","distance":0.2376},{"site":"vercel-docs","path":"/docs/rest-api/connect/get-a-connect-token","distance":0.2431},{"site":"vercel-docs","path":"/docs/rest-api/authentication/list-auth-tokens","distance":0.2502},{"site":"vercel-docs","path":"/docs/rest-api/connect/import-connect-tokens","distance":0.2529},{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team","distance":0.2632}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/authentication/create-an-auth-token","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/connect/get-a-connect-token","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/authentication/list-auth-tokens","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/connect/import-connect-tokens","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/billing/list-focus-billing-charges","title":"List FOCUS billing charges","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/billing/list-focus-contract-commitments","distance":0.1871},{"site":"vercel-docs","path":"/docs/rest-api/billing/purchase-credits","distance":0.232},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-rolling-release-billing-status","distance":0.2561},{"site":"vercel-docs","path":"/docs/rest-api/integrations/list-integration-billing-plans","distance":0.2713},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-billing-data","distance":0.2729}],"related":[{"site":"v0","path":"/docs/api/v1/reference/user/get-billing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/billing/list-focus-contract-commitments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/billing/purchase-credits","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-rolling-release-billing-status","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/list-integration-billing-plans","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-billing-data","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/billing/list-focus-contract-commitments","title":"List FOCUS contract commitments","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/billing/list-focus-billing-charges","distance":0.1871},{"site":"vercel-docs","path":"/docs/cli/contract","distance":0.2383},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-rolling-release-billing-status","distance":0.2859},{"site":"vercel-docs","path":"/docs/rest-api/billing/purchase-credits","distance":0.2897},{"site":"vercel-docs","path":"/docs/rest-api/integrations/list-integration-billing-plans","distance":0.3219}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/billing/list-focus-billing-charges","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/contract","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-rolling-release-billing-status","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/billing/purchase-credits","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/list-integration-billing-plans","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/billing/purchase-credits","title":"Purchase credits","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-invoice","distance":0.224},{"site":"vercel-docs","path":"/docs/rest-api/integrations/create-integration-store-free-and-paid-plans","distance":0.2256},{"site":"vercel-docs","path":"/docs/rest-api/billing/list-focus-billing-charges","distance":0.232},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-a-domain","distance":0.234},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-invoice","distance":0.2404}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-invoice","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/create-integration-store-free-and-paid-plans","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/billing/list-focus-billing-charges","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-invoice","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/delete-project-level-redirects","title":"Delete project-level redirects.","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/gets-project-level-redirects","distance":0.0727},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/edit-a-project-level-redirect","distance":0.076},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/stages-new-redirects-for-a-project","distance":0.0897},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/get-the-version-history-for-a-project-s-redirects","distance":0.1142},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/restore-staged-project-level-redirects-to-their-production-version","distance":0.1344}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/gets-project-level-redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/edit-a-project-level-redirect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/stages-new-redirects-for-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/get-the-version-history-for-a-project-s-redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/restore-staged-project-level-redirects-to-their-production-version","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/edit-a-project-level-redirect","title":"Edit a project-level redirect.","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/delete-project-level-redirects","distance":0.076},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/stages-new-redirects-for-a-project","distance":0.1039},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/gets-project-level-redirects","distance":0.1139},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/get-the-version-history-for-a-project-s-redirects","distance":0.138},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/restore-staged-project-level-redirects-to-their-production-version","distance":0.1475}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/delete-project-level-redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/stages-new-redirects-for-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/gets-project-level-redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/get-the-version-history-for-a-project-s-redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/restore-staged-project-level-redirects-to-their-production-version","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/get-the-version-history-for-a-project-s-redirects","title":"Get the version history for a project's redirects.","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/gets-project-level-redirects","distance":0.0562},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/delete-project-level-redirects","distance":0.1142},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/stages-new-redirects-for-a-project","distance":0.1327},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/edit-a-project-level-redirect","distance":0.138},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/restore-staged-project-level-redirects-to-their-production-version","distance":0.1673}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/gets-project-level-redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/delete-project-level-redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/stages-new-redirects-for-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/edit-a-project-level-redirect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/restore-staged-project-level-redirects-to-their-production-version","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/gets-project-level-redirects","title":"Gets project-level redirects.","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-docs","path":"/docs/routing/redirects/bulk-redirects/getting-started"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/get-the-version-history-for-a-project-s-redirects","distance":0.0562},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/delete-project-level-redirects","distance":0.0727},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/edit-a-project-level-redirect","distance":0.1139},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/stages-new-redirects-for-a-project","distance":0.1204},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/restore-staged-project-level-redirects-to-their-production-version","distance":0.1608}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/get-the-version-history-for-a-project-s-redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/delete-project-level-redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/edit-a-project-level-redirect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/stages-new-redirects-for-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/restore-staged-project-level-redirects-to-their-production-version","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/promote-a-staging-version-to-production-or-restore-a-previous-production-version","title":"Promote a staging version to production or restore a previous production version.","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/restore-staged-project-level-redirects-to-their-production-version","distance":0.102},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/promote-restore-or-discard-a-routing-rule-version","distance":0.1327},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/stages-new-redirects-for-a-project","distance":0.1453},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/edit-a-project-level-redirect","distance":0.1772},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/delete-project-level-redirects","distance":0.187}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/restore-staged-project-level-redirects-to-their-production-version","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/promote-restore-or-discard-a-routing-rule-version","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/stages-new-redirects-for-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/edit-a-project-level-redirect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/delete-project-level-redirects","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/restore-staged-project-level-redirects-to-their-production-version","title":"Restore staged project-level redirects to their production version.","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/promote-a-staging-version-to-production-or-restore-a-previous-production-version","distance":0.102},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/stages-new-redirects-for-a-project","distance":0.1119},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/delete-project-level-redirects","distance":0.1344},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/edit-a-project-level-redirect","distance":0.1475},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/gets-project-level-redirects","distance":0.1608}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/promote-a-staging-version-to-production-or-restore-a-previous-production-version","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/stages-new-redirects-for-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/delete-project-level-redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/edit-a-project-level-redirect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/gets-project-level-redirects","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/stages-new-redirects-for-a-project","title":"Stages new redirects for a project.","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/delete-project-level-redirects","distance":0.0897},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/edit-a-project-level-redirect","distance":0.1039},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/restore-staged-project-level-redirects-to-their-production-version","distance":0.1119},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/gets-project-level-redirects","distance":0.1204},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/get-the-version-history-for-a-project-s-redirects","distance":0.1327}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/delete-project-level-redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/edit-a-project-level-redirect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/restore-staged-project-level-redirects-to-their-production-version","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/gets-project-level-redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/get-the-version-history-for-a-project-s-redirects","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/certs/get-cert-by-id","title":"Get cert by id","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/certs/get-certs","distance":0.1036},{"site":"vercel-docs","path":"/docs/rest-api/certs/issue-a-new-cert","distance":0.1385},{"site":"vercel-docs","path":"/docs/rest-api/certs/upload-a-cert","distance":0.1498},{"site":"vercel-docs","path":"/docs/rest-api/certs/remove-cert","distance":0.1599},{"site":"vercel-docs","path":"/docs/cli/certs","distance":0.2779}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/certs/get-certs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/certs/issue-a-new-cert","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/certs/upload-a-cert","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/certs/remove-cert","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/certs","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/certs/get-certs","title":"Get certs","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/certs/get-cert-by-id","distance":0.1036},{"site":"vercel-docs","path":"/docs/rest-api/certs/issue-a-new-cert","distance":0.1298},{"site":"vercel-docs","path":"/docs/rest-api/certs/upload-a-cert","distance":0.1318},{"site":"vercel-docs","path":"/docs/rest-api/certs/remove-cert","distance":0.1584},{"site":"vercel-docs","path":"/docs/cli/certs","distance":0.2167}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/certs/get-cert-by-id","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/certs/issue-a-new-cert","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/certs/upload-a-cert","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/certs/remove-cert","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/certs","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/certs/issue-a-new-cert","title":"Issue a new cert","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/certs/upload-a-cert","distance":0.1103},{"site":"vercel-docs","path":"/docs/rest-api/certs/get-certs","distance":0.1298},{"site":"vercel-docs","path":"/docs/rest-api/certs/get-cert-by-id","distance":0.1385},{"site":"vercel-docs","path":"/docs/rest-api/certs/remove-cert","distance":0.1583},{"site":"vercel-docs","path":"/docs/cli/certs","distance":0.2408}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/certs/upload-a-cert","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/certs/get-certs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/certs/get-cert-by-id","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/certs/remove-cert","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/certs","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/certs/remove-cert","title":"Remove cert","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/certs/issue-a-new-cert","distance":0.1583},{"site":"vercel-docs","path":"/docs/rest-api/certs/get-certs","distance":0.1584},{"site":"vercel-docs","path":"/docs/rest-api/certs/upload-a-cert","distance":0.1594},{"site":"vercel-docs","path":"/docs/rest-api/certs/get-cert-by-id","distance":0.1599},{"site":"vercel-docs","path":"/docs/rest-api/teams/remove-a-team-member","distance":0.2519}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/certs/issue-a-new-cert","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/certs/get-certs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/certs/upload-a-cert","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/certs/get-cert-by-id","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/remove-a-team-member","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/certs/upload-a-cert","title":"Upload a cert","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/domains/custom-ssl-certificate"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/certs/issue-a-new-cert","distance":0.1103},{"site":"vercel-docs","path":"/docs/rest-api/certs/get-certs","distance":0.1318},{"site":"vercel-docs","path":"/docs/rest-api/certs/get-cert-by-id","distance":0.1498},{"site":"vercel-docs","path":"/docs/rest-api/certs/remove-cert","distance":0.1594},{"site":"vercel-docs","path":"/docs/domains/custom-ssl-certificate","distance":0.2167}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/certs/issue-a-new-cert","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/certs/get-certs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/certs/get-cert-by-id","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/certs/remove-cert","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/custom-ssl-certificate","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/create-a-check","title":"Create a check","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-v2-observability-query"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check","distance":0.0775},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/update-a-check","distance":0.0799},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/create-a-check-run","distance":0.0886},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/delete-a-check","distance":0.1228},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-all-checks-for-a-project","distance":0.1238}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/update-a-check","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/create-a-check-run","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/delete-a-check","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-all-checks-for-a-project","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/create-a-check-run","title":"Create a check run","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check-run","distance":0.0542},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/update-a-check-run","distance":0.0613},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/create-a-check","distance":0.0886},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-runs-for-a-check","distance":0.112},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-check-runs-for-a-deployment","distance":0.1327}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check-run","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/update-a-check-run","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/create-a-check","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-runs-for-a-check","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-check-runs-for-a-deployment","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/delete-a-check","title":"Delete a check","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check","distance":0.1172},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/create-a-check","distance":0.1228},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/update-a-check","distance":0.1296},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-runs-for-a-check","distance":0.1422},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check-run","distance":0.1554}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/create-a-check","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/update-a-check","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-runs-for-a-check","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check-run","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check","title":"Get a check","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/create-a-check","distance":0.0775},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check-run","distance":0.0834},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/update-a-check","distance":0.0884},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-all-checks-for-a-project","distance":0.0993},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/delete-a-check","distance":0.1172}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/create-a-check","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check-run","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/update-a-check","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-all-checks-for-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/delete-a-check","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check-run","title":"Get a check run","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/create-a-check-run","distance":0.0542},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/update-a-check-run","distance":0.0661},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check","distance":0.0834},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-runs-for-a-check","distance":0.0836},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-check-runs-for-a-deployment","distance":0.1209}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/create-a-check-run","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/update-a-check-run","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-runs-for-a-check","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-check-runs-for-a-deployment","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-all-checks-for-a-project","title":"List all checks for a project","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-v2-observability-query"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check","distance":0.0993},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-runs-for-a-check","distance":0.1184},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/create-a-check","distance":0.1238},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/update-a-check","distance":0.1293},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check-run","distance":0.1658}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-runs-for-a-check","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/create-a-check","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/update-a-check","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/delete-a-check","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-check-runs-for-a-deployment","title":"List check runs for a deployment","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-runs-for-a-check","distance":0.104},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check-run","distance":0.1209},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/create-a-check-run","distance":0.1327},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","distance":0.1402},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/update-a-check-run","distance":0.1433}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-runs-for-a-check","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check-run","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/create-a-check-run","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/update-a-check-run","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-runs-for-a-check","title":"List runs for a check","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check-run","distance":0.0836},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-check-runs-for-a-deployment","distance":0.104},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/create-a-check-run","distance":0.112},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-all-checks-for-a-project","distance":0.1184},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check","distance":0.1262}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check-run","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-check-runs-for-a-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/create-a-check-run","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-all-checks-for-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/update-a-check","title":"Update a check","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/update-a-check-run","distance":0.074},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/create-a-check","distance":0.0799},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check","distance":0.0884},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-all-checks-for-a-project","distance":0.1293},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/delete-a-check","distance":0.1296}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/update-a-check-run","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/create-a-check","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-all-checks-for-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/delete-a-check","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/update-a-check-run","title":"Update a check run","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/create-a-check-run","distance":0.0613},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check-run","distance":0.0661},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/update-a-check","distance":0.074},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-runs-for-a-check","distance":0.1264},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-check-runs-for-a-deployment","distance":0.1433}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/create-a-check-run","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check-run","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/update-a-check","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-runs-for-a-check","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-check-runs-for-a-deployment","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/connect/create-a-connect-authorization-request","title":"Create a Connect authorization request","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/connect/create-a-connect-installation-request","distance":0.0568},{"site":"vercel-docs","path":"/docs/rest-api/connect/get-a-connect-token","distance":0.1172},{"site":"vercel-docs","path":"/docs/rest-api/connect/import-connect-tokens","distance":0.1854},{"site":"vercel-docs","path":"/docs/rest-api/authentication/create-an-auth-token","distance":0.221},{"site":"vercel-docs","path":"/docs/rest-api/networking/create-a-secure-compute-network","distance":0.2261}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/connect/create-a-connect-installation-request","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/connect/get-a-connect-token","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/connect/import-connect-tokens","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/authentication/create-an-auth-token","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/networking/create-a-secure-compute-network","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/connect/create-a-connect-installation-request","title":"Create a Connect installation request","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/connect/create-a-connect-authorization-request","distance":0.0568},{"site":"vercel-docs","path":"/docs/rest-api/connect/get-a-connect-token","distance":0.1516},{"site":"vercel-docs","path":"/docs/rest-api/connect/import-connect-tokens","distance":0.207},{"site":"vercel-docs","path":"/docs/rest-api/integrations/connect-integration-resource-to-project","distance":0.2344},{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team","distance":0.2533}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/connect/create-a-connect-authorization-request","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/connect/get-a-connect-token","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/connect/import-connect-tokens","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/connect-integration-resource-to-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/connect/create-a-connector","title":"Create a connector","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/projects/create-a-new-project","distance":0.2391},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-team","distance":0.2745},{"site":"vercel-docs","path":"/docs/rest-api/projects/upload-a-project-avatar","distance":0.2949},{"site":"vercel-docs","path":"/docs/connect/concepts/connectors","distance":0.2997},{"site":"vercel-docs","path":"/docs/rest-api/projects/find-a-project-by-id-or-name","distance":0.3014}],"related":[{"site":"v0","path":"/docs/api/v1/reference/chats/init","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task","via":"neighbor"},{"site":"chat-sdk","path":"/docs/vercel-connect","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/create","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-a-new-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/upload-a-project-avatar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/connectors","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/find-a-project-by-id-or-name","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/connect/get-a-connect-token","title":"Get a Connect token","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/connect/import-connect-tokens","distance":0.1142},{"site":"vercel-docs","path":"/docs/rest-api/connect/create-a-connect-authorization-request","distance":0.1172},{"site":"vercel-docs","path":"/docs/rest-api/connect/create-a-connect-installation-request","distance":0.1516},{"site":"vercel-docs","path":"/docs/rest-api/authentication/create-an-auth-token","distance":0.202},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","distance":0.2023}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/connect/import-connect-tokens","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/connect/create-a-connect-authorization-request","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/connect/create-a-connect-installation-request","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/authentication/create-an-auth-token","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/connect/import-connect-tokens","title":"Import Connect tokens","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/connect/get-a-connect-token","distance":0.1142},{"site":"vercel-docs","path":"/docs/rest-api/connect/create-a-connect-authorization-request","distance":0.1854},{"site":"vercel-docs","path":"/docs/rest-api/connect/create-a-connect-installation-request","distance":0.207},{"site":"vercel-docs","path":"/docs/connect/concepts/tokens","distance":0.2239},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","distance":0.2271}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/connect/get-a-connect-token","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/connect/create-a-connect-authorization-request","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/connect/create-a-connect-installation-request","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/tokens","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/deployments/cancel-a-deployment","title":"Cancel a deployment","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-a-deployment-by-id-or-url","distance":0.0662},{"site":"vercel-docs","path":"/docs/rest-api/deployments/create-a-new-deployment","distance":0.1167},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-a-new-project","distance":0.1931},{"site":"vercel-docs","path":"/docs/rest-api/projects/upload-a-project-avatar","distance":0.2383},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-team","distance":0.2399}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-a-deployment-by-id-or-url","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/create-a-new-deployment","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-a-new-project","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/init","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/upload-a-project-avatar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-team","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/deployments/create-a-new-deployment","title":"Create a new deployment","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/deployments/claim-deployments"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/quickstart"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/reference"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-a-deployment-by-id-or-url","distance":0.0922},{"site":"vercel-docs","path":"/docs/rest-api/deployments/cancel-a-deployment","distance":0.1167},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-a-new-project","distance":0.1872},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-team","distance":0.2501},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","distance":0.2812}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-a-deployment-by-id-or-url","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/cancel-a-deployment","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/create","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-a-new-project","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/get-by-id","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/deployments/delete-a-deployment","title":"Delete a Deployment","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/deployments/delete","distance":0.1393},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","distance":0.1459},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-events","distance":0.1872},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployment-files","distance":0.1893},{"site":"vercel-docs","path":"/docs/rest-api/aliases/list-deployment-aliases","distance":0.1968}],"related":[{"site":"v0","path":"/docs/api/v1/reference/deployments/delete","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-events","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployment-files","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/aliases/list-deployment-aliases","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/upload-deployment-files","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-a-deployment-by-id-or-url","title":"Get a deployment by ID or URL","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/deployments/cancel-a-deployment","distance":0.0662},{"site":"vercel-docs","path":"/docs/rest-api/deployments/create-a-new-deployment","distance":0.0922},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-a-new-project","distance":0.1821},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-team","distance":0.2231},{"site":"vercel-docs","path":"/docs/rest-api/projects/find-a-project-by-id-or-name","distance":0.2252}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/deployments/cancel-a-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/create-a-new-deployment","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/get-by-id","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-a-new-project","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/init","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/find-a-project-by-id-or-name","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-events","title":"Get deployment events","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/deployments/managing-deployments"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","distance":0.0839},{"site":"vercel-docs","path":"/docs/rest-api/logs/get-logs-for-a-deployment","distance":0.1274},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployment-files","distance":0.1467},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-check-runs-for-a-deployment","distance":0.1768},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/get-microfrontends-config-for-a-deployment","distance":0.1829}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logs/get-logs-for-a-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployment-files","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-check-runs-for-a-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/get-microfrontends-config-for-a-deployment","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-file-contents","title":"Get Deployment File Contents","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployment-files","distance":0.1161},{"site":"vercel-docs","path":"/docs/rest-api/deployments/upload-deployment-files","distance":0.14},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-events","distance":0.1983},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","distance":0.2019},{"site":"vercel-docs","path":"/docs/rest-api/logs/get-logs-for-a-deployment","distance":0.2131}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployment-files","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/get-by-id","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/upload-deployment-files","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-events","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logs/get-logs-for-a-deployment","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployment-files","title":"List Deployment Files","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/deployments/upload-deployment-files","distance":0.1144},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-file-contents","distance":0.1161},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","distance":0.1317},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-events","distance":0.1467},{"site":"vercel-docs","path":"/docs/rest-api/logs/get-logs-for-a-deployment","distance":0.1746}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/deployments/upload-deployment-files","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-file-contents","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/find","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-events","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logs/get-logs-for-a-deployment","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","title":"List deployments","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/reference"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-events","distance":0.0839},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployment-files","distance":0.1317},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-check-runs-for-a-deployment","distance":0.1402},{"site":"vercel-docs","path":"/docs/rest-api/deployments/delete-a-deployment","distance":0.1459},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/get-microfrontends-config-for-a-deployment","distance":0.162}],"related":[{"site":"v0","path":"/docs/api/v1/reference/deployments/find","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-events","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployment-files","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-check-runs-for-a-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/delete-a-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/get-microfrontends-config-for-a-deployment","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/deployments/update-deployment-integration-action","title":"Update deployment integration action","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/deployment-integration-action"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-installation","distance":0.1957},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-resource","distance":0.2252},{"site":"vercel-docs","path":"/docs/integrations/create-integration/deployment-integration-action","distance":0.2396},{"site":"vercel-docs","path":"/docs/rest-api/deployments/delete-a-deployment","distance":0.2453},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/update-the-rolling-release-settings-for-the-project","distance":0.2526}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-installation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-resource","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/deployment-integration-action","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/delete-a-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/update-the-rolling-release-settings-for-the-project","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/deployments/upload-deployment-files","title":"Upload Deployment Files","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/deployments/claim-deployments"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployment-files","distance":0.1144},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-file-contents","distance":0.14},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","distance":0.1852},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-events","distance":0.1974},{"site":"vercel-docs","path":"/docs/rest-api/deployments/delete-a-deployment","distance":0.2061}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployment-files","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-file-contents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-events","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/delete-a-deployment","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/dns/create-a-dns-record","title":"Create a DNS record","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/dns/update-an-existing-dns-record","distance":0.1071},{"site":"vercel-docs","path":"/docs/rest-api/dns/list-existing-dns-records","distance":0.1463},{"site":"vercel-docs","path":"/docs/rest-api/dns/delete-a-dns-record","distance":0.1541},{"site":"vercel-docs","path":"/docs/rest-api/domains/get-domain-verification-record","distance":0.2286},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-a-domain","distance":0.2366}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/dns/update-an-existing-dns-record","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/dns/list-existing-dns-records","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/dns/delete-a-dns-record","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains/get-domain-verification-record","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-a-domain","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/dns/delete-a-dns-record","title":"Delete a DNS record","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/dns/update-an-existing-dns-record","distance":0.1493},{"site":"vercel-docs","path":"/docs/rest-api/dns/create-a-dns-record","distance":0.1541},{"site":"vercel-docs","path":"/docs/rest-api/dns/list-existing-dns-records","distance":0.1775},{"site":"vercel-docs","path":"/docs/rest-api/domains/remove-a-domain-by-name","distance":0.1842},{"site":"vercel-docs","path":"/docs/rest-api/domains/get-domain-verification-record","distance":0.2207}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/dns/update-an-existing-dns-record","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/dns/create-a-dns-record","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/dns/list-existing-dns-records","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains/remove-a-domain-by-name","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains/get-domain-verification-record","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/dns/list-existing-dns-records","title":"List existing DNS records","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/dns/update-an-existing-dns-record","distance":0.1461},{"site":"vercel-docs","path":"/docs/rest-api/dns/create-a-dns-record","distance":0.1463},{"site":"vercel-docs","path":"/docs/rest-api/dns/delete-a-dns-record","distance":0.1775},{"site":"vercel-docs","path":"/docs/rest-api/domains/list-all-the-domains","distance":0.1812},{"site":"vercel-docs","path":"/docs/cli/dns","distance":0.2228}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/dns/update-an-existing-dns-record","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/dns/create-a-dns-record","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/dns/delete-a-dns-record","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains/list-all-the-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/dns","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/dns/update-an-existing-dns-record","title":"Update an existing DNS record","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/dns/create-a-dns-record","distance":0.1071},{"site":"vercel-docs","path":"/docs/rest-api/dns/list-existing-dns-records","distance":0.1461},{"site":"vercel-docs","path":"/docs/rest-api/dns/delete-a-dns-record","distance":0.1493},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/update-nameservers-for-a-domain","distance":0.1952},{"site":"vercel-docs","path":"/docs/rest-api/domains/add-an-existing-domain-to-the-vercel-platform","distance":0.2113}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/dns/create-a-dns-record","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/dns/list-existing-dns-records","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/dns/delete-a-dns-record","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/update-nameservers-for-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains/add-an-existing-domain-to-the-vercel-platform","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-a-domain","title":"Buy a domain","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/domains/registrar-api"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-multiple-domains","distance":0.025},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/renew-a-domain","distance":0.0654},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/transfer-in-a-domain","distance":0.0705},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-a-domain-order","distance":0.0811},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-price-data-for-a-domain","distance":0.0829}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-multiple-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/renew-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/transfer-in-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-a-domain-order","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-price-data-for-a-domain","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-multiple-domains","title":"Buy multiple domains","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/domains/registrar-api"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-a-domain","distance":0.025},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/renew-a-domain","distance":0.0829},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/transfer-in-a-domain","distance":0.086},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-availability-for-multiple-domains","distance":0.093},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-a-domain-order","distance":0.0933}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/renew-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/transfer-in-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-availability-for-multiple-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-a-domain-order","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-a-domain-order","title":"Get a domain order","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/domains/registrar-api"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-a-domain","distance":0.0811},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-multiple-domains","distance":0.0933},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-the-auth-code-for-a-domain","distance":0.1116},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-price-data-for-a-domain","distance":0.1122},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/renew-a-domain","distance":0.1135}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-multiple-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-the-auth-code-for-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-price-data-for-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/renew-a-domain","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-a-domain-s-transfer-status","title":"Get a domain's transfer status","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/domains/registrar-api"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/transfer-in-a-domain","distance":0.0756},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-the-auth-code-for-a-domain","distance":0.0814},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-contact-verification-status-for-a-domain","distance":0.1024},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-availability-for-a-domain","distance":0.1116},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-a-domain-order","distance":0.114}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/transfer-in-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-the-auth-code-for-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-contact-verification-status-for-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-availability-for-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-a-domain-order","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-availability-for-a-domain","title":"Get availability for a domain","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/domains/registrar-api"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-availability-for-multiple-domains","distance":0.0357},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-price-data-for-a-domain","distance":0.0878},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-a-domain","distance":0.1035},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-the-auth-code-for-a-domain","distance":0.1114},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-a-domain-s-transfer-status","distance":0.1116}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-availability-for-multiple-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-price-data-for-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-the-auth-code-for-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-a-domain-s-transfer-status","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-availability-for-multiple-domains","title":"Get availability for multiple domains","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/domains/registrar-api"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-availability-for-a-domain","distance":0.0357},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-multiple-domains","distance":0.093},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-price-data-for-a-domain","distance":0.1144},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-a-domain","distance":0.12},{"site":"vercel-docs","path":"/docs/rest-api/domains/list-all-the-domains","distance":0.1356}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-availability-for-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-multiple-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-price-data-for-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains/list-all-the-domains","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-contact-info-schema","title":"Get contact info schema","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/domains/registrar-api"},{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-v2-observability-schema"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-contact-verification-status-for-a-domain","distance":0.0963},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-a-domain-order","distance":0.1647},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-a-domain-s-transfer-status","distance":0.1672},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-tld","distance":0.168},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-price-data-for-a-domain","distance":0.1695}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-contact-verification-status-for-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-a-domain-order","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-a-domain-s-transfer-status","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-tld","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-price-data-for-a-domain","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-contact-verification-status-for-a-domain","title":"Get contact verification status for a domain","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-contact-info-schema","distance":0.0963},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-the-auth-code-for-a-domain","distance":0.1019},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-a-domain-s-transfer-status","distance":0.1024},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-a-domain","distance":0.1055},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-availability-for-a-domain","distance":0.1161}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-contact-info-schema","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-the-auth-code-for-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-a-domain-s-transfer-status","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-availability-for-a-domain","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-price-data-for-a-domain","title":"Get price data for a domain","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/domains/registrar-api"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-tld-price-data","distance":0.0564},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-a-domain","distance":0.0829},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-availability-for-a-domain","distance":0.0878},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-the-auth-code-for-a-domain","distance":0.1068},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-multiple-domains","distance":0.1081}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-tld-price-data","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-availability-for-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-the-auth-code-for-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-multiple-domains","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-supported-tld-s","title":"Get supported TLDs","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-tld"},{"site":"vercel-docs","path":"/docs/rest-api/sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/untagged/put-domains-domain-records","distance":0.1712},{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-domains-records-record-id","distance":0.2204},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-tld","distance":0.2774},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-tld-price-data","distance":0.3009},{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-v2-observability-schema","distance":0.3104}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/untagged/put-domains-domain-records","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-domains-records-record-id","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-tld-price-data","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-v2-observability-schema","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-price-data-for-a-domain","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-the-auth-code-for-a-domain","title":"Get the auth code for a domain","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/domains/registrar-api"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-a-domain-s-transfer-status","distance":0.0814},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-contact-verification-status-for-a-domain","distance":0.1019},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-price-data-for-a-domain","distance":0.1068},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/transfer-in-a-domain","distance":0.1111},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-availability-for-a-domain","distance":0.1114}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-a-domain-s-transfer-status","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-contact-verification-status-for-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-price-data-for-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/transfer-in-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-availability-for-a-domain","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-tld","title":"Get TLD","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-supported-tld-s"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/put-domains-domain-records"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-tld-price-data","distance":0.0664},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-price-data-for-a-domain","distance":0.1436},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-a-domain-s-transfer-status","distance":0.15},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-a-domain","distance":0.1541},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-a-domain-order","distance":0.1617}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-tld-price-data","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-price-data-for-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-a-domain-s-transfer-status","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-a-domain-order","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-tld-price-data","title":"Get TLD price data","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/domains/registrar-api"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-price-data-for-a-domain","distance":0.0564},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-tld","distance":0.0664},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-a-domain","distance":0.129},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-availability-for-a-domain","distance":0.1414},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-multiple-domains","distance":0.1519}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-price-data-for-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-tld","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-availability-for-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-multiple-domains","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/renew-a-domain","title":"Renew a domain","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/domains/registrar-api"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-a-domain","distance":0.0654},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-multiple-domains","distance":0.0829},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/transfer-in-a-domain","distance":0.0865},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/update-auto-renew-for-a-domain","distance":0.0883},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-price-data-for-a-domain","distance":0.1119}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-multiple-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/transfer-in-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/update-auto-renew-for-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-price-data-for-a-domain","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/transfer-in-a-domain","title":"Transfer-in a domain","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/domains/registrar-api"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-a-domain","distance":0.0705},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-a-domain-s-transfer-status","distance":0.0756},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-multiple-domains","distance":0.086},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/renew-a-domain","distance":0.0865},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-the-auth-code-for-a-domain","distance":0.1111}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-a-domain-s-transfer-status","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-multiple-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/renew-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-the-auth-code-for-a-domain","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/update-auto-renew-for-a-domain","title":"Update auto-renew for a domain","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/domains/registrar-api"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/renew-a-domain","distance":0.0883},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/update-nameservers-for-a-domain","distance":0.1126},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-a-domain","distance":0.161},{"site":"vercel-docs","path":"/docs/rest-api/domains/update-or-move-apex-domain","distance":0.1631},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/transfer-in-a-domain","distance":0.1659}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/renew-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/update-nameservers-for-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains/update-or-move-apex-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/transfer-in-a-domain","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/update-nameservers-for-a-domain","title":"Update nameservers for a domain","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/domains/registrar-api"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/update-auto-renew-for-a-domain","distance":0.1126},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/renew-a-domain","distance":0.1575},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-a-domain-s-transfer-status","distance":0.1735},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/transfer-in-a-domain","distance":0.1799},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-availability-for-a-domain","distance":0.1852}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/update-auto-renew-for-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/renew-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-a-domain-s-transfer-status","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/transfer-in-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-availability-for-a-domain","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/domains/add-an-existing-domain-to-the-vercel-platform","title":"Add an existing domain to the Vercel platform","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/reference"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/projects/add-a-domain-to-a-project","distance":0.1271},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/transfer-in-a-domain","distance":0.1401},{"site":"vercel-docs","path":"/docs/rest-api/domains/update-or-move-apex-domain","distance":0.1521},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-a-domain","distance":0.1545},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/renew-a-domain","distance":0.1631}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/projects/add-a-domain-to-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/transfer-in-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains/update-or-move-apex-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/renew-a-domain","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/domains/claim-domain-ownership","title":"Claim Domain Ownership","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/domains/get-domain-verification-record","distance":0.1207},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/claim-domain-ownership","distance":0.1609},{"site":"vercel-docs","path":"/docs/rest-api/domains/list-all-the-domains","distance":0.1769},{"site":"vercel-docs","path":"/docs/rest-api/domains/get-information-for-a-single-domain","distance":0.1814},{"site":"vercel-docs","path":"/docs/rest-api/domains/add-an-existing-domain-to-the-vercel-platform","distance":0.1859}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/domains/get-domain-verification-record","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/claim-domain-ownership","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains/list-all-the-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains/get-information-for-a-single-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains/add-an-existing-domain-to-the-vercel-platform","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/domains/get-a-domain-s-configuration","title":"Get a Domain's configuration","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/reference"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/projects/get-a-project-domain","distance":0.1395},{"site":"vercel-docs","path":"/docs/rest-api/domains/get-information-for-a-single-domain","distance":0.1447},{"site":"vercel-docs","path":"/docs/rest-api/domains/list-all-the-domains","distance":0.1616},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-a-domain-s-transfer-status","distance":0.1659},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-availability-for-a-domain","distance":0.1665}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/projects/get-a-project-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains/get-information-for-a-single-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains/list-all-the-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-a-domain-s-transfer-status","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-availability-for-a-domain","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/domains/get-domain-verification-record","title":"Get Domain Verification Record","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/domains/claim-domain-ownership","distance":0.1207},{"site":"vercel-docs","path":"/docs/rest-api/domains/get-information-for-a-single-domain","distance":0.1635},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-the-auth-code-for-a-domain","distance":0.1739},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-contact-verification-status-for-a-domain","distance":0.1799},{"site":"vercel-docs","path":"/docs/rest-api/projects/verify-project-domain","distance":0.1844}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/domains/claim-domain-ownership","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains/get-information-for-a-single-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-the-auth-code-for-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-contact-verification-status-for-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/verify-project-domain","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/domains/get-information-for-a-single-domain","title":"Get Information for a Single Domain","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/reference"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/domains/list-all-the-domains","distance":0.1071},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-price-data-for-a-domain","distance":0.1258},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-availability-for-a-domain","distance":0.1332},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-the-auth-code-for-a-domain","distance":0.1358},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-contact-verification-status-for-a-domain","distance":0.1438}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/domains/list-all-the-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-price-data-for-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-availability-for-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-the-auth-code-for-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-contact-verification-status-for-a-domain","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/domains/list-all-the-domains","title":"List all the domains","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/reference"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/domains/get-information-for-a-single-domain","distance":0.1071},{"site":"vercel-docs","path":"/docs/rest-api/domains/list-project-domains-by-apex-domain","distance":0.1299},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-a-domain","distance":0.1333},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-availability-for-multiple-domains","distance":0.1356},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-multiple-domains","distance":0.1359}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/domains/get-information-for-a-single-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains/list-project-domains-by-apex-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-availability-for-multiple-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/buy-multiple-domains","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/domains/list-project-domains-by-apex-domain","title":"List Project Domains by Apex Domain","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/projects/get-a-project-domain","distance":0.0945},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-project-domains-by-project-by-id-or-name","distance":0.1079},{"site":"vercel-docs","path":"/docs/rest-api/domains/list-all-the-domains","distance":0.1299},{"site":"vercel-docs","path":"/docs/rest-api/projects/verify-project-domain","distance":0.1406},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-a-project-domain","distance":0.155}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/projects/get-a-project-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-project-domains-by-project-by-id-or-name","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains/list-all-the-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/verify-project-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-a-project-domain","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/domains/remove-a-domain-by-name","title":"Remove a domain by name","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/reference"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-a-domain-from-a-project","distance":0.1143},{"site":"vercel-docs","path":"/docs/rest-api/dns/delete-a-dns-record","distance":0.1842},{"site":"vercel-docs","path":"/docs/rest-api/domains/add-an-existing-domain-to-the-vercel-platform","distance":0.1996},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/remove-a-domain","distance":0.2053},{"site":"vercel-docs","path":"/docs/rest-api/domains/list-all-the-domains","distance":0.2139}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-a-domain-from-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/dns/delete-a-dns-record","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains/add-an-existing-domain-to-the-vercel-platform","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/remove-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains/list-all-the-domains","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/domains/update-or-move-apex-domain","title":"Update or move apex domain","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/domains/add-an-existing-domain-to-the-vercel-platform","distance":0.1521},{"site":"vercel-docs","path":"/docs/rest-api/projects/move-a-project-domain","distance":0.1584},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/update-auto-renew-for-a-domain","distance":0.1631},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-a-project-domain","distance":0.1637},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/update-nameservers-for-a-domain","distance":0.1904}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/domains/add-an-existing-domain-to-the-vercel-platform","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/move-a-project-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/update-auto-renew-for-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-a-project-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/update-nameservers-for-a-domain","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/drains/create-a-new-drain","title":"Create a new Drain","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/drains/update-an-existing-drain","distance":0.0541},{"site":"vercel-docs","path":"/docs/rest-api/drains/find-a-drain-by-id","distance":0.0928},{"site":"vercel-docs","path":"/docs/rest-api/drains/retrieve-a-list-of-all-drains","distance":0.1212},{"site":"vercel-docs","path":"/docs/rest-api/drains/validate-drain-delivery-configuration","distance":0.1247},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/creates-a-new-integration-log-drain-deprecated","distance":0.1412}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/drains/update-an-existing-drain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/drains/find-a-drain-by-id","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/drains/retrieve-a-list-of-all-drains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/drains/validate-drain-delivery-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/creates-a-new-integration-log-drain-deprecated","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/drains/delete-a-drain","title":"Delete a drain","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/drains/retrieve-a-list-of-all-drains","distance":0.1253},{"site":"vercel-docs","path":"/docs/rest-api/drains/find-a-drain-by-id","distance":0.1386},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/deletes-a-configurable-log-drain-deprecated","distance":0.1501},{"site":"vercel-docs","path":"/docs/rest-api/drains/create-a-new-drain","distance":0.16},{"site":"vercel-docs","path":"/docs/rest-api/drains/update-an-existing-drain","distance":0.1738}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/drains/retrieve-a-list-of-all-drains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/drains/find-a-drain-by-id","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/deletes-a-configurable-log-drain-deprecated","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/drains/create-a-new-drain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/drains/update-an-existing-drain","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/drains/find-a-drain-by-id","title":"Find a Drain by id","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/drains/create-a-new-drain","distance":0.0928},{"site":"vercel-docs","path":"/docs/rest-api/drains/retrieve-a-list-of-all-drains","distance":0.0998},{"site":"vercel-docs","path":"/docs/rest-api/drains/update-an-existing-drain","distance":0.1104},{"site":"vercel-docs","path":"/docs/rest-api/drains/delete-a-drain","distance":0.1386},{"site":"vercel-docs","path":"/docs/rest-api/drains/validate-drain-delivery-configuration","distance":0.1667}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/drains/create-a-new-drain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/drains/retrieve-a-list-of-all-drains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/drains/update-an-existing-drain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/drains/delete-a-drain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/drains/validate-drain-delivery-configuration","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/drains/retrieve-a-list-of-all-drains","title":"Retrieve a list of all Drains","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/drains/find-a-drain-by-id","distance":0.0998},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/retrieves-a-list-of-all-the-log-drains-deprecated","distance":0.1145},{"site":"vercel-docs","path":"/docs/rest-api/drains/create-a-new-drain","distance":0.1212},{"site":"vercel-docs","path":"/docs/rest-api/drains/delete-a-drain","distance":0.1253},{"site":"vercel-docs","path":"/docs/rest-api/drains/update-an-existing-drain","distance":0.1453}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/drains/find-a-drain-by-id","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/retrieves-a-list-of-all-the-log-drains-deprecated","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/drains/create-a-new-drain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/drains/delete-a-drain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/drains/update-an-existing-drain","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/drains/update-an-existing-drain","title":"Update an existing Drain","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/drains/create-a-new-drain","distance":0.0541},{"site":"vercel-docs","path":"/docs/rest-api/drains/find-a-drain-by-id","distance":0.1104},{"site":"vercel-docs","path":"/docs/rest-api/drains/validate-drain-delivery-configuration","distance":0.1399},{"site":"vercel-docs","path":"/docs/rest-api/drains/retrieve-a-list-of-all-drains","distance":0.1453},{"site":"vercel-docs","path":"/docs/rest-api/drains/delete-a-drain","distance":0.1738}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/drains/create-a-new-drain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/drains/find-a-drain-by-id","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/drains/validate-drain-delivery-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/drains/retrieve-a-list-of-all-drains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/drains/delete-a-drain","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/drains/validate-drain-delivery-configuration","title":"Validate Drain delivery configuration","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/drains/create-a-new-drain","distance":0.1247},{"site":"vercel-docs","path":"/docs/rest-api/drains/update-an-existing-drain","distance":0.1399},{"site":"vercel-docs","path":"/docs/rest-api/drains/find-a-drain-by-id","distance":0.1667},{"site":"vercel-docs","path":"/docs/rest-api/drains/retrieve-a-list-of-all-drains","distance":0.1722},{"site":"vercel-docs","path":"/docs/rest-api/drains/delete-a-drain","distance":0.199}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/drains/create-a-new-drain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/drains/update-an-existing-drain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/drains/find-a-drain-by-id","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/drains/retrieve-a-list-of-all-drains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/drains/delete-a-drain","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/dangerously-delete-by-source-image","title":"Dangerously delete by source image","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/invalidate-by-source-image","distance":0.138},{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/dangerously-delete-by-tag","distance":0.1748},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-a-repository-image","distance":0.2357},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-an-image-manifest","distance":0.2522},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository-image","distance":0.2731}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/invalidate-by-source-image","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/dangerously-delete-by-tag","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-a-repository-image","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-an-image-manifest","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository-image","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/dangerously-delete-by-tag","title":"Dangerously delete by tag","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/invalidate-by-tag","distance":0.1246},{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/dangerously-delete-by-source-image","distance":0.1748},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-tags","distance":0.241},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository-tag","distance":0.2426},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-image-tags","distance":0.244}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/invalidate-by-tag","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/dangerously-delete-by-source-image","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-cache-tags-for-external-origins","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-tags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository-tag","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-image-tags","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/invalidate-by-source-image","title":"Invalidate by source image","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/dangerously-delete-by-source-image","distance":0.138},{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/invalidate-by-tag","distance":0.1862},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository-image","distance":0.2903},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-a-repository-image","distance":0.2922},{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/dangerously-delete-by-tag","distance":0.2984}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/dangerously-delete-by-source-image","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/invalidate-by-tag","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository-image","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-a-repository-image","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/dangerously-delete-by-tag","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/invalidate-by-tag","title":"Invalidate by tag","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/dangerously-delete-by-tag","distance":0.1246},{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/invalidate-by-source-image","distance":0.1862},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository-tag","distance":0.2561},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-tags","distance":0.2573},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-image-tags","distance":0.2584}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-manage-cache-tags-for-external-origins","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/dangerously-delete-by-tag","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/invalidate-by-source-image","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository-tag","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-tags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-image-tags","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/environment/create-a-custom-environment-for-the-current-project","title":"Create a custom environment for the current project.","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/environment/retrieve-a-custom-environment","distance":0.0613},{"site":"vercel-docs","path":"/docs/rest-api/environment/update-a-custom-environment","distance":0.0638},{"site":"vercel-docs","path":"/docs/rest-api/environment/remove-a-custom-environment","distance":0.0891},{"site":"vercel-docs","path":"/docs/rest-api/environment/retrieve-custom-environments","distance":0.0984},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-one-or-more-environment-variables","distance":0.1226}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/environment/retrieve-a-custom-environment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/update-a-custom-environment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/remove-a-custom-environment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/retrieve-custom-environments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-one-or-more-environment-variables","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/environment/create-one-or-more-shared-environment-variables","title":"Create one or more shared environment variables","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/environment/updates-one-or-more-shared-environment-variables","distance":0.0858},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-one-or-more-environment-variables","distance":0.1006},{"site":"vercel-docs","path":"/docs/rest-api/environment/lists-all-shared-environment-variables-for-a-team","distance":0.1158},{"site":"vercel-docs","path":"/docs/rest-api/environment/retrieve-the-decrypted-value-of-a-shared-environment-variable-by-id","distance":0.1496},{"site":"vercel-docs","path":"/docs/rest-api/environment/delete-one-or-more-env-var","distance":0.1536}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/environment/updates-one-or-more-shared-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-one-or-more-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/lists-all-shared-environment-variables-for-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/retrieve-the-decrypted-value-of-a-shared-environment-variable-by-id","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/delete-one-or-more-env-var","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/environment/delete-one-or-more-env-var","title":"Delete one or more Env Var","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/environment/create-one-or-more-shared-environment-variables","distance":0.1536},{"site":"vercel-docs","path":"/docs/rest-api/projects/batch-remove-environment-variables","distance":0.1626},{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-an-environment-variable","distance":0.1723},{"site":"vercel-docs","path":"/docs/rest-api/environment/updates-one-or-more-shared-environment-variables","distance":0.1726},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-one-or-more-environment-variables","distance":0.1914}],"related":[{"site":"v0","path":"/docs/api/v1/reference/projects/delete-env-vars","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/create-one-or-more-shared-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/batch-remove-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-an-environment-variable","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/updates-one-or-more-shared-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-one-or-more-environment-variables","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/environment/disconnects-a-shared-environment-variable-for-a-given-project","title":"Disconnects a shared environment variable for a given project","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-an-environment-variable","distance":0.1918},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-environment-variables-of-a-project-by-id-or-name","distance":0.22},{"site":"vercel-docs","path":"/docs/rest-api/projects/batch-remove-environment-variables","distance":0.2203},{"site":"vercel-docs","path":"/docs/rest-api/environment/lists-all-shared-environment-variables-for-a-team","distance":0.2259},{"site":"vercel-docs","path":"/docs/rest-api/environment/retrieve-the-decrypted-value-of-a-shared-environment-variable-by-id","distance":0.2263}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-an-environment-variable","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-environment-variables-of-a-project-by-id-or-name","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/batch-remove-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/lists-all-shared-environment-variables-for-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/retrieve-the-decrypted-value-of-a-shared-environment-variable-by-id","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/environment/lists-all-shared-environment-variables-for-a-team","title":"Lists all Shared Environment Variables for a team","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/environment/create-one-or-more-shared-environment-variables","distance":0.1158},{"site":"vercel-docs","path":"/docs/rest-api/environment/retrieve-the-decrypted-value-of-a-shared-environment-variable-by-id","distance":0.1276},{"site":"vercel-docs","path":"/docs/rest-api/environment/updates-one-or-more-shared-environment-variables","distance":0.1475},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-environment-variables-of-a-project-by-id-or-name","distance":0.1809},{"site":"vercel-docs","path":"/docs/rest-api/environment/retrieve-a-custom-environment","distance":0.1932}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/environment/create-one-or-more-shared-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/retrieve-the-decrypted-value-of-a-shared-environment-variable-by-id","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/updates-one-or-more-shared-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-environment-variables-of-a-project-by-id-or-name","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/retrieve-a-custom-environment","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/environment/remove-a-custom-environment","title":"Remove a custom environment","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/environment/retrieve-a-custom-environment","distance":0.0695},{"site":"vercel-docs","path":"/docs/rest-api/environment/create-a-custom-environment-for-the-current-project","distance":0.0891},{"site":"vercel-docs","path":"/docs/rest-api/environment/update-a-custom-environment","distance":0.0928},{"site":"vercel-docs","path":"/docs/rest-api/environment/retrieve-custom-environments","distance":0.1082},{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-an-environment-variable","distance":0.1172}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/environment/retrieve-a-custom-environment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/create-a-custom-environment-for-the-current-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/update-a-custom-environment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/retrieve-custom-environments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-an-environment-variable","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/environment/retrieve-a-custom-environment","title":"Retrieve a custom environment","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/environment/retrieve-custom-environments","distance":0.044},{"site":"vercel-docs","path":"/docs/rest-api/environment/create-a-custom-environment-for-the-current-project","distance":0.0613},{"site":"vercel-docs","path":"/docs/rest-api/environment/remove-a-custom-environment","distance":0.0695},{"site":"vercel-docs","path":"/docs/rest-api/environment/update-a-custom-environment","distance":0.0723},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-environment-variables-of-a-project-by-id-or-name","distance":0.14}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/environment/retrieve-custom-environments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/create-a-custom-environment-for-the-current-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/remove-a-custom-environment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/update-a-custom-environment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-environment-variables-of-a-project-by-id-or-name","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/environment/retrieve-custom-environments","title":"Retrieve custom environments","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/environment/retrieve-a-custom-environment","distance":0.044},{"site":"vercel-docs","path":"/docs/rest-api/environment/create-a-custom-environment-for-the-current-project","distance":0.0984},{"site":"vercel-docs","path":"/docs/rest-api/environment/remove-a-custom-environment","distance":0.1082},{"site":"vercel-docs","path":"/docs/rest-api/environment/update-a-custom-environment","distance":0.1178},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-environment-variables-of-a-project-by-id-or-name","distance":0.1537}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/environment/retrieve-a-custom-environment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/create-a-custom-environment-for-the-current-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/remove-a-custom-environment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/update-a-custom-environment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-environment-variables-of-a-project-by-id-or-name","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/environment/retrieve-the-decrypted-value-of-a-shared-environment-variable-by-id","title":"Retrieve the decrypted value of a Shared Environment Variable by id.","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-decrypted-value-of-an-environment-variable-of-a-project-by-id","distance":0.1185},{"site":"vercel-docs","path":"/docs/rest-api/environment/lists-all-shared-environment-variables-for-a-team","distance":0.1276},{"site":"vercel-docs","path":"/docs/rest-api/environment/create-one-or-more-shared-environment-variables","distance":0.1496},{"site":"vercel-docs","path":"/docs/rest-api/environment/updates-one-or-more-shared-environment-variables","distance":0.1849},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-environment-variables-of-a-project-by-id-or-name","distance":0.1879}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-decrypted-value-of-an-environment-variable-of-a-project-by-id","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/lists-all-shared-environment-variables-for-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/create-one-or-more-shared-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/updates-one-or-more-shared-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-environment-variables-of-a-project-by-id-or-name","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/environment/update-a-custom-environment","title":"Update a custom environment","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/environment/create-a-custom-environment-for-the-current-project","distance":0.0638},{"site":"vercel-docs","path":"/docs/rest-api/environment/retrieve-a-custom-environment","distance":0.0723},{"site":"vercel-docs","path":"/docs/rest-api/environment/remove-a-custom-environment","distance":0.0928},{"site":"vercel-docs","path":"/docs/rest-api/environment/retrieve-custom-environments","distance":0.1178},{"site":"vercel-docs","path":"/docs/rest-api/projects/edit-an-environment-variable","distance":0.1516}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/environment/create-a-custom-environment-for-the-current-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/retrieve-a-custom-environment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/remove-a-custom-environment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/retrieve-custom-environments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/edit-an-environment-variable","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/environment/updates-one-or-more-shared-environment-variables","title":"Updates one or more shared environment variables","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/environment/create-one-or-more-shared-environment-variables","distance":0.0858},{"site":"vercel-docs","path":"/docs/rest-api/environment/lists-all-shared-environment-variables-for-a-team","distance":0.1475},{"site":"vercel-docs","path":"/docs/rest-api/environment/update-a-custom-environment","distance":0.1604},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-one-or-more-environment-variables","distance":0.1643},{"site":"vercel-docs","path":"/docs/rest-api/environment/delete-one-or-more-env-var","distance":0.1726}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/environment/create-one-or-more-shared-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/lists-all-shared-environment-variables-for-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/update-a-custom-environment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-one-or-more-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/delete-one-or-more-env-var","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-a-flag","title":"Create a flag","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-a-flag","distance":0.0694},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-a-flag","distance":0.0755},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-flags","distance":0.1054},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-a-segment","distance":0.1292},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-project-flag-settings","distance":0.1295}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-a-flag","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-a-flag","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-flags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-a-segment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-project-flag-settings","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-a-segment","title":"Create a segment","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-a-segment","distance":0.0686},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-segments","distance":0.0782},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-a-segment","distance":0.0791},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/delete-a-segment","distance":0.1211},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-a-flag","distance":0.1292}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-a-segment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-segments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-a-segment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/delete-a-segment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-a-flag","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-an-sdk-key","title":"Create an SDK key","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-all-sdk-keys","distance":0.0977},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/delete-an-sdk-key","distance":0.1303},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-a-flag","distance":0.1838},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-a-signing-key","distance":0.2131},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-project-flag-settings","distance":0.2269}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-all-sdk-keys","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/delete-an-sdk-key","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-a-flag","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-a-signing-key","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-project-flag-settings","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/delete-a-flag","title":"Delete a flag","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-a-flag","distance":0.1216},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-a-flag","distance":0.1353},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/delete-a-segment","distance":0.1368},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-a-flag","distance":0.161},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-flag-versions","distance":0.1678}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-a-flag","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-a-flag","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/delete-a-segment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-a-flag","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-flag-versions","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/delete-a-segment","title":"Delete a segment","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-a-segment","distance":0.1068},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-a-segment","distance":0.1211},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-segments","distance":0.1266},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-a-segment","distance":0.1309},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/delete-a-flag","distance":0.1368}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-a-segment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-a-segment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-segments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-a-segment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/delete-a-flag","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/delete-an-sdk-key","title":"Delete an SDK key","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-an-sdk-key","distance":0.1303},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-all-sdk-keys","distance":0.1671},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/delete-a-flag","distance":0.2224},{"site":"vercel-docs","path":"/docs/rest-api/projects/delete-a-project","distance":0.2379},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/delete-a-segment","distance":0.2411}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-an-sdk-key","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-all-sdk-keys","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/delete-a-flag","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/delete-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/delete-a-segment","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-a-flag","title":"Get a flag","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-a-flag","distance":0.0694},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-a-flag","distance":0.0985},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-flags","distance":0.0992},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-project-flag-settings","distance":0.1021},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-flag-versions","distance":0.1056}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-a-flag","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-a-flag","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-flags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-project-flag-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-flag-versions","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-a-segment","title":"Get a segment","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-segments","distance":0.056},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-a-segment","distance":0.0686},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-a-segment","distance":0.0872},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/delete-a-segment","distance":0.1068},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-a-flag","distance":0.1304}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-segments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-a-segment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-a-segment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/delete-a-segment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-a-flag","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-all-sdk-keys","title":"Get all SDK keys","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-an-sdk-key","distance":0.0977},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/delete-an-sdk-key","distance":0.1671},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-project-flag-settings","distance":0.1815},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-flags","distance":0.2005},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-a-flag","distance":0.2039}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-an-sdk-key","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/delete-an-sdk-key","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-project-flag-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-flags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-a-flag","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-project-flag-settings","title":"Get project flag settings","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-project-flag-settings","distance":0.0708},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-team-project-flag-settings","distance":0.0746},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-a-flag","distance":0.1021},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-flags","distance":0.1187},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-flag-versions","distance":0.1311}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-project-flag-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-team-project-flag-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-a-flag","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-flags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-flag-versions","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-all-flags-for-a-team","title":"List all flags for a team","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-flags","distance":0.0633},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-team-project-flag-settings","distance":0.0835},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-flag-versions","distance":0.1507},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-a-flag","distance":0.1509},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-a-flag","distance":0.1746}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-flags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-team-project-flag-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-flag-versions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-a-flag","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-a-flag","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-flag-versions","title":"List flag versions","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-flags","distance":0.0915},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-a-flag","distance":0.1056},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-a-flag","distance":0.1259},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-a-flag","distance":0.1299},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-project-flag-settings","distance":0.1311}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-flags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-a-flag","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-a-flag","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-a-flag","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-project-flag-settings","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-flags","title":"List flags","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-all-flags-for-a-team","distance":0.0633},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-flag-versions","distance":0.0915},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-a-flag","distance":0.0992},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-a-flag","distance":0.1054},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-team-project-flag-settings","distance":0.1082}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-all-flags-for-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-flag-versions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-a-flag","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-a-flag","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-team-project-flag-settings","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-segments","title":"List segments","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-a-segment","distance":0.056},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-a-segment","distance":0.0782},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-a-segment","distance":0.1023},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/delete-a-segment","distance":0.1266},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-flags","distance":0.1471}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-a-segment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-a-segment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-a-segment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/delete-a-segment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-flags","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-team-project-flag-settings","title":"List team project flag settings","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-project-flag-settings","distance":0.0746},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-all-flags-for-a-team","distance":0.0835},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-flags","distance":0.1082},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-project-flag-settings","distance":0.1283},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-flag-versions","distance":0.1344}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-project-flag-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-all-flags-for-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-flags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-project-flag-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-flag-versions","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/retrieve-the-feature-flags-of-a-deployment","title":"Retrieve the feature flags of a deployment","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-flags","distance":0.1706},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","distance":0.1794},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-a-flag","distance":0.1851},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployment-files","distance":0.1908},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-team-project-flag-settings","distance":0.1917}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-flags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-a-flag","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployment-files","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-team-project-flag-settings","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-a-flag","title":"Update a flag","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-project-flag-settings","distance":0.0711},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-a-flag","distance":0.0755},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-a-flag","distance":0.0985},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-a-segment","distance":0.1059},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-flag-versions","distance":0.1259}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-project-flag-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-a-flag","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-a-flag","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-a-segment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-flag-versions","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-a-segment","title":"Update a segment","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-a-segment","distance":0.0791},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-a-segment","distance":0.0872},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-segments","distance":0.1023},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-a-flag","distance":0.1059},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-project-flag-settings","distance":0.1244}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-a-segment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-a-segment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-segments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-a-flag","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-project-flag-settings","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-project-flag-settings","title":"Update project flag settings","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-project-flag-settings","distance":0.0708},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-a-flag","distance":0.0711},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-a-segment","distance":0.1244},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-team-project-flag-settings","distance":0.1283},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-a-flag","distance":0.1295}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/get-project-flag-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-a-flag","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-a-segment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/list-team-project-flag-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/create-a-flag","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config","title":"Create a Global Config","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config","distance":0.0655},{"site":"vercel-docs","path":"/docs/rest-api/global-config/update-a-global-config","distance":0.0784},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-configs","distance":0.0843},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config-token","distance":0.0937},{"site":"vercel-docs","path":"/docs/rest-api/global-config/delete-a-global-config","distance":0.1195}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/update-a-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-configs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config-token","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/delete-a-global-config","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config-token","title":"Create a Global Config token","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config","distance":0.0937},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-token-meta-data","distance":0.0978},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-all-tokens-of-a-global-config","distance":0.1035},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config","distance":0.1428},{"site":"vercel-docs","path":"/docs/rest-api/global-config/delete-one-or-more-global-config-tokens","distance":0.1437}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-token-meta-data","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-all-tokens-of-a-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/delete-one-or-more-global-config-tokens","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/global-config/delete-a-global-config","title":"Delete a Global Config","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/global-config/delete-a-global-config-s-schema","distance":0.0757},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config","distance":0.1124},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config","distance":0.1195},{"site":"vercel-docs","path":"/docs/rest-api/global-config/delete-one-or-more-global-config-tokens","distance":0.128},{"site":"vercel-docs","path":"/docs/rest-api/global-config/update-a-global-config","distance":0.1302}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/global-config/delete-a-global-config-s-schema","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/delete-one-or-more-global-config-tokens","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/update-a-global-config","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/global-config/delete-a-global-config-s-schema","title":"Delete a Global Config's schema","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/global-config/delete-a-global-config","distance":0.0757},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-schema","distance":0.1073},{"site":"vercel-docs","path":"/docs/rest-api/global-config/update-global-config-schema","distance":0.1191},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config","distance":0.1736},{"site":"vercel-docs","path":"/docs/rest-api/global-config/delete-one-or-more-global-config-tokens","distance":0.1819}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/global-config/delete-a-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-schema","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/update-global-config-schema","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/delete-one-or-more-global-config-tokens","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/global-config/delete-one-or-more-global-config-tokens","title":"Delete one or more Global Config tokens","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/global-config/delete-a-global-config","distance":0.128},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-all-tokens-of-a-global-config","distance":0.1283},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config-token","distance":0.1437},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-token-meta-data","distance":0.1754},{"site":"vercel-docs","path":"/docs/rest-api/global-config/delete-a-global-config-s-schema","distance":0.1819}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/global-config/delete-a-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-all-tokens-of-a-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config-token","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-token-meta-data","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/delete-a-global-config-s-schema","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config","title":"Get a Global Config","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-configs","distance":0.0373},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config-item","distance":0.0558},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config","distance":0.0655},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-items","distance":0.0692},{"site":"vercel-docs","path":"/docs/rest-api/global-config/update-a-global-config","distance":0.0781}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-configs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config-item","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-items","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/update-a-global-config","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config-item","title":"Get a Global Config item","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-items","distance":0.0404},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config","distance":0.0558},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-configs","distance":0.0976},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config","distance":0.128},{"site":"vercel-docs","path":"/docs/rest-api/global-config/update-a-global-config","distance":0.1402}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-items","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-configs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/update-a-global-config","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-all-tokens-of-a-global-config","title":"Get all tokens of a Global Config","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-token-meta-data","distance":0.0741},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config","distance":0.0987},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-configs","distance":0.0993},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config-token","distance":0.1035},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-items","distance":0.1163}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-token-meta-data","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-configs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config-token","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-items","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-backup","title":"Get Global Config backup","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-backups","distance":0.0413},{"site":"vercel-docs","path":"/docs/rest-api/global-config/restore-global-config-backup","distance":0.0756},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config","distance":0.1139},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-configs","distance":0.1353},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config-item","distance":0.1593}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-backups","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/restore-global-config-backup","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-configs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config-item","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-backups","title":"Get Global Config backups","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-backup","distance":0.0413},{"site":"vercel-docs","path":"/docs/rest-api/global-config/restore-global-config-backup","distance":0.0784},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-configs","distance":0.1166},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config","distance":0.1209},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-items","distance":0.1524}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-backup","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/restore-global-config-backup","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-configs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-items","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-items","title":"Get Global Config items","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config-item","distance":0.0404},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config","distance":0.0692},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-configs","distance":0.0774},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-all-tokens-of-a-global-config","distance":0.1163},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config","distance":0.1197}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config-item","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-configs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-all-tokens-of-a-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-schema","title":"Get Global Config schema","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config","distance":0.0868},{"site":"vercel-docs","path":"/docs/rest-api/global-config/update-global-config-schema","distance":0.091},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-configs","distance":0.097},{"site":"vercel-docs","path":"/docs/rest-api/global-config/delete-a-global-config-s-schema","distance":0.1073},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-items","distance":0.1303}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/update-global-config-schema","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-configs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/delete-a-global-config-s-schema","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-items","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-token-meta-data","title":"Get Global Config token meta data","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-all-tokens-of-a-global-config","distance":0.0741},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config-token","distance":0.0978},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config","distance":0.1124},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-configs","distance":0.1215},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-items","distance":0.1418}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-all-tokens-of-a-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config-token","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-configs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-items","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-configs","title":"Get Global Configs","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config","distance":0.0373},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-items","distance":0.0774},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config","distance":0.0843},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-schema","distance":0.097},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config-item","distance":0.0976}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-items","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-schema","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config-item","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/global-config/restore-global-config-backup","title":"Restore Global Config backup","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-backup","distance":0.0756},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-backups","distance":0.0784},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config","distance":0.1671},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config","distance":0.1727},{"site":"vercel-docs","path":"/docs/rest-api/global-config/delete-a-global-config","distance":0.1784}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-backup","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-backups","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/delete-a-global-config","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/global-config/update-a-global-config","title":"Update a Global Config","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config","distance":0.0781},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config","distance":0.0784},{"site":"vercel-docs","path":"/docs/rest-api/global-config/update-global-config-schema","distance":0.0817},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-configs","distance":0.1138},{"site":"vercel-docs","path":"/docs/rest-api/global-config/delete-a-global-config","distance":0.1302}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/update-global-config-schema","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-configs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/delete-a-global-config","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/global-config/update-global-config-items-in-batch","title":"Update Global Config items in batch","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli/global-config"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/global-config/update-a-global-config","distance":0.1403},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-items","distance":0.1634},{"site":"vercel-docs","path":"/docs/rest-api/global-config/update-global-config-schema","distance":0.182},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config-item","distance":0.2009},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config","distance":0.2027}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/global-config/update-a-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-items","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/update-global-config-schema","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config-item","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/global-config/update-global-config-schema","title":"Update Global Config schema","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/global-config/update-a-global-config","distance":0.0817},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-schema","distance":0.091},{"site":"vercel-docs","path":"/docs/rest-api/global-config/delete-a-global-config-s-schema","distance":0.1191},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config","distance":0.1506},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config","distance":0.1676}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/global-config/update-a-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-schema","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/delete-a-global-config-s-schema","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/integrations/connect-integration-resource-to-project","title":"Connect integration resource to project","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"v0","path":"/docs/api/v1/guides/handling-integrations"},{"site":"v0","path":"/docs/api/v2/guides/handling-integrations"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resource","distance":0.1621},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resources","distance":0.1795},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/delete-integration-resource","distance":0.2138},{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team","distance":0.2236},{"site":"vercel-docs","path":"/docs/rest-api/integrations/retrieve-an-integration-configuration","distance":0.2275}],"related":[{"site":"v0","path":"/docs/api/v1/guides/handling-integrations","via":"inbound"},{"site":"v0","path":"/docs/api/v2/guides/handling-integrations","via":"inbound"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resource","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resources","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/delete-integration-resource","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/retrieve-an-integration-configuration","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/integrations/create-integration-store-free-and-paid-plans","title":"Create integration store \\(free and paid plans\\)","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"v0","path":"/docs/api/v1/guides/handling-integrations"},{"site":"v0","path":"/docs/api/v2/guides/handling-integrations"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/integrations/list-integration-billing-plans","distance":0.1637},{"site":"vercel-docs","path":"/docs/rest-api/integrations/retrieve-an-integration-configuration","distance":0.1918},{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team","distance":0.2165},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resource","distance":0.2225},{"site":"vercel-docs","path":"/docs/rest-api/billing/purchase-credits","distance":0.2256}],"related":[{"site":"v0","path":"/docs/api/v1/guides/handling-integrations","via":"inbound"},{"site":"v0","path":"/docs/api/v2/guides/handling-integrations","via":"inbound"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/list-integration-billing-plans","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/retrieve-an-integration-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resource","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/billing/purchase-credits","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/integrations/delete-an-integration-configuration","title":"Delete an integration configuration","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/delete-integration-resource","distance":0.1536},{"site":"vercel-docs","path":"/docs/rest-api/integrations/list-products-for-integration-configuration","distance":0.2071},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/deletes-the-integration-log-drain-with-the-provided-id-deprecated","distance":0.2107},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/delete-rolling-release-configuration","distance":0.2173},{"site":"vercel-docs","path":"/docs/rest-api/global-config/delete-a-global-config","distance":0.2233}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/delete-integration-resource","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/list-products-for-integration-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/deletes-the-integration-log-drain-with-the-provided-id-deprecated","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/delete-rolling-release-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/delete-a-global-config","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team","title":"Get configurations for the authenticated user or team","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/integrations/retrieve-an-integration-configuration","distance":0.0538},{"site":"vercel-docs","path":"/docs/rest-api/integrations/list-products-for-integration-configuration","distance":0.1661},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-a-list-of-projects","distance":0.1743},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/list-virtual-model-configs","distance":0.1793},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-configs","distance":0.1805}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/integrations/retrieve-an-integration-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/list-products-for-integration-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-a-list-of-projects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/list-virtual-model-configs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-configs","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/integrations/list-git-namespaces-by-provider","title":"List git namespaces by provider","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/integrations/list-git-repositories-linked-to-namespace-by-provider","distance":0.0556},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repositories","distance":0.256},{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team","distance":0.2714},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-permissions","distance":0.2737},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-access-groups-for-a-team-project-or-member","distance":0.2749}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/integrations/list-git-repositories-linked-to-namespace-by-provider","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repositories","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-permissions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-access-groups-for-a-team-project-or-member","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/integrations/list-git-repositories-linked-to-namespace-by-provider","title":"List git repositories linked to namespace by provider","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/integrations/list-git-namespaces-by-provider","distance":0.0556},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repositories","distance":0.1886},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-permissions","distance":0.2252},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-images","distance":0.2448},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository","distance":0.2482}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/integrations/list-git-namespaces-by-provider","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repositories","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-permissions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-images","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/integrations/list-integration-billing-plans","title":"List integration billing plans","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/integrations/create-integration-store-free-and-paid-plans","distance":0.1637},{"site":"vercel-docs","path":"/docs/rest-api/integrations/list-products-for-integration-configuration","distance":0.1861},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-billing-data","distance":0.2364},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resources","distance":0.2468},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resource","distance":0.247}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/integrations/create-integration-store-free-and-paid-plans","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/list-products-for-integration-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-billing-data","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resources","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resource","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/integrations/list-products-for-integration-configuration","title":"List products for integration configuration","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/integrations/retrieve-an-integration-configuration","distance":0.1619},{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team","distance":0.1661},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resources","distance":0.184},{"site":"vercel-docs","path":"/docs/rest-api/integrations/list-integration-billing-plans","distance":0.1861},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resource","distance":0.1948}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/integrations/retrieve-an-integration-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resources","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/list-integration-billing-plans","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resource","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/integrations/retrieve-an-integration-configuration","title":"Retrieve an integration configuration","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team","distance":0.0538},{"site":"vercel-docs","path":"/docs/rest-api/integrations/list-products-for-integration-configuration","distance":0.1619},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resource","distance":0.1756},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resources","distance":0.1813},{"site":"vercel-docs","path":"/docs/rest-api/integrations/create-integration-store-free-and-paid-plans","distance":0.1918}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/list-products-for-integration-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resource","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resources","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/create-integration-store-free-and-paid-plans","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/kms/activate-a-signing-key","title":"Activate a signing key","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/kms/create-a-signing-key","distance":0.0545},{"site":"vercel-docs","path":"/docs/rest-api/kms/revoke-a-signing-key","distance":0.1126},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer","distance":0.1724},{"site":"vercel-docs","path":"/docs/rest-api/kms/sign-a-message","distance":0.1992},{"site":"vercel-docs","path":"/docs/rest-api/kms/get-an-issuer","distance":0.2035}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/kms/create-a-signing-key","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/revoke-a-signing-key","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/sign-a-message","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/get-an-issuer","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-a-signing-key","title":"Create a signing key","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/kms/activate-a-signing-key","distance":0.0545},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer","distance":0.11},{"site":"vercel-docs","path":"/docs/rest-api/kms/revoke-a-signing-key","distance":0.1136},{"site":"vercel-docs","path":"/docs/rest-api/kms/sign-a-message","distance":0.1507},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer-policy","distance":0.1683}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/kms/activate-a-signing-key","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/revoke-a-signing-key","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/sign-a-message","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer-policy","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer","title":"Create an issuer","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/kms/get-an-issuer","distance":0.0621},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer-policy","distance":0.0667},{"site":"vercel-docs","path":"/docs/rest-api/kms/update-an-issuer","distance":0.0779},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-a-signing-key","distance":0.11},{"site":"vercel-docs","path":"/docs/rest-api/kms/update-an-issuer-policy","distance":0.1275}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/kms/get-an-issuer","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer-policy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/update-an-issuer","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-a-signing-key","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/update-an-issuer-policy","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer-policy","title":"Create an issuer policy","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer","distance":0.0667},{"site":"vercel-docs","path":"/docs/rest-api/kms/update-an-issuer-policy","distance":0.0703},{"site":"vercel-docs","path":"/docs/rest-api/kms/delete-an-issuer-policy","distance":0.1178},{"site":"vercel-docs","path":"/docs/rest-api/kms/update-an-issuer","distance":0.1245},{"site":"vercel-docs","path":"/docs/rest-api/kms/get-an-issuer","distance":0.1254}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/update-an-issuer-policy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/delete-an-issuer-policy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/update-an-issuer","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/get-an-issuer","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/kms/delete-an-issuer","title":"Delete an issuer","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/kms/delete-an-issuer-policy","distance":0.0849},{"site":"vercel-docs","path":"/docs/rest-api/kms/get-an-issuer","distance":0.1318},{"site":"vercel-docs","path":"/docs/rest-api/kms/update-an-issuer","distance":0.1482},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer","distance":0.1501},{"site":"vercel-docs","path":"/docs/rest-api/kms/list-issuers","distance":0.1787}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/kms/delete-an-issuer-policy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/get-an-issuer","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/update-an-issuer","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/list-issuers","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/kms/delete-an-issuer-policy","title":"Delete an issuer policy","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/kms/delete-an-issuer","distance":0.0849},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer-policy","distance":0.1178},{"site":"vercel-docs","path":"/docs/rest-api/kms/update-an-issuer-policy","distance":0.1253},{"site":"vercel-docs","path":"/docs/rest-api/kms/update-an-issuer","distance":0.1843},{"site":"vercel-docs","path":"/docs/rest-api/kms/get-an-issuer","distance":0.187}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/kms/delete-an-issuer","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer-policy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/update-an-issuer-policy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/update-an-issuer","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/get-an-issuer","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/kms/get-an-issuer","title":"Get an issuer","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer","distance":0.0621},{"site":"vercel-docs","path":"/docs/rest-api/kms/update-an-issuer","distance":0.0813},{"site":"vercel-docs","path":"/docs/rest-api/kms/list-issuers","distance":0.1122},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer-policy","distance":0.1254},{"site":"vercel-docs","path":"/docs/rest-api/kms/delete-an-issuer","distance":0.1318}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/update-an-issuer","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/list-issuers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer-policy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/delete-an-issuer","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/kms/list-issuers","title":"List issuers","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/kms/get-an-issuer","distance":0.1122},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer","distance":0.1413},{"site":"vercel-docs","path":"/docs/rest-api/kms/update-an-issuer","distance":0.152},{"site":"vercel-docs","path":"/docs/rest-api/kms/delete-an-issuer","distance":0.1787},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer-policy","distance":0.1801}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/kms/get-an-issuer","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/update-an-issuer","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/delete-an-issuer","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer-policy","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/kms/revoke-a-signing-key","title":"Revoke a signing key","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/kms/activate-a-signing-key","distance":0.1126},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-a-signing-key","distance":0.1136},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer","distance":0.1982},{"site":"vercel-docs","path":"/docs/rest-api/kms/get-an-issuer","distance":0.2189},{"site":"vercel-docs","path":"/docs/rest-api/kms/sign-a-token","distance":0.2232}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/kms/activate-a-signing-key","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-a-signing-key","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/get-an-issuer","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/sign-a-token","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/kms/sign-a-message","title":"Sign a message","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/kms/sign-a-token","distance":0.1396},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-a-signing-key","distance":0.1507},{"site":"vercel-docs","path":"/docs/rest-api/kms/activate-a-signing-key","distance":0.1992},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer","distance":0.2003},{"site":"vercel-docs","path":"/docs/kms/ts-sdk-reference","distance":0.2102}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/kms/sign-a-token","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-a-signing-key","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/activate-a-signing-key","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer","via":"neighbor"},{"site":"vercel-docs","path":"/docs/kms/ts-sdk-reference","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/kms/sign-a-token","title":"Sign a token","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/kms/sign-a-message","distance":0.1396},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-a-signing-key","distance":0.1709},{"site":"vercel-docs","path":"/docs/kms/ts-sdk-reference","distance":0.1853},{"site":"vercel-docs","path":"/docs/kms/concepts/authentication","distance":0.1905},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer","distance":0.2031}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/kms/sign-a-message","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-a-signing-key","via":"neighbor"},{"site":"vercel-docs","path":"/docs/kms/ts-sdk-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/kms/concepts/authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/kms/update-an-issuer","title":"Update an issuer","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/kms/update-an-issuer-policy","distance":0.0685},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer","distance":0.0779},{"site":"vercel-docs","path":"/docs/rest-api/kms/get-an-issuer","distance":0.0813},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer-policy","distance":0.1245},{"site":"vercel-docs","path":"/docs/rest-api/kms/delete-an-issuer","distance":0.1482}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/kms/update-an-issuer-policy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/get-an-issuer","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer-policy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/delete-an-issuer","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/kms/update-an-issuer-policy","title":"Update an issuer policy","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/kms/update-an-issuer","distance":0.0685},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer-policy","distance":0.0703},{"site":"vercel-docs","path":"/docs/rest-api/kms/delete-an-issuer-policy","distance":0.1253},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer","distance":0.1275},{"site":"vercel-docs","path":"/docs/rest-api/kms/get-an-issuer","distance":0.1535}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/kms/update-an-issuer","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer-policy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/delete-an-issuer-policy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/create-an-issuer","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/kms/get-an-issuer","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/creates-a-configurable-log-drain-deprecated","title":"Creates a Configurable Log Drain \\(deprecated\\)","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/logdrains/retrieves-a-configurable-log-drain-deprecated","distance":0.0434},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/creates-a-new-integration-log-drain-deprecated","distance":0.064},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/deletes-a-configurable-log-drain-deprecated","distance":0.0686},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/retrieves-a-list-of-all-the-log-drains-deprecated","distance":0.1064},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/retrieves-a-list-of-integration-log-drains-deprecated","distance":0.1227}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/logdrains/retrieves-a-configurable-log-drain-deprecated","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/creates-a-new-integration-log-drain-deprecated","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/deletes-a-configurable-log-drain-deprecated","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/retrieves-a-list-of-all-the-log-drains-deprecated","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/retrieves-a-list-of-integration-log-drains-deprecated","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/creates-a-new-integration-log-drain-deprecated","title":"Creates a new Integration Log Drain \\(deprecated\\)","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/logdrains/creates-a-configurable-log-drain-deprecated","distance":0.064},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/retrieves-a-list-of-integration-log-drains-deprecated","distance":0.0815},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/retrieves-a-configurable-log-drain-deprecated","distance":0.0938},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/retrieves-a-list-of-all-the-log-drains-deprecated","distance":0.1213},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/deletes-a-configurable-log-drain-deprecated","distance":0.1386}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/logdrains/creates-a-configurable-log-drain-deprecated","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/retrieves-a-list-of-integration-log-drains-deprecated","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/retrieves-a-configurable-log-drain-deprecated","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/retrieves-a-list-of-all-the-log-drains-deprecated","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/deletes-a-configurable-log-drain-deprecated","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/deletes-a-configurable-log-drain-deprecated","title":"Deletes a Configurable Log Drain \\(deprecated\\)","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/logdrains/retrieves-a-configurable-log-drain-deprecated","distance":0.0604},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/creates-a-configurable-log-drain-deprecated","distance":0.0686},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/deletes-the-integration-log-drain-with-the-provided-id-deprecated","distance":0.0946},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/retrieves-a-list-of-all-the-log-drains-deprecated","distance":0.1247},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/creates-a-new-integration-log-drain-deprecated","distance":0.1386}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/logdrains/retrieves-a-configurable-log-drain-deprecated","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/creates-a-configurable-log-drain-deprecated","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/deletes-the-integration-log-drain-with-the-provided-id-deprecated","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/retrieves-a-list-of-all-the-log-drains-deprecated","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/creates-a-new-integration-log-drain-deprecated","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/deletes-the-integration-log-drain-with-the-provided-id-deprecated","title":"Deletes the Integration log drain with the provided \\`id\\` \\(deprecated\\)","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/logdrains/deletes-a-configurable-log-drain-deprecated","distance":0.0946},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/retrieves-a-list-of-integration-log-drains-deprecated","distance":0.1383},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/retrieves-a-configurable-log-drain-deprecated","distance":0.1397},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/creates-a-new-integration-log-drain-deprecated","distance":0.1433},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/creates-a-configurable-log-drain-deprecated","distance":0.1662}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/logdrains/deletes-a-configurable-log-drain-deprecated","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/retrieves-a-list-of-integration-log-drains-deprecated","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/retrieves-a-configurable-log-drain-deprecated","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/creates-a-new-integration-log-drain-deprecated","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/creates-a-configurable-log-drain-deprecated","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/retrieves-a-configurable-log-drain-deprecated","title":"Retrieves a Configurable Log Drain \\(deprecated\\)","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/logdrains/creates-a-configurable-log-drain-deprecated","distance":0.0434},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/retrieves-a-list-of-all-the-log-drains-deprecated","distance":0.0598},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/deletes-a-configurable-log-drain-deprecated","distance":0.0604},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/retrieves-a-list-of-integration-log-drains-deprecated","distance":0.075},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/creates-a-new-integration-log-drain-deprecated","distance":0.0938}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/logdrains/creates-a-configurable-log-drain-deprecated","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/retrieves-a-list-of-all-the-log-drains-deprecated","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/deletes-a-configurable-log-drain-deprecated","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/retrieves-a-list-of-integration-log-drains-deprecated","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/creates-a-new-integration-log-drain-deprecated","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/retrieves-a-list-of-all-the-log-drains-deprecated","title":"Retrieves a list of all the Log Drains \\(deprecated\\)","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/logdrains/retrieves-a-configurable-log-drain-deprecated","distance":0.0598},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/retrieves-a-list-of-integration-log-drains-deprecated","distance":0.0602},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/creates-a-configurable-log-drain-deprecated","distance":0.1064},{"site":"vercel-docs","path":"/docs/rest-api/drains/retrieve-a-list-of-all-drains","distance":0.1145},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/creates-a-new-integration-log-drain-deprecated","distance":0.1213}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/logdrains/retrieves-a-configurable-log-drain-deprecated","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/retrieves-a-list-of-integration-log-drains-deprecated","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/creates-a-configurable-log-drain-deprecated","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/drains/retrieve-a-list-of-all-drains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/creates-a-new-integration-log-drain-deprecated","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/retrieves-a-list-of-integration-log-drains-deprecated","title":"Retrieves a list of Integration log drains \\(deprecated\\)","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/logdrains/retrieves-a-list-of-all-the-log-drains-deprecated","distance":0.0602},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/retrieves-a-configurable-log-drain-deprecated","distance":0.075},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/creates-a-new-integration-log-drain-deprecated","distance":0.0815},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/creates-a-configurable-log-drain-deprecated","distance":0.1227},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/deletes-the-integration-log-drain-with-the-provided-id-deprecated","distance":0.1383}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/logdrains/retrieves-a-list-of-all-the-log-drains-deprecated","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/retrieves-a-configurable-log-drain-deprecated","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/creates-a-new-integration-log-drain-deprecated","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/creates-a-configurable-log-drain-deprecated","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/deletes-the-integration-log-drain-with-the-provided-id-deprecated","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/logs/get-logs-for-a-deployment","title":"Get logs for a deployment","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-events","distance":0.1274},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","distance":0.1696},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployment-files","distance":0.1746},{"site":"v0","path":"/docs/api/v1/reference/deployments/find-logs","distance":0.1832},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-check-runs-for-a-deployment","distance":0.1915}],"related":[{"site":"v0","path":"/docs/api/v1/reference/deployments/find-logs","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/get-by-id","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-events","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployment-files","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-check-runs-for-a-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/delete-a-deployment","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/create-event","title":"Create Event","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-resource","distance":0.2127},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-installation","distance":0.2278},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resource","distance":0.2323},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/import-resource","distance":0.2362},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/vercel","distance":0.242}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-resource","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-installation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resource","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/import-resource","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/vercel","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/create-one-or-multiple-experimentation-items","title":"Create one or multiple experimentation items","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/delete-an-existing-experimentation-item","distance":0.1722},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/patch-an-existing-experimentation-item","distance":0.203},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/create-event","distance":0.269},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/vercel","distance":0.2896},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resource","distance":0.3158}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/delete-an-existing-experimentation-item","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/patch-an-existing-experimentation-item","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/create-event","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resource","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/delete-an-existing-experimentation-item","title":"Delete an existing experimentation item","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/patch-an-existing-experimentation-item","distance":0.1578},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/create-one-or-multiple-experimentation-items","distance":0.1722},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/delete-integration-resource","distance":0.2277},{"site":"vercel-docs","path":"/docs/rest-api/integrations/delete-an-integration-configuration","distance":0.2436},{"site":"vercel-docs","path":"/docs/rest-api/authentication/delete-an-authentication-token","distance":0.2857}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/patch-an-existing-experimentation-item","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/create-one-or-multiple-experimentation-items","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/delete-integration-resource","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/delete-an-integration-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/authentication/delete-an-authentication-token","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/delete-integration-resource","title":"Delete Integration Resource","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resource","distance":0.1241},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resources","distance":0.1415},{"site":"vercel-docs","path":"/docs/rest-api/integrations/delete-an-integration-configuration","distance":0.1536},{"site":"vercel-docs","path":"/docs/rest-api/integrations/connect-integration-resource-to-project","distance":0.2138},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-resource","distance":0.2276}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resource","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resources","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/delete-an-integration-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/connect-integration-resource-to-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-resource","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/finalize-installation","title":"Finalize Installation","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-installation","distance":0.2276},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-invoice","distance":0.2835},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/partner","distance":0.3008},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/vercel","distance":0.3097},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-billing-data","distance":0.3209}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-installation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-invoice","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/partner","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-billing-data","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-account-information","title":"Get Account Information","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-member-information","distance":0.2001},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-invoice","distance":0.2237},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/vercel","distance":0.2314},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resources","distance":0.2338},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resource","distance":0.2373}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-member-information","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-invoice","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resources","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resource","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resource","title":"Get Integration Resource","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resources","distance":0.0347},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/delete-integration-resource","distance":0.1241},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/import-resource","distance":0.1565},{"site":"vercel-docs","path":"/docs/rest-api/integrations/connect-integration-resource-to-project","distance":0.1621},{"site":"vercel-docs","path":"/docs/rest-api/integrations/retrieve-an-integration-configuration","distance":0.1756}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resources","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/delete-integration-resource","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/import-resource","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/connect-integration-resource-to-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/retrieve-an-integration-configuration","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resources","title":"Get Integration Resources","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resource","distance":0.0347},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/delete-integration-resource","distance":0.1415},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/import-resource","distance":0.1723},{"site":"vercel-docs","path":"/docs/rest-api/integrations/connect-integration-resource-to-project","distance":0.1795},{"site":"vercel-docs","path":"/docs/rest-api/integrations/retrieve-an-integration-configuration","distance":0.1813}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resource","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/delete-integration-resource","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/import-resource","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/connect-integration-resource-to-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/retrieve-an-integration-configuration","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-invoice","title":"Get Invoice","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api"},{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-invoice","distance":0.0918},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/invoice-actions","distance":0.1804},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-billing-data","distance":0.2158},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-account-information","distance":0.2237},{"site":"vercel-docs","path":"/docs/rest-api/billing/purchase-credits","distance":0.224}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-invoice","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/invoice-actions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-billing-data","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-account-information","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/billing/purchase-credits","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-member-information","title":"Get Member Information","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-account-information","distance":0.2001},{"site":"vercel-docs","path":"/docs/rest-api/projectmembers/list-project-members","distance":0.2258},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resource","distance":0.2312},{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team","distance":0.2384},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resources","distance":0.2415}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-account-information","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projectmembers/list-project-members","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resource","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resources","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-the-data-of-a-user-provided-global-config","title":"Get the data of a user-provided Global Config","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/push-data-into-a-user-provided-global-config","distance":0.0893},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-configs","distance":0.1301},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config","distance":0.1306},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-items","distance":0.1548},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config","distance":0.1643}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/push-data-into-a-user-provided-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-configs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-config-items","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/import-resource","title":"Import Resource","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-flows"},{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resource","distance":0.1565},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-resource","distance":0.1664},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resources","distance":0.1723},{"site":"vercel-docs","path":"/docs/rest-api/connect/import-connect-tokens","distance":0.2285},{"site":"vercel-docs","path":"/docs/rest-api/integrations/connect-integration-resource-to-project","distance":0.2313}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resource","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-resource","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resources","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/connect/import-connect-tokens","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/connect-integration-resource-to-project","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/invoice-actions","title":"Invoice Actions","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-invoice","distance":0.1782},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-invoice","distance":0.1804},{"site":"vercel-docs","path":"/docs/integrations/create-integration/billing","distance":0.2781},{"site":"vercel-docs","path":"/docs/rest-api/deployments/update-deployment-integration-action","distance":0.2858},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-billing-data","distance":0.2914}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-invoice","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-invoice","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/billing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/update-deployment-integration-action","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-billing-data","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/patch-an-existing-experimentation-item","title":"Patch an existing experimentation item","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/delete-an-existing-experimentation-item","distance":0.1578},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/create-one-or-multiple-experimentation-items","distance":0.203},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-resource","distance":0.2783},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-installation","distance":0.2954},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/vercel","distance":0.3303}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/delete-an-existing-experimentation-item","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/create-one-or-multiple-experimentation-items","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-resource","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-installation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/vercel","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/push-data-into-a-user-provided-global-config","title":"Push data into a user-provided Global Config","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-the-data-of-a-user-provided-global-config","distance":0.0893},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config","distance":0.1572},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config","distance":0.1912},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-configs","distance":0.1948},{"site":"vercel-docs","path":"/docs/rest-api/global-config/update-a-global-config","distance":0.1952}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-the-data-of-a-user-provided-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/create-a-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-a-global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/get-global-configs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/update-a-global-config","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/rotate-installation-credential","title":"Rotate Installation Credential","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/secrets-rotation","distance":0.2326},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-installation","distance":0.2516},{"site":"vercel-docs","path":"/docs/environment-variables/rotating-secrets","distance":0.2791},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/vercel","distance":0.2827},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-resource-secrets","distance":0.2882}],"related":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/secrets-rotation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-installation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/rotating-secrets","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-resource-secrets","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-billing-data","title":"Submit Billing Data","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-invoice","distance":0.133},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-prepayment-balances","distance":0.1536},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-invoice","distance":0.2158},{"site":"vercel-docs","path":"/docs/rest-api/integrations/list-integration-billing-plans","distance":0.2364},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-rolling-release-billing-status","distance":0.2425}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-invoice","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-prepayment-balances","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-invoice","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/list-integration-billing-plans","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-rolling-release-billing-status","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-invoice","title":"Submit Invoice","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-invoice","distance":0.0918},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-billing-data","distance":0.133},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/invoice-actions","distance":0.1782},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-prepayment-balances","distance":0.2127},{"site":"vercel-docs","path":"/docs/integrations/create-integration/billing","distance":0.2202}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-invoice","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-billing-data","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/invoice-actions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-prepayment-balances","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/billing","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-prepayment-balances","title":"Submit Prepayment Balances","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-billing-data","distance":0.1536},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-invoice","distance":0.2127},{"site":"vercel-docs","path":"/docs/rest-api/billing/purchase-credits","distance":0.2588},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/vercel","distance":0.2654},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/partner","distance":0.2751}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-billing-data","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-invoice","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/billing/purchase-credits","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api/reference/partner","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-installation","title":"Update Installation","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-resource","distance":0.1252},{"site":"vercel-docs","path":"/docs/rest-api/deployments/update-deployment-integration-action","distance":0.1957},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resources","distance":0.2271},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/finalize-installation","distance":0.2276},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/create-event","distance":0.2278}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-resource","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/update-deployment-integration-action","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resources","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/finalize-installation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/create-event","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-resource","title":"Update Resource","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-installation","distance":0.1252},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-resource-secrets","distance":0.1463},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/import-resource","distance":0.1664},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resource","distance":0.1807},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resources","distance":0.1909}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-installation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-resource-secrets","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/import-resource","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resource","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resources","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-resource-secrets","title":"Update Resource Secrets","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-resource","distance":0.1463},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-installation","distance":0.2496},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/import-resource","distance":0.2553},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resource","distance":0.2649},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resources","distance":0.275}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-resource","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-installation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/import-resource","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resource","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-integration-resources","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/create-a-microfrontends-group-with-applications","title":"Create a microfrontends group with applications","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/list-projects-in-a-microfrontends-group","distance":0.1292},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-microfrontends-group","distance":0.1565},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/list-microfrontends-groups","distance":0.1572},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/get-microfrontends-config-for-a-project","distance":0.1771},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/create-an-access-group-project","distance":0.183}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/list-projects-in-a-microfrontends-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-microfrontends-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/list-microfrontends-groups","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/get-microfrontends-config-for-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/create-an-access-group-project","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/get-microfrontends-config-for-a-deployment","title":"Get microfrontends config for a deployment","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/get-microfrontends-config-for-a-project","distance":0.1147},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","distance":0.162},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-events","distance":0.1829},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/list-projects-in-a-microfrontends-group","distance":0.1885},{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team","distance":0.2008}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/get-microfrontends-config-for-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-events","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/list-projects-in-a-microfrontends-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/get-microfrontends-config-for-a-project","title":"Get microfrontends config for a project","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/get-microfrontends-config-for-a-deployment","distance":0.1147},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/list-projects-in-a-microfrontends-group","distance":0.1373},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/create-a-microfrontends-group-with-applications","distance":0.1771},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/list-microfrontends-groups","distance":0.199},{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team","distance":0.2006}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/get-microfrontends-config-for-a-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/list-projects-in-a-microfrontends-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/create-a-microfrontends-group-with-applications","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/list-microfrontends-groups","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/list-microfrontends-groups","title":"List microfrontends groups","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-microfrontends-group","distance":0.1239},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/list-projects-in-a-microfrontends-group","distance":0.1408},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-microfrontends-group","distance":0.1489},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/create-a-microfrontends-group-with-applications","distance":0.1572},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-access-groups-for-a-team-project-or-member","distance":0.1904}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-microfrontends-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/list-projects-in-a-microfrontends-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-microfrontends-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/create-a-microfrontends-group-with-applications","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-access-groups-for-a-team-project-or-member","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/list-projects-in-a-microfrontends-group","title":"List projects in a microfrontends group","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-a-list-of-projects","distance":0.1046},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/create-a-microfrontends-group-with-applications","distance":0.1292},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/get-microfrontends-config-for-a-project","distance":0.1373},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/list-microfrontends-groups","distance":0.1408},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-projects-of-an-access-group","distance":0.1675}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-a-list-of-projects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/create-a-microfrontends-group-with-applications","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/get-microfrontends-config-for-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/list-microfrontends-groups","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-projects-of-an-access-group","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/networking/configures-static-ip-s-for-a-project","title":"Configures Static IPs for a project","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/sharable-links"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/password-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-an-existing-project"},{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/ip-blocking"},{"site":"vercel-kb","path":"/kb/guide/can-i-use-a-proxy-on-top-of-my-vercel-deployment"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips","distance":0},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments","distance":0.2056},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication","distance":0.2421},{"site":"vercel-docs","path":"/docs/deployment-protection","distance":0.2653},{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","distance":0.2727}],"related":[{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-allowlist-deployment-ip-address","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/options-allowlist","via":"neighbor"},{"site":"vercel-docs","path":"/docs/networking/static-ips/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/networking/static-ips","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/security-settings","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/networking/create-a-secure-compute-network","title":"Create a Secure Compute network","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/networking/list-secure-compute-networks","distance":0.0902},{"site":"vercel-docs","path":"/docs/rest-api/networking/read-a-secure-compute-network","distance":0.0916},{"site":"vercel-docs","path":"/docs/rest-api/networking/update-a-secure-compute-network","distance":0.0942},{"site":"vercel-docs","path":"/docs/rest-api/networking/delete-a-secure-compute-network","distance":0.1447},{"site":"vercel-docs","path":"/docs/rest-api/connect/create-a-connect-authorization-request","distance":0.2261}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/networking/list-secure-compute-networks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/networking/read-a-secure-compute-network","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/networking/update-a-secure-compute-network","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/networking/delete-a-secure-compute-network","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/connect/create-a-connect-authorization-request","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/networking/delete-a-secure-compute-network","title":"Delete a Secure Compute network","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/networking/create-a-secure-compute-network","distance":0.1447},{"site":"vercel-docs","path":"/docs/rest-api/networking/update-a-secure-compute-network","distance":0.1549},{"site":"vercel-docs","path":"/docs/rest-api/networking/read-a-secure-compute-network","distance":0.1597},{"site":"vercel-docs","path":"/docs/rest-api/networking/list-secure-compute-networks","distance":0.176},{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-team","distance":0.2424}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/networking/create-a-secure-compute-network","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/networking/update-a-secure-compute-network","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/networking/read-a-secure-compute-network","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/networking/list-secure-compute-networks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-team","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/networking/list-secure-compute-networks","title":"List Secure Compute networks","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/networking/read-a-secure-compute-network","distance":0.0812},{"site":"vercel-docs","path":"/docs/rest-api/networking/create-a-secure-compute-network","distance":0.0902},{"site":"vercel-docs","path":"/docs/rest-api/networking/update-a-secure-compute-network","distance":0.1184},{"site":"vercel-docs","path":"/docs/rest-api/networking/delete-a-secure-compute-network","distance":0.176},{"site":"vercel-docs","path":"/docs/rest-api/domains/list-all-the-domains","distance":0.2475}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/networking/read-a-secure-compute-network","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/networking/create-a-secure-compute-network","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/networking/update-a-secure-compute-network","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/networking/delete-a-secure-compute-network","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains/list-all-the-domains","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/networking/read-a-secure-compute-network","title":"Read a Secure Compute network","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/networking/list-secure-compute-networks","distance":0.0812},{"site":"vercel-docs","path":"/docs/rest-api/networking/create-a-secure-compute-network","distance":0.0916},{"site":"vercel-docs","path":"/docs/rest-api/networking/update-a-secure-compute-network","distance":0.1163},{"site":"vercel-docs","path":"/docs/rest-api/networking/delete-a-secure-compute-network","distance":0.1597},{"site":"vercel-docs","path":"/docs/rest-api/security/read-firewall-configuration","distance":0.2695}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/networking/list-secure-compute-networks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/networking/create-a-secure-compute-network","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/networking/update-a-secure-compute-network","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/networking/delete-a-secure-compute-network","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/read-firewall-configuration","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/networking/update-a-secure-compute-network","title":"Update a Secure Compute network","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/networking/create-a-secure-compute-network","distance":0.0942},{"site":"vercel-docs","path":"/docs/rest-api/networking/read-a-secure-compute-network","distance":0.1163},{"site":"vercel-docs","path":"/docs/rest-api/networking/list-secure-compute-networks","distance":0.1184},{"site":"vercel-docs","path":"/docs/rest-api/networking/delete-a-secure-compute-network","distance":0.1549},{"site":"vercel-docs","path":"/docs/rest-api/security/update-firewall-configuration","distance":0.2287}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/networking/create-a-secure-compute-network","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/networking/read-a-secure-compute-network","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/networking/list-secure-compute-networks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/networking/delete-a-secure-compute-network","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/update-firewall-configuration","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/observability/lists-disabled-observability-plus-projects","title":"Lists disabled Observability Plus projects","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/observability/updates-a-disabled-observability-plus-project-setting","distance":0.16},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-projects-of-an-access-group","distance":0.1866},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-a-list-of-projects","distance":0.1912},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-access-groups-for-a-team-project-or-member","distance":0.2102},{"site":"vercel-docs","path":"/docs/rest-api/projectmembers/list-project-members","distance":0.2132}],"related":[{"site":"v0","path":"/docs/api/v1/reference/integrations/find","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/observability/updates-a-disabled-observability-plus-project-setting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-projects-of-an-access-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-a-list-of-projects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-access-groups-for-a-team-project-or-member","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projectmembers/list-project-members","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/observability/updates-a-disabled-observability-plus-project-setting","title":"Updates a disabled Observability Plus project setting","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/observability/lists-disabled-observability-plus-projects","distance":0.16},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/update-the-rolling-release-settings-for-the-project","distance":0.2095},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-project-flag-settings","distance":0.2105},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/update-an-access-group-project","distance":0.2126},{"site":"vercel-docs","path":"/docs/rest-api/security/update-attack-challenge-mode","distance":0.2509}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/observability/lists-disabled-observability-plus-projects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/update-the-rolling-release-settings-for-the-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-project-flag-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/update-an-access-group-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/update-attack-challenge-mode","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/add-a-routing-rule","title":"Add a routing rule","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-kb","path":"/kb/guide/vercel-reverse-proxy-rewrites-external"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/project-routes/edit-a-routing-rule","distance":0.0429},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/get-project-routing-rules","distance":0.0811},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/stage-routing-rules","distance":0.0997},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/delete-routing-rules","distance":0.1072},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/promote-restore-or-discard-a-routing-rule-version","distance":0.1369}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-reverse-proxy-rewrites-external","via":"inbound"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/edit-a-routing-rule","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/get-project-routing-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/stage-routing-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/delete-routing-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/promote-restore-or-discard-a-routing-rule-version","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/delete-routing-rules","title":"Delete routing rules","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/project-routes/stage-routing-rules","distance":0.085},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/get-project-routing-rules","distance":0.0952},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/edit-a-routing-rule","distance":0.0993},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/add-a-routing-rule","distance":0.1072},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/delete-rule","distance":0.1164}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/project-routes/stage-routing-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/get-project-routing-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/edit-a-routing-rule","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/add-a-routing-rule","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/delete-rule","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/edit-a-routing-rule","title":"Edit a routing rule","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/project-routes/add-a-routing-rule","distance":0.0429},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/get-project-routing-rules","distance":0.0898},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/delete-routing-rules","distance":0.0993},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/stage-routing-rules","distance":0.1053},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/promote-restore-or-discard-a-routing-rule-version","distance":0.1144}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/project-routes/add-a-routing-rule","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/get-project-routing-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/delete-routing-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/stage-routing-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/promote-restore-or-discard-a-routing-rule-version","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/generate-a-routing-rule-from-natural-language","title":"Generate a routing rule from natural language","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/project-routes/add-a-routing-rule","distance":0.1427},{"site":"vercel-docs","path":"/docs/rest-api/security/generate-a-firewall-rule-from-natural-language","distance":0.143},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/get-project-routing-rules","distance":0.1594},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/edit-a-routing-rule","distance":0.1631},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/stage-routing-rules","distance":0.1732}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/project-routes/add-a-routing-rule","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/generate-a-firewall-rule-from-natural-language","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/get-project-routing-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/edit-a-routing-rule","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/stage-routing-rules","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/get-project-routing-rules","title":"Get project routing rules","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-docs","path":"/docs/routing/project-routing-rules"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/project-routes/add-a-routing-rule","distance":0.0811},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/stage-routing-rules","distance":0.0871},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/edit-a-routing-rule","distance":0.0898},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/delete-routing-rules","distance":0.0952},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/get-routing-rule-version-history","distance":0.104}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/project-routes/add-a-routing-rule","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/stage-routing-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/edit-a-routing-rule","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/delete-routing-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/get-routing-rule-version-history","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/get-routing-rule-version-history","title":"Get routing rule version history","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/project-routes/get-project-routing-rules","distance":0.104},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/promote-restore-or-discard-a-routing-rule-version","distance":0.1199},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/stage-routing-rules","distance":0.1298},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/edit-a-routing-rule","distance":0.1352},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/add-a-routing-rule","distance":0.1441}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/project-routes/get-project-routing-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/promote-restore-or-discard-a-routing-rule-version","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/stage-routing-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/edit-a-routing-rule","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/add-a-routing-rule","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/promote-restore-or-discard-a-routing-rule-version","title":"Promote, restore, or discard a routing rule version","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/project-routes/edit-a-routing-rule","distance":0.1144},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/get-routing-rule-version-history","distance":0.1199},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/stage-routing-rules","distance":0.13},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/promote-a-staging-version-to-production-or-restore-a-previous-production-version","distance":0.1327},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/add-a-routing-rule","distance":0.1369}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/project-routes/edit-a-routing-rule","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/get-routing-rule-version-history","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/stage-routing-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/promote-a-staging-version-to-production-or-restore-a-previous-production-version","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/add-a-routing-rule","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/stage-routing-rules","title":"Stage routing rules","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/project-routes/delete-routing-rules","distance":0.085},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/get-project-routing-rules","distance":0.0871},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/add-a-routing-rule","distance":0.0997},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/edit-a-routing-rule","distance":0.1053},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/get-routing-rule-version-history","distance":0.1298}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/project-routes/delete-routing-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/get-project-routing-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/add-a-routing-rule","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/edit-a-routing-rule","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/get-routing-rule-version-history","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/projectmembers/adds-a-new-member-to-a-project","title":"Adds a new member to a project.","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/projectmembers/list-project-members","distance":0.1318},{"site":"vercel-docs","path":"/docs/rest-api/projectmembers/remove-a-project-member","distance":0.1493},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/create-an-access-group-project","distance":0.1913},{"site":"vercel-docs","path":"/docs/rest-api/projects/add-a-domain-to-a-project","distance":0.202},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-team-member","distance":0.2112}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/projectmembers/list-project-members","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projectmembers/remove-a-project-member","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/create-an-access-group-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/add-a-domain-to-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-team-member","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/projectmembers/list-project-members","title":"List project members","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/teams/list-team-members","distance":0.1104},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-access-groups-for-a-team-project-or-member","distance":0.1177},{"site":"vercel-docs","path":"/docs/rest-api/projectmembers/adds-a-new-member-to-a-project","distance":0.1318},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-members-of-an-access-group","distance":0.1489},{"site":"vercel-docs","path":"/docs/rest-api/projectmembers/remove-a-project-member","distance":0.1499}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/teams/list-team-members","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-access-groups-for-a-team-project-or-member","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projectmembers/adds-a-new-member-to-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-members-of-an-access-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projectmembers/remove-a-project-member","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/projectmembers/remove-a-project-member","title":"Remove a Project Member","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/teams/remove-a-team-member","distance":0.1192},{"site":"vercel-docs","path":"/docs/rest-api/projects/delete-a-project","distance":0.1448},{"site":"vercel-docs","path":"/docs/rest-api/projectmembers/adds-a-new-member-to-a-project","distance":0.1493},{"site":"vercel-docs","path":"/docs/rest-api/projectmembers/list-project-members","distance":0.1499},{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-a-domain-from-a-project","distance":0.1693}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/teams/remove-a-team-member","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/delete-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projectmembers/adds-a-new-member-to-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projectmembers/list-project-members","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-a-domain-from-a-project","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/projects/accept-project-transfer-request","title":"Accept project transfer request","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/deployments/claim-deployments"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/projects/create-project-transfer-request","distance":0.052},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-a-list-of-projects","distance":0.207},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/stages-new-redirects-for-a-project","distance":0.2094},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/create-an-access-group-project","distance":0.2118},{"site":"vercel-docs","path":"/docs/rest-api/projects/move-a-project-domain","distance":0.2135}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/projects/create-project-transfer-request","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-a-list-of-projects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/stages-new-redirects-for-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/create-an-access-group-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/move-a-project-domain","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/projects/add-a-domain-to-a-project","title":"Add a domain to a project","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/quickstart"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/projects/update-a-project-domain","distance":0.0919},{"site":"vercel-docs","path":"/docs/rest-api/projects/move-a-project-domain","distance":0.1083},{"site":"vercel-docs","path":"/docs/rest-api/projects/get-a-project-domain","distance":0.1137},{"site":"vercel-docs","path":"/docs/rest-api/domains/add-an-existing-domain-to-the-vercel-platform","distance":0.1271},{"site":"vercel-docs","path":"/docs/rest-api/projects/verify-project-domain","distance":0.1366}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-a-project-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/move-a-project-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/get-a-project-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains/add-an-existing-domain-to-the-vercel-platform","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/verify-project-domain","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/projects/batch-remove-environment-variables","title":"Batch remove environment variables","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-an-environment-variable","distance":0.1234},{"site":"vercel-docs","path":"/docs/rest-api/environment/delete-one-or-more-env-var","distance":0.1626},{"site":"vercel-docs","path":"/docs/rest-api/environment/remove-a-custom-environment","distance":0.1711},{"site":"vercel-docs","path":"/docs/rest-api/projects/edit-an-environment-variable","distance":0.1884},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-environment-variables-of-a-project-by-id-or-name","distance":0.1978}],"related":[{"site":"v0","path":"/docs/api/v1/reference/projects/delete-env-vars","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-an-environment-variable","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/delete-one-or-more-env-var","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/remove-a-custom-environment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/edit-an-environment-variable","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-environment-variables-of-a-project-by-id-or-name","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-a-new-project","title":"Create a new project","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/quickstart"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/reference"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-team","distance":0.152},{"site":"vercel-docs","path":"/docs/rest-api/projects/find-a-project-by-id-or-name","distance":0.1713},{"site":"vercel-docs","path":"/docs/rest-api/projects/upload-a-project-avatar","distance":0.1724},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-the-microfrontends-settings","distance":0.1734},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-a-deployment-by-id-or-url","distance":0.1821}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/find-a-project-by-id-or-name","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/upload-a-project-avatar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-the-microfrontends-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-a-deployment-by-id-or-url","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-a-trace-session-token-for-a-deployment","title":"Create a trace session token for a deployment","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/authentication/create-an-auth-token","distance":0.225},{"site":"vercel-docs","path":"/docs/rest-api/projects/generate-a-project-oidc-token","distance":0.2501},{"site":"vercel-docs","path":"/docs/rest-api/projects/get-a-project-trace-by-request-id","distance":0.2549},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-events","distance":0.2647},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","distance":0.2667}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/authentication/create-an-auth-token","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/generate-a-project-oidc-token","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/get-a-project-trace-by-request-id","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-events","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-one-or-more-environment-variables","title":"Create one or more environment variables","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"v0","path":"/docs/api/v2/guides/environment-variables"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/upgrade-integration"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/vercel-api-integrations"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/environment/create-one-or-more-shared-environment-variables","distance":0.1006},{"site":"vercel-docs","path":"/docs/rest-api/projects/edit-an-environment-variable","distance":0.1109},{"site":"vercel-docs","path":"/docs/rest-api/environment/create-a-custom-environment-for-the-current-project","distance":0.1226},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-environment-variables-of-a-project-by-id-or-name","distance":0.1381},{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-an-environment-variable","distance":0.141}],"related":[{"site":"v0","path":"/docs/api/v2/guides/environment-variables","via":"inbound"},{"site":"v0","path":"/docs/api/v1/reference/projects/create-env-vars","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/create-one-or-more-shared-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/edit-an-environment-variable","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/create-a-custom-environment-for-the-current-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-environment-variables-of-a-project-by-id-or-name","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-an-environment-variable","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-project-transfer-request","title":"Create project transfer request","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/deployments/claim-deployments"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/projects/accept-project-transfer-request","distance":0.052},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/create-an-access-group-project","distance":0.2029},{"site":"vercel-docs","path":"/docs/rest-api/projects/move-a-project-domain","distance":0.2205},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/stages-new-redirects-for-a-project","distance":0.222},{"site":"vercel-docs","path":"/docs/rest-api/teams/create-a-team","distance":0.231}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/projects/accept-project-transfer-request","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/create-an-access-group-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/move-a-project-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/stages-new-redirects-for-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/create-a-team","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/projects/delete-a-project","title":"Delete a Project","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"v0","path":"/docs/api/v1/reference/projects/delete"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/access-groups/delete-an-access-group-project","distance":0.1094},{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-a-domain-from-a-project","distance":0.142},{"site":"vercel-docs","path":"/docs/rest-api/projectmembers/remove-a-project-member","distance":0.1448},{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-team","distance":0.1986},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/delete-project-level-redirects","distance":0.2089}],"related":[{"site":"v0","path":"/docs/api/v1/reference/projects/delete","via":"inbound"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/delete-an-access-group-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-a-domain-from-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projectmembers/remove-a-project-member","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/delete-project-level-redirects","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/projects/edit-an-environment-variable","title":"Edit an environment variable","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-v2-observability-schema"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-v2-observability-schema-metric-id"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-an-environment-variable","distance":0.0798},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-one-or-more-environment-variables","distance":0.1109},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-environment-variables-of-a-project-by-id-or-name","distance":0.1241},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-decrypted-value-of-an-environment-variable-of-a-project-by-id","distance":0.136},{"site":"vercel-docs","path":"/docs/rest-api/environment/create-a-custom-environment-for-the-current-project","distance":0.1493}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-an-environment-variable","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-one-or-more-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-environment-variables-of-a-project-by-id-or-name","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-decrypted-value-of-an-environment-variable-of-a-project-by-id","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/create-a-custom-environment-for-the-current-project","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/projects/find-a-project-by-id-or-name","title":"Find a project by id or name","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-chat-id"},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-id"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/projects/upload-a-project-avatar","distance":0.0246},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-the-microfrontends-settings","distance":0.0555},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-a-new-project","distance":0.1713},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-a-deployment-by-id-or-url","distance":0.2252},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-team","distance":0.2324}],"related":[{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-chat-id","via":"inbound"},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-id","via":"inbound"},{"site":"vercel-docs","path":"/docs/rest-api/projects/upload-a-project-avatar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-the-microfrontends-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-a-new-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-a-deployment-by-id-or-url","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-team","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/projects/generate-a-project-oidc-token","title":"Generate a project OIDC token","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/authentication/create-an-auth-token","distance":0.1941},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/create-an-access-group-project","distance":0.2132},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-projects-of-an-access-group","distance":0.2337},{"site":"vercel-docs","path":"/docs/rest-api/projects/get-a-project-domain","distance":0.2395},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-a-list-of-projects","distance":0.2415}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/authentication/create-an-auth-token","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/create-an-access-group-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-projects-of-an-access-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/get-a-project-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-a-list-of-projects","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/projects/get-a-project-domain","title":"Get a project domain","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/projects/verify-project-domain","distance":0.0915},{"site":"vercel-docs","path":"/docs/rest-api/domains/list-project-domains-by-apex-domain","distance":0.0945},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-a-project-domain","distance":0.0965},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-project-domains-by-project-by-id-or-name","distance":0.0994},{"site":"vercel-docs","path":"/docs/rest-api/projects/move-a-project-domain","distance":0.1133}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/projects/verify-project-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains/list-project-domains-by-apex-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-a-project-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-project-domains-by-project-by-id-or-name","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/move-a-project-domain","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/projects/get-a-project-trace-by-request-id","title":"Get a project trace by request ID","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/traces","distance":0.2114},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-a-list-of-projects","distance":0.2364},{"site":"vercel-docs","path":"/docs/rest-api/projects/get-a-project-domain","distance":0.2455},{"site":"vercel-docs","path":"/docs/rest-api/projects/generate-a-project-oidc-token","distance":0.2482},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-project-transfer-request","distance":0.2496}],"related":[{"site":"vercel-docs","path":"/docs/cli/traces","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-a-list-of-projects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/get-a-project-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/generate-a-project-oidc-token","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-project-transfer-request","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/projects/gets-a-list-of-aliases-with-status-for-the-current-promote","title":"Gets a list of aliases with status for the current promote","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/aliases/list-aliases","distance":0.1366},{"site":"vercel-docs","path":"/docs/rest-api/aliases/get-an-alias","distance":0.1703},{"site":"vercel-docs","path":"/docs/rest-api/aliases/list-deployment-aliases","distance":0.1819},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/gets-project-level-redirects","distance":0.2185},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/get-the-version-history-for-a-project-s-redirects","distance":0.221}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/aliases/list-aliases","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/aliases/get-an-alias","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/aliases/list-deployment-aliases","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/gets-project-level-redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/get-the-version-history-for-a-project-s-redirects","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/projects/move-a-project-domain","title":"Move a project domain","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/projects/update-a-project-domain","distance":0.0828},{"site":"vercel-docs","path":"/docs/rest-api/projects/add-a-domain-to-a-project","distance":0.1083},{"site":"vercel-docs","path":"/docs/rest-api/projects/get-a-project-domain","distance":0.1133},{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-a-domain-from-a-project","distance":0.1432},{"site":"vercel-docs","path":"/docs/rest-api/projects/verify-project-domain","distance":0.1492}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/projects/update-a-project-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/add-a-domain-to-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/get-a-project-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-a-domain-from-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/verify-project-domain","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/projects/pause-a-project","title":"Pause a project","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/projects/managing-projects"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/projects/unpause-a-project","distance":0.0449},{"site":"vercel-kb","path":"/kb/guide/pause-your-project","distance":0.2194},{"site":"vercel-docs","path":"/docs/projects/managing-projects","distance":0.2209},{"site":"vercel-docs","path":"/docs/rest-api/projects/delete-a-project","distance":0.2463},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-a-list-of-projects","distance":0.2818}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/projects/unpause-a-project","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/pause-your-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/managing-projects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/delete-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-a-list-of-projects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/get-a-project-domain","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/projects/point-production-traffic-to-a-given-deployment","title":"Point production traffic to a given deployment","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/projects/point-production-traffic-to-a-previous-production-deployment-by-id","distance":0.136},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","distance":0.231},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-events","distance":0.244},{"site":"vercel-docs","path":"/docs/rest-api/deployments/delete-a-deployment","distance":0.2525},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/promote-a-staging-version-to-production-or-restore-a-previous-production-version","distance":0.2624}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/projects/point-production-traffic-to-a-previous-production-deployment-by-id","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-events","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/delete-a-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/promote-a-staging-version-to-production-or-restore-a-previous-production-version","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/projects/point-production-traffic-to-a-previous-production-deployment-by-id","title":"Point production traffic to a previous production deployment by ID","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-docs","path":"/docs/rolling-releases"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/projects/point-production-traffic-to-a-given-deployment","distance":0.136},{"site":"vercel-docs","path":"/docs/rest-api/projects/updates-the-description-for-a-rollback","distance":0.2686},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","distance":0.2711},{"site":"vercel-docs","path":"/docs/cli/rollback","distance":0.2726},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-events","distance":0.2739}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/projects/point-production-traffic-to-a-given-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/updates-the-description-for-a-rollback","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/rollback","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-events","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-a-domain-from-a-project","title":"Remove a domain from a project","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/domains/remove-a-domain-by-name","distance":0.1143},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/remove-a-domain","distance":0.1177},{"site":"vercel-docs","path":"/docs/rest-api/projects/get-a-project-domain","distance":0.1388},{"site":"vercel-docs","path":"/docs/rest-api/projects/delete-a-project","distance":0.142},{"site":"vercel-docs","path":"/docs/rest-api/projects/move-a-project-domain","distance":0.1432}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-remove-a-domain-from-my-vercel-account","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains/remove-a-domain-by-name","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/remove-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/get-a-project-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/delete-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/move-a-project-domain","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-an-environment-variable","title":"Remove an environment variable","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/projects/edit-an-environment-variable","distance":0.0798},{"site":"vercel-docs","path":"/docs/rest-api/environment/remove-a-custom-environment","distance":0.1172},{"site":"vercel-docs","path":"/docs/rest-api/projects/batch-remove-environment-variables","distance":0.1234},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-environment-variables-of-a-project-by-id-or-name","distance":0.1266},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-decrypted-value-of-an-environment-variable-of-a-project-by-id","distance":0.1316}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/projects/edit-an-environment-variable","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/remove-a-custom-environment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/batch-remove-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-environment-variables-of-a-project-by-id-or-name","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-decrypted-value-of-an-environment-variable-of-a-project-by-id","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-a-list-of-projects","title":"Retrieve a list of projects","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"v0","path":"/docs/api/v1/reference/projects/find"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/list-projects-in-a-microfrontends-group","distance":0.1046},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-projects-of-an-access-group","distance":0.1332},{"site":"vercel-docs","path":"/docs/rest-api/projectmembers/list-project-members","distance":0.1721},{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team","distance":0.1743},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-environment-variables-of-a-project-by-id-or-name","distance":0.1745}],"related":[{"site":"v0","path":"/docs/api/v1/reference/projects/find","via":"inbound"},{"site":"v0","path":"/docs/api/v1/reference/integrations/find","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/list-projects-in-a-microfrontends-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-projects-of-an-access-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projectmembers/list-project-members","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-environment-variables-of-a-project-by-id-or-name","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-project-domains-by-project-by-id-or-name","title":"Retrieve project domains by project by id or name","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/projects/get-a-project-domain","distance":0.0994},{"site":"vercel-docs","path":"/docs/rest-api/domains/list-project-domains-by-apex-domain","distance":0.1079},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-a-project-domain","distance":0.1644},{"site":"vercel-docs","path":"/docs/rest-api/projects/move-a-project-domain","distance":0.1734},{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-a-domain-from-a-project","distance":0.1755}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/projects/get-a-project-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains/list-project-domains-by-apex-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-a-project-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/move-a-project-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-a-domain-from-a-project","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-decrypted-value-of-an-environment-variable-of-a-project-by-id","title":"Retrieve the decrypted value of an environment variable of a project by id","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-v2-observability-schema-metric-id"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-environment-variables-of-a-project-by-id-or-name","distance":0.0595},{"site":"vercel-docs","path":"/docs/rest-api/environment/retrieve-the-decrypted-value-of-a-shared-environment-variable-by-id","distance":0.1185},{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-an-environment-variable","distance":0.1316},{"site":"vercel-docs","path":"/docs/rest-api/projects/edit-an-environment-variable","distance":0.136},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-one-or-more-environment-variables","distance":0.1771}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-environment-variables-of-a-project-by-id-or-name","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/retrieve-the-decrypted-value-of-a-shared-environment-variable-by-id","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-an-environment-variable","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/edit-an-environment-variable","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-one-or-more-environment-variables","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-environment-variables-of-a-project-by-id-or-name","title":"Retrieve the environment variables of a project by id or name","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-decrypted-value-of-an-environment-variable-of-a-project-by-id","distance":0.0595},{"site":"vercel-docs","path":"/docs/rest-api/projects/edit-an-environment-variable","distance":0.1241},{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-an-environment-variable","distance":0.1266},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-one-or-more-environment-variables","distance":0.1381},{"site":"vercel-docs","path":"/docs/rest-api/environment/retrieve-a-custom-environment","distance":0.14}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-decrypted-value-of-an-environment-variable-of-a-project-by-id","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/edit-an-environment-variable","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-an-environment-variable","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-one-or-more-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/retrieve-a-custom-environment","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/projects/unpause-a-project","title":"Unpause a project","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/projects/managing-projects"},{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-docs","path":"/docs/spend-management"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/projects/pause-a-project","distance":0.0449},{"site":"vercel-docs","path":"/docs/projects/managing-projects","distance":0.2309},{"site":"vercel-docs","path":"/docs/rest-api/projects/delete-a-project","distance":0.2516},{"site":"vercel-kb","path":"/kb/guide/pause-your-project","distance":0.2529},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-a-list-of-projects","distance":0.2839}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/projects/pause-a-project","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/pause-your-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/managing-projects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/delete-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-a-list-of-projects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-a-domain-from-a-project","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-a-project-domain","title":"Update a project domain","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/projects/move-a-project-domain","distance":0.0828},{"site":"vercel-docs","path":"/docs/rest-api/projects/add-a-domain-to-a-project","distance":0.0919},{"site":"vercel-docs","path":"/docs/rest-api/projects/get-a-project-domain","distance":0.0965},{"site":"vercel-docs","path":"/docs/rest-api/projects/verify-project-domain","distance":0.1358},{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-a-domain-from-a-project","distance":0.1457}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/projects/move-a-project-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/add-a-domain-to-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/get-a-project-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/verify-project-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-a-domain-from-a-project","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-an-existing-project","title":"Update an existing project","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"v0","path":"/docs/api/v1/reference/projects/update"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/password-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication"},{"site":"vercel-docs","path":"/docs/deployment-protection/protected-source-maps"},{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-docs","path":"/docs/rest-api/networking/configures-static-ip-s-for-a-project"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/projects/create-a-new-project","distance":0.264},{"site":"v0","path":"/docs/api/v1/reference/projects/update","distance":0.2746},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/update-an-access-group-project","distance":0.3103},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-a-project-domain","distance":0.3131},{"site":"vercel-docs","path":"/docs/rest-api/user/list-user-events","distance":0.3153}],"related":[{"site":"v0","path":"/docs/api/v1/reference/projects/update","via":"inbound"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-a-new-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/update-an-access-group-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-a-project-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/user/list-user-events","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-project-flag-settings","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-protection-bypass-for-automation","title":"Update Protection Bypass for Automation","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/quickstart"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/aliases/update-the-protection-bypass-for-a-url","distance":0.1614},{"site":"vercel-docs","path":"/docs/rest-api/security/read-system-bypass","distance":0.2384},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/update-an-access-group-project","distance":0.2384},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation","distance":0.2474},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-project-flag-settings","distance":0.2484}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/aliases/update-the-protection-bypass-for-a-url","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/update-an-access-group-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/read-system-bypass","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-project-flag-settings","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-the-microfrontends-settings","title":"Update the microfrontends settings","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/projects/find-a-project-by-id-or-name","distance":0.0555},{"site":"vercel-docs","path":"/docs/rest-api/projects/upload-a-project-avatar","distance":0.0672},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-a-new-project","distance":0.1734},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-team","distance":0.2327},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-a-deployment-by-id-or-url","distance":0.2493}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/projects/find-a-project-by-id-or-name","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/upload-a-project-avatar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-a-new-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-a-deployment-by-id-or-url","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/projects/updates-the-description-for-a-rollback","title":"Updates the description for a rollback","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/update-the-rolling-release-settings-for-the-project","distance":0.2237},{"site":"vercel-docs","path":"/docs/cli/rollback","distance":0.2649},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/update-the-active-rolling-release-to-the-next-stage-for-a-project","distance":0.2657},{"site":"vercel-docs","path":"/docs/rest-api/projects/point-production-traffic-to-a-previous-production-deployment-by-id","distance":0.2686},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/delete-rolling-release-configuration","distance":0.2783}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/update-the-rolling-release-settings-for-the-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/rollback","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/update-the-active-rolling-release-to-the-next-stage-for-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/point-production-traffic-to-a-previous-production-deployment-by-id","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/delete-rolling-release-configuration","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/projects/upload-a-project-avatar","title":"Upload a project avatar","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/projects/find-a-project-by-id-or-name","distance":0.0246},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-the-microfrontends-settings","distance":0.0672},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-a-new-project","distance":0.1724},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-team","distance":0.2242},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-a-deployment-by-id-or-url","distance":0.2322}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/projects/find-a-project-by-id-or-name","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-the-microfrontends-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-a-new-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-a-deployment-by-id-or-url","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/projects/verify-project-domain","title":"Verify project domain","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/projects/get-a-project-domain","distance":0.0915},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-a-project-domain","distance":0.1358},{"site":"vercel-docs","path":"/docs/rest-api/projects/add-a-domain-to-a-project","distance":0.1366},{"site":"vercel-docs","path":"/docs/rest-api/domains/list-project-domains-by-apex-domain","distance":0.1406},{"site":"vercel-docs","path":"/docs/rest-api/projects/move-a-project-domain","distance":0.1492}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/projects/get-a-project-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-a-project-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/add-a-domain-to-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains/list-project-domains-by-apex-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/move-a-project-domain","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/complete-the-rolling-release-for-the-project","title":"Complete the rolling release for the project","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/start-a-rolling-release-for-the-project","distance":0.0253},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/update-the-active-rolling-release-to-the-next-stage-for-a-project","distance":0.0495},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-the-active-rolling-release-information-for-a-project","distance":0.0537},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-rolling-release-configuration","distance":0.1042},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/update-the-rolling-release-settings-for-the-project","distance":0.1363}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/start-a-rolling-release-for-the-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/update-the-active-rolling-release-to-the-next-stage-for-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-the-active-rolling-release-information-for-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-rolling-release-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/update-the-rolling-release-settings-for-the-project","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/delete-rolling-release-configuration","title":"Delete rolling release configuration","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-rolling-release-configuration","distance":0.0969},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/update-the-rolling-release-settings-for-the-project","distance":0.1223},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-rolling-release-billing-status","distance":0.1755},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/complete-the-rolling-release-for-the-project","distance":0.1841},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-the-active-rolling-release-information-for-a-project","distance":0.1949}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-rolling-release-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/update-the-rolling-release-settings-for-the-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-rolling-release-billing-status","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/complete-the-rolling-release-for-the-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-the-active-rolling-release-information-for-a-project","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-rolling-release-billing-status","title":"Get rolling release billing status","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-docs","path":"/docs/rolling-releases"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-rolling-release-configuration","distance":0.1073},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-the-active-rolling-release-information-for-a-project","distance":0.118},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/update-the-rolling-release-settings-for-the-project","distance":0.1364},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/complete-the-rolling-release-for-the-project","distance":0.1563},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/start-a-rolling-release-for-the-project","distance":0.1637}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-rolling-release-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-the-active-rolling-release-information-for-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/update-the-rolling-release-settings-for-the-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/complete-the-rolling-release-for-the-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/start-a-rolling-release-for-the-project","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-rolling-release-configuration","title":"Get rolling release configuration","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-the-active-rolling-release-information-for-a-project","distance":0.0902},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/update-the-rolling-release-settings-for-the-project","distance":0.0963},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/delete-rolling-release-configuration","distance":0.0969},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/complete-the-rolling-release-for-the-project","distance":0.1042},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-rolling-release-billing-status","distance":0.1073}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-the-active-rolling-release-information-for-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/update-the-rolling-release-settings-for-the-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/delete-rolling-release-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/complete-the-rolling-release-for-the-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-rolling-release-billing-status","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-the-active-rolling-release-information-for-a-project","title":"Get the active rolling release information for a project","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/complete-the-rolling-release-for-the-project","distance":0.0537},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/update-the-active-rolling-release-to-the-next-stage-for-a-project","distance":0.0585},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/start-a-rolling-release-for-the-project","distance":0.0603},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-rolling-release-configuration","distance":0.0902},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-rolling-release-billing-status","distance":0.118}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/complete-the-rolling-release-for-the-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/update-the-active-rolling-release-to-the-next-stage-for-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/start-a-rolling-release-for-the-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-rolling-release-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-rolling-release-billing-status","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/start-a-rolling-release-for-the-project","title":"Start a rolling release for the project","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/complete-the-rolling-release-for-the-project","distance":0.0253},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/update-the-active-rolling-release-to-the-next-stage-for-a-project","distance":0.0572},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-the-active-rolling-release-information-for-a-project","distance":0.0603},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-rolling-release-configuration","distance":0.11},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/update-the-rolling-release-settings-for-the-project","distance":0.1503}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/complete-the-rolling-release-for-the-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/update-the-active-rolling-release-to-the-next-stage-for-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-the-active-rolling-release-information-for-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-rolling-release-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/update-the-rolling-release-settings-for-the-project","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/update-the-active-rolling-release-to-the-next-stage-for-a-project","title":"Update the active rolling release to the next stage for a project","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/complete-the-rolling-release-for-the-project","distance":0.0495},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/start-a-rolling-release-for-the-project","distance":0.0572},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-the-active-rolling-release-information-for-a-project","distance":0.0585},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/update-the-rolling-release-settings-for-the-project","distance":0.1049},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-rolling-release-configuration","distance":0.1277}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/complete-the-rolling-release-for-the-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/start-a-rolling-release-for-the-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-the-active-rolling-release-information-for-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/update-the-rolling-release-settings-for-the-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-rolling-release-configuration","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/update-the-rolling-release-settings-for-the-project","title":"Update the rolling release settings for the project","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-rolling-release-configuration","distance":0.0963},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/update-the-active-rolling-release-to-the-next-stage-for-a-project","distance":0.1049},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/delete-rolling-release-configuration","distance":0.1223},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-the-active-rolling-release-information-for-a-project","distance":0.1324},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/complete-the-rolling-release-for-the-project","distance":0.1363}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-rolling-release-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/update-the-active-rolling-release-to-the-next-stage-for-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/delete-rolling-release-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-the-active-rolling-release-information-for-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/complete-the-rolling-release-for-the-project","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/create-a-directory","title":"Create a directory","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-or-create-a-drive","distance":0.2279},{"site":"vercel-docs","path":"/docs/rest-api/teams/create-a-team","distance":0.2458},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-sandboxes","distance":0.249},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/create-a-snapshot","distance":0.2503},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-sandbox","distance":0.2542}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-or-create-a-drive","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/create-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-sandboxes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/create-a-snapshot","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-sandbox","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/create-a-named-sandbox","title":"Create a named sandbox","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/update-a-sandbox","distance":0.0407},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/fork-a-named-sandbox","distance":0.0515},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/stop-a-session","distance":0.2256},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-named-sandbox","distance":0.2341},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference","distance":0.2426}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/update-a-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/fork-a-named-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-duration-and-persistence","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/stop-a-session","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-named-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/create-a-snapshot","title":"Create a snapshot","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-snapshot","distance":0.0974},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/stop-a-session","distance":0.1016},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-named-sandbox","distance":0.11},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-snapshot","distance":0.1258},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-snapshots","distance":0.1285}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-snapshot","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/stop-a-session","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-named-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-snapshot","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-snapshots","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-drive","title":"Delete a drive","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-or-create-a-drive","distance":0.0967},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-drives","distance":0.1064},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-sandbox","distance":0.1868},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-sandboxes","distance":0.2529},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-snapshot","distance":0.2538}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-or-create-a-drive","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-drives","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-drives","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-sandboxes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-snapshot","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-sandbox","title":"Delete a sandbox","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-named-sandbox","distance":0.0783},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-sandboxes","distance":0.0934},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/stop-a-session","distance":0.1122},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-session","distance":0.1463},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/create-a-snapshot","distance":0.1506}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-named-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-sandboxes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/stop-a-session","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-session","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/create-a-snapshot","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-snapshot","title":"Delete a snapshot","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-snapshot","distance":0.1032},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/create-a-snapshot","distance":0.1258},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-snapshots","distance":0.1469},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-sandbox","distance":0.1868},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/stop-a-session","distance":0.2336}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-snapshot","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/create-a-snapshot","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-snapshots","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/stop-a-session","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/execute-a-command","title":"Execute a command","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-command","distance":0.1208},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-commands","distance":0.1341},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/kill-a-command","distance":0.1731},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/stream-command-logs","distance":0.1744},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/stop-a-session","distance":0.1753}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-command","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-commands","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/kill-a-command","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/stream-command-logs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/stop-a-session","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/extend-session-timeout","title":"Extend session timeout","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/stop-a-session","distance":0.1299},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-session","distance":0.1374},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-named-sandbox","distance":0.1763},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-sessions","distance":0.181},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/create-a-snapshot","distance":0.1818}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/stop-a-session","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-session","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-duration-and-persistence","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-named-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-sessions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/create-a-snapshot","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/fork-a-named-sandbox","title":"Fork a named sandbox","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/create-a-named-sandbox","distance":0.0515},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/update-a-sandbox","distance":0.0827},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/stop-a-session","distance":0.2499},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference","distance":0.2614},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-named-sandbox","distance":0.2617}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/create-a-named-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/update-a-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-duration-and-persistence","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/stop-a-session","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-named-sandbox","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-command","title":"Get a command","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-commands","distance":0.0936},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/execute-a-command","distance":0.1208},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/kill-a-command","distance":0.1686},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-session","distance":0.1982},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/stream-command-logs","distance":0.2272}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-commands","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/execute-a-command","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/kill-a-command","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-session","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/stream-command-logs","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-named-sandbox","title":"Get a named sandbox","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/stop-a-session","distance":0.0691},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-sandboxes","distance":0.0755},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-sandbox","distance":0.0783},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-session","distance":0.0879},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/create-a-snapshot","distance":0.11}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/stop-a-session","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-sandboxes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-session","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/create-a-snapshot","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-session","title":"Get a session","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/stop-a-session","distance":0.0618},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-named-sandbox","distance":0.0879},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-sessions","distance":0.0998},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/create-a-snapshot","distance":0.1349},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-sandboxes","distance":0.135}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/stop-a-session","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-named-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-sessions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/create-a-snapshot","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-sandboxes","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-snapshot","title":"Get a snapshot","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-snapshots","distance":0.0873},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/create-a-snapshot","distance":0.0974},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-snapshot","distance":0.1032},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-session","distance":0.2028},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-named-sandbox","distance":0.212}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-snapshots","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/create-a-snapshot","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-snapshot","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-session","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-named-sandbox","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-or-create-a-drive","title":"Get or create a drive","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-drive","distance":0.0967},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-drives","distance":0.105},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-named-sandbox","distance":0.1916},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-sandboxes","distance":0.1988},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-sandbox","distance":0.2117}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-drive","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-drives","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-drives","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-named-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-sandboxes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-sandbox","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/kill-a-command","title":"Kill a command","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-command","distance":0.1686},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/execute-a-command","distance":0.1731},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-commands","distance":0.1889},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-sandbox","distance":0.2515},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/stop-a-session","distance":0.2746}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-command","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/execute-a-command","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-commands","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/stop-a-session","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-commands","title":"List commands","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-command","distance":0.0936},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/execute-a-command","distance":0.1341},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-sandboxes","distance":0.1858},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/kill-a-command","distance":0.1889},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-sessions","distance":0.2025}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-command","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/execute-a-command","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-sandboxes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/kill-a-command","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-sessions","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-drives","title":"List drives","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-or-create-a-drive","distance":0.105},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-drive","distance":0.1064},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-sandboxes","distance":0.1807},{"site":"vercel-docs","path":"/docs/sandbox/concepts/drives","distance":0.2207},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-sessions","distance":0.2252}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-drives","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-or-create-a-drive","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-drive","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-sandboxes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/drives","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-sessions","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-sandboxes","title":"List sandboxes","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-named-sandbox","distance":0.0755},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-sandbox","distance":0.0934},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/stop-a-session","distance":0.1197},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-session","distance":0.135},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-sessions","distance":0.1465}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-named-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/stop-a-session","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-session","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-sessions","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-sessions","title":"List sessions","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-session","distance":0.0998},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/stop-a-session","distance":0.1307},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-sandboxes","distance":0.1465},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-named-sandbox","distance":0.1762},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/extend-session-timeout","distance":0.181}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-session","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/stop-a-session","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-sandboxes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-named-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/extend-session-timeout","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-snapshots","title":"List snapshots","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-snapshot","distance":0.0873},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/create-a-snapshot","distance":0.1285},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-snapshot","distance":0.1469},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-sandboxes","distance":0.1582},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-named-sandbox","distance":0.2131}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-snapshot","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/create-a-snapshot","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-snapshot","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-sandboxes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-named-sandbox","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/read-a-file","title":"Read a file","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/write-files","distance":0.1949},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-session","distance":0.2601},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-file-contents","distance":0.2816},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-sandboxes","distance":0.283},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/execute-a-command","distance":0.2912}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/write-files","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-session","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-file-contents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-sandboxes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/execute-a-command","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/stop-a-session","title":"Stop a session","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-session","distance":0.0618},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-named-sandbox","distance":0.0691},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/create-a-snapshot","distance":0.1016},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-sandbox","distance":0.1122},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-sandboxes","distance":0.1197}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-session","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-named-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/create-a-snapshot","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-sandboxes","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/stream-command-logs","title":"Stream command logs","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/execute-a-command","distance":0.1744},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-commands","distance":0.2107},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-command","distance":0.2272},{"site":"vercel-docs","path":"/docs/rest-api/logs/get-logs-for-a-deployment","distance":0.2463},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-events","distance":0.264}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/execute-a-command","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-commands","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-command","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logs/get-logs-for-a-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-events","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/update-a-sandbox","title":"Update a sandbox","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/create-a-named-sandbox","distance":0.0407},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/fork-a-named-sandbox","distance":0.0827},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/stop-a-session","distance":0.2083},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-named-sandbox","distance":0.2207},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference","distance":0.2521}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/create-a-named-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/fork-a-named-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/stop-a-session","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-named-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/update-network-policy","title":"Update network policy","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/stop-a-session","distance":0.1676},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-named-sandbox","distance":0.1728},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-session","distance":0.1888},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/create-a-snapshot","distance":0.1954},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/extend-session-timeout","distance":0.2022}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/stop-a-session","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-named-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-session","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/create-a-snapshot","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/extend-session-timeout","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/write-files","title":"Write files","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/read-a-file","distance":0.1949},{"site":"vercel-docs","path":"/docs/rest-api/deployments/upload-deployment-files","distance":0.2853},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/create-a-directory","distance":0.2915},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-session","distance":0.3405},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployment-files","distance":0.343}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/read-a-file","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/upload-deployment-files","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/create-a-directory","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-session","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployment-files","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/sdk","title":"Vercel SDK","summary":"Learn about vercel sdk on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/domains/registrar-api"},{"site":"vercel-docs","path":"/docs/platforms"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/reference"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/quickstart"},{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-supported-tld-s"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-domains-records-record-id"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api","distance":0.0169},{"site":"vercel-docs","path":"/docs/cli/global-config","distance":0.2889},{"site":"vercel-docs","path":"/docs/global-config/vercel-api","distance":0.2899},{"site":"vercel-docs","path":"/docs/global-config","distance":0.2983},{"site":"vercel-docs","path":"/docs/audit-log","distance":0.2987}],"related":[{"site":"vercel-docs","path":"/docs/cli/global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config/vercel-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/audit-log","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/global-config/update-a-global-config","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/security/create-system-bypass-rule","title":"Create System Bypass Rule","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/security/remove-system-bypass-rule","distance":0.0666},{"site":"vercel-docs","path":"/docs/rest-api/security/read-system-bypass","distance":0.1158},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/create-rule","distance":0.1944},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/add-a-routing-rule","distance":0.2169},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/list-rules","distance":0.2179}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/security/remove-system-bypass-rule","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/read-system-bypass","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/create-rule","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/add-a-routing-rule","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/list-rules","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/security/generate-a-firewall-rule-from-natural-language","title":"Generate a firewall rule from natural language","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/project-routes/generate-a-routing-rule-from-natural-language","distance":0.143},{"site":"vercel-docs","path":"/docs/rest-api/security/put-firewall-configuration","distance":0.1935},{"site":"vercel-docs","path":"/docs/rest-api/security/read-firewall-configuration","distance":0.1999},{"site":"vercel-docs","path":"/docs/rest-api/security/update-firewall-configuration","distance":0.2095},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/create-rule","distance":0.2292}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/project-routes/generate-a-routing-rule-from-natural-language","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/put-firewall-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/read-firewall-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/update-firewall-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/create-rule","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/security/put-firewall-configuration","title":"Put Firewall Configuration","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/security/read-firewall-configuration","distance":0.0459},{"site":"vercel-docs","path":"/docs/rest-api/security/update-firewall-configuration","distance":0.1088},{"site":"vercel-docs","path":"/docs/rest-api/security/returns-activated-waf-config","distance":0.1353},{"site":"vercel-docs","path":"/docs/rest-api/security/generate-a-firewall-rule-from-natural-language","distance":0.1935},{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team","distance":0.2163}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/security/read-firewall-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/update-firewall-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/returns-activated-waf-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/generate-a-firewall-rule-from-natural-language","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/security/read-active-attack-data","title":"Read active attack data","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/security/update-attack-challenge-mode","distance":0.2344},{"site":"vercel-docs","path":"/docs/rest-api/security/read-firewall-configuration","distance":0.2554},{"site":"vercel-docs","path":"/docs/rest-api/security/read-firewall-actions-by-project","distance":0.2605},{"site":"vercel-docs","path":"/docs/rest-api/security/returns-activated-waf-config","distance":0.262},{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/aggregates-page-views","distance":0.2821}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/security/update-attack-challenge-mode","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/read-firewall-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/read-firewall-actions-by-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/returns-activated-waf-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/aggregates-page-views","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/security/read-firewall-actions-by-project","title":"Read Firewall Actions by Project","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/security/read-firewall-configuration","distance":0.1705},{"site":"vercel-docs","path":"/docs/rest-api/security/update-firewall-configuration","distance":0.2121},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/reads-an-access-group-project","distance":0.2288},{"site":"vercel-docs","path":"/docs/rest-api/security/put-firewall-configuration","distance":0.2291},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-a-list-of-projects","distance":0.2384}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/security/read-firewall-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/update-firewall-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/reads-an-access-group-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/put-firewall-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-a-list-of-projects","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/security/read-firewall-configuration","title":"Read Firewall Configuration","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/security/put-firewall-configuration","distance":0.0459},{"site":"vercel-docs","path":"/docs/rest-api/security/update-firewall-configuration","distance":0.1105},{"site":"vercel-docs","path":"/docs/rest-api/security/returns-activated-waf-config","distance":0.1197},{"site":"vercel-docs","path":"/docs/rest-api/security/read-firewall-actions-by-project","distance":0.1705},{"site":"vercel-docs","path":"/docs/rest-api/security/generate-a-firewall-rule-from-natural-language","distance":0.1999}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/security/put-firewall-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/update-firewall-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/returns-activated-waf-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/read-firewall-actions-by-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/generate-a-firewall-rule-from-natural-language","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/security/read-system-bypass","title":"Read System Bypass","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/security/create-system-bypass-rule","distance":0.1158},{"site":"vercel-docs","path":"/docs/rest-api/security/remove-system-bypass-rule","distance":0.1162},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-protection-bypass-for-automation","distance":0.2384},{"site":"vercel-docs","path":"/docs/rest-api/security/read-firewall-configuration","distance":0.2476},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/get-project-routing-rules","distance":0.2612}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/security/create-system-bypass-rule","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/remove-system-bypass-rule","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-protection-bypass-for-automation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/read-firewall-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/get-project-routing-rules","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/security/remove-system-bypass-rule","title":"Remove System Bypass Rule","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/security/create-system-bypass-rule","distance":0.0666},{"site":"vercel-docs","path":"/docs/rest-api/security/read-system-bypass","distance":0.1162},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/delete-rule","distance":0.196},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/delete-routing-rules","distance":0.2029},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/list-rules","distance":0.219}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/security/create-system-bypass-rule","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/read-system-bypass","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/delete-rule","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/delete-routing-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/list-rules","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/security/returns-activated-waf-config","title":"Returns activated WAF config","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/security/read-firewall-configuration","distance":0.1197},{"site":"vercel-docs","path":"/docs/rest-api/security/put-firewall-configuration","distance":0.1353},{"site":"vercel-docs","path":"/docs/rest-api/security/update-firewall-configuration","distance":0.1962},{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team","distance":0.2032},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/get-virtual-model-config","distance":0.2171}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/security/read-firewall-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/put-firewall-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/update-firewall-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/get-virtual-model-config","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/security/update-attack-challenge-mode","title":"Update Attack Challenge mode","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-api"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/aliases/update-the-protection-bypass-for-a-url","distance":0.2265},{"site":"vercel-docs","path":"/docs/rest-api/security/update-firewall-configuration","distance":0.228},{"site":"vercel-docs","path":"/docs/rest-api/security/read-active-attack-data","distance":0.2344},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-project-flag-settings","distance":0.2368},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/update-an-access-group-project","distance":0.245}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/aliases/update-the-protection-bypass-for-a-url","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/update-firewall-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/read-active-attack-data","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-project-flag-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/update-an-access-group-project","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/security/update-firewall-configuration","title":"Update Firewall Configuration","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/security/put-firewall-configuration","distance":0.1088},{"site":"vercel-docs","path":"/docs/rest-api/security/read-firewall-configuration","distance":0.1105},{"site":"vercel-docs","path":"/docs/rest-api/security/returns-activated-waf-config","distance":0.1962},{"site":"vercel-docs","path":"/docs/rest-api/security/generate-a-firewall-rule-from-natural-language","distance":0.2095},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-project-flag-settings","distance":0.2113}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/security/put-firewall-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/read-firewall-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/returns-activated-waf-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/generate-a-firewall-rule-from-natural-language","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/update-project-flag-settings","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/storage/create-a-blob-store","title":"Create a Blob store","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/storage/delete-a-blob-store","distance":0.1164},{"site":"vercel-docs","path":"/docs/rest-api/storage/get-a-store","distance":0.1648},{"site":"vercel-docs","path":"/docs/vercel-blob/manage-blob-storage","distance":0.2012},{"site":"vercel-docs","path":"/docs/rest-api/vcr/start-a-blob-upload","distance":0.21},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-a-blob","distance":0.2189}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-blob","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/storage/delete-a-blob-store","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/storage/get-a-store","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/manage-blob-storage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/start-a-blob-upload","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-a-blob","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/storage/delete-a-blob-store","title":"Delete a Blob store","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/storage/create-a-blob-store","distance":0.1164},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-a-blob","distance":0.1524},{"site":"vercel-docs","path":"/docs/rest-api/storage/get-a-store","distance":0.1915},{"site":"vercel-docs","path":"/docs/vercel-blob/manage-blob-storage","distance":0.2162},{"site":"vercel-docs","path":"/docs/rest-api/vcr/cancel-a-blob-upload","distance":0.2338}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/storage/create-a-blob-store","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-a-blob","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/storage/get-a-store","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/manage-blob-storage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/cancel-a-blob-upload","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/storage/get-a-store","title":"Get a store","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/storage/create-a-blob-store","distance":0.1648},{"site":"vercel-docs","path":"/docs/rest-api/storage/delete-a-blob-store","distance":0.1915},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository","distance":0.214},{"site":"vercel-docs","path":"/docs/rest-api/integrations/create-integration-store-free-and-paid-plans","distance":0.2508},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repositories","distance":0.2522}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/storage/create-a-blob-store","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/storage/delete-a-blob-store","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/create-integration-store-free-and-paid-plans","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repositories","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/teams/create-a-team","title":"Create a Team","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-team","distance":0.1368},{"site":"vercel-docs","path":"/docs/rest-api/teams/join-a-team","distance":0.1459},{"site":"vercel-docs","path":"/docs/rest-api/teams/request-access-to-a-team","distance":0.1542},{"site":"vercel-docs","path":"/docs/rest-api/teams/list-all-teams","distance":0.1721},{"site":"vercel-docs","path":"/docs/rest-api/teams/list-team-members","distance":0.1736}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/join-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/request-access-to-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/list-all-teams","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/list-team-members","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-microfrontends-group","title":"Delete a microfrontends group","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/list-microfrontends-groups","distance":0.1239},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-microfrontends-group","distance":0.1402},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/deletes-an-access-group","distance":0.1539},{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-team","distance":0.1681},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/create-a-microfrontends-group-with-applications","distance":0.1842}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/list-microfrontends-groups","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-microfrontends-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/deletes-an-access-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/create-a-microfrontends-group-with-applications","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-team","title":"Delete a Team","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/teams/remove-a-team-member","distance":0.1224},{"site":"vercel-docs","path":"/docs/rest-api/teams/create-a-team","distance":0.1368},{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-team-invite-code","distance":0.138},{"site":"vercel-docs","path":"/docs/rest-api/teams/request-access-to-a-team","distance":0.1548},{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-microfrontends-group","distance":0.1681}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/teams/remove-a-team-member","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/create-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-team-invite-code","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/request-access-to-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-microfrontends-group","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-team-invite-code","title":"Delete a Team invite code","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-team","distance":0.138},{"site":"vercel-docs","path":"/docs/rest-api/teams/invite-a-user","distance":0.174},{"site":"vercel-docs","path":"/docs/rest-api/teams/join-a-team","distance":0.1785},{"site":"vercel-docs","path":"/docs/rest-api/teams/remove-a-team-member","distance":0.2007},{"site":"vercel-docs","path":"/docs/rest-api/teams/create-a-team","distance":0.2274}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/invite-a-user","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/join-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/remove-a-team-member","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/create-a-team","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/teams/get-a-team","title":"Get a Team","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-team","distance":0.1041},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-a-new-project","distance":0.197},{"site":"vercel-docs","path":"/docs/rest-api/projects/upload-a-project-avatar","distance":0.2605},{"site":"vercel-docs","path":"/docs/rest-api/deployments/cancel-a-deployment","distance":0.2622},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-a-deployment-by-id-or-url","distance":0.2643}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-a-new-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/upload-a-project-avatar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/cancel-a-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-a-deployment-by-id-or-url","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/teams/get-access-request-status","title":"Get access request status","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/teams/request-access-to-a-team","distance":0.06},{"site":"vercel-docs","path":"/docs/rest-api/teams/list-team-members","distance":0.1386},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-access-groups-for-a-team-project-or-member","distance":0.1634},{"site":"vercel-docs","path":"/docs/rest-api/teams/join-a-team","distance":0.165},{"site":"vercel-docs","path":"/docs/rest-api/teams/list-all-teams","distance":0.1712}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/teams/request-access-to-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/list-team-members","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-access-groups-for-a-team-project-or-member","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/join-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/list-all-teams","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/teams/invite-a-user","title":"Invite a user","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/teams/join-a-team","distance":0.1155},{"site":"vercel-docs","path":"/docs/rest-api/teams/list-team-members","distance":0.147},{"site":"vercel-docs","path":"/docs/rest-api/teams/request-access-to-a-team","distance":0.1587},{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-team-invite-code","distance":0.174},{"site":"vercel-docs","path":"/docs/rest-api/teams/create-a-team","distance":0.1785}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/teams/join-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/list-team-members","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/request-access-to-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-team-invite-code","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/create-a-team","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/teams/join-a-team","title":"Join a team","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/teams/invite-a-user","distance":0.1155},{"site":"vercel-docs","path":"/docs/rest-api/teams/list-team-members","distance":0.1421},{"site":"vercel-docs","path":"/docs/rest-api/teams/create-a-team","distance":0.1459},{"site":"vercel-docs","path":"/docs/rest-api/teams/request-access-to-a-team","distance":0.1494},{"site":"vercel-docs","path":"/docs/rest-api/teams/get-access-request-status","distance":0.165}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/teams/invite-a-user","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/list-team-members","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/create-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/request-access-to-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/get-access-request-status","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/teams/list-all-teams","title":"List all teams","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/teams/list-team-members","distance":0.082},{"site":"vercel-docs","path":"/docs/rest-api/teams/request-access-to-a-team","distance":0.1587},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-access-groups-for-a-team-project-or-member","distance":0.1594},{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-team","distance":0.1688},{"site":"vercel-docs","path":"/docs/rest-api/teams/join-a-team","distance":0.1697}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/teams/list-team-members","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/request-access-to-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-access-groups-for-a-team-project-or-member","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/join-a-team","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/teams/list-team-members","title":"List team members","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/teams/list-all-teams","distance":0.082},{"site":"vercel-docs","path":"/docs/rest-api/projectmembers/list-project-members","distance":0.1104},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-access-groups-for-a-team-project-or-member","distance":0.1169},{"site":"vercel-docs","path":"/docs/rest-api/teams/request-access-to-a-team","distance":0.1307},{"site":"vercel-docs","path":"/docs/rest-api/teams/get-access-request-status","distance":0.1386}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/teams/list-all-teams","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projectmembers/list-project-members","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-access-groups-for-a-team-project-or-member","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/request-access-to-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/get-access-request-status","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/teams/remove-a-team-member","title":"Remove a Team Member","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/projectmembers/remove-a-project-member","distance":0.1192},{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-team","distance":0.1224},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-team-member","distance":0.1463},{"site":"vercel-docs","path":"/docs/rest-api/teams/list-team-members","distance":0.1734},{"site":"vercel-docs","path":"/docs/rest-api/teams/join-a-team","distance":0.1965}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/projectmembers/remove-a-project-member","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-team-member","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/list-team-members","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/join-a-team","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/teams/request-access-to-a-team","title":"Request access to a team","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/teams/get-access-request-status","distance":0.06},{"site":"vercel-docs","path":"/docs/rest-api/teams/list-team-members","distance":0.1307},{"site":"vercel-docs","path":"/docs/rest-api/teams/join-a-team","distance":0.1494},{"site":"vercel-docs","path":"/docs/rest-api/teams/create-a-team","distance":0.1542},{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-team","distance":0.1548}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/teams/get-access-request-status","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/list-team-members","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/join-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/create-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-team","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-microfrontends-group","title":"Update a microfrontends group","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-microfrontends-group","distance":0.1402},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/list-microfrontends-groups","distance":0.1489},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/update-an-access-group","distance":0.1525},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/create-a-microfrontends-group-with-applications","distance":0.1565},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/update-an-access-group-project","distance":0.1695}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-microfrontends-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/list-microfrontends-groups","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/update-an-access-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/create-a-microfrontends-group-with-applications","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/update-an-access-group-project","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-team","title":"Update a Team","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/teams/get-a-team","distance":0.1041},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-a-new-project","distance":0.152},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-a-deployment-by-id-or-url","distance":0.2231},{"site":"vercel-docs","path":"/docs/rest-api/projects/upload-a-project-avatar","distance":0.2242},{"site":"vercel-docs","path":"/docs/rest-api/projects/find-a-project-by-id-or-name","distance":0.2324}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/teams/get-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-a-new-project","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/init","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-a-deployment-by-id-or-url","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/upload-a-project-avatar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/find-a-project-by-id-or-name","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-team-member","title":"Update a Team Member","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/teams/remove-a-team-member","distance":0.1463},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-team-directory-sync-role-mappings","distance":0.1496},{"site":"vercel-docs","path":"/docs/rest-api/teams/list-team-members","distance":0.1599},{"site":"vercel-docs","path":"/docs/rest-api/teams/join-a-team","distance":0.1705},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-microfrontends-group","distance":0.1766}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/teams/remove-a-team-member","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-team-directory-sync-role-mappings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/list-team-members","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/join-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-microfrontends-group","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-team-directory-sync-role-mappings","title":"Update Team Directory Sync Role Mappings","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-team-member","distance":0.1496},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-microfrontends-group","distance":0.186},{"site":"vercel-docs","path":"/docs/rest-api/teams/list-team-members","distance":0.2092},{"site":"vercel-docs","path":"/docs/rest-api/teams/create-a-team","distance":0.2282},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/update-an-access-group","distance":0.2284}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-team-member","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-microfrontends-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/list-team-members","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/create-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/update-an-access-group","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-domains-records-record-id","title":"GET /domains/records/{recordId}","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api/sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/untagged/put-domains-domain-records","distance":0.1276},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-supported-tld-s","distance":0.2204},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-api-keys","distance":0.2661},{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-v2-observability-schema","distance":0.2917},{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-v2-observability-schema-metric-id","distance":0.3498}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/untagged/put-domains-domain-records","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-supported-tld-s","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-api-keys","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-v2-observability-schema","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-v2-observability-schema-metric-id","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-v2-observability-schema","title":"GET /v2/observability/schema","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-contact-info-schema"},{"site":"vercel-docs","path":"/docs/rest-api/projects/edit-an-environment-variable"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-v2-observability-schema-metric-id","distance":0.1624},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-v2-observability-query","distance":0.2087},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-api-keys","distance":0.2802},{"site":"vercel-docs","path":"/docs/rest-api/untagged/put-domains-domain-records","distance":0.2916},{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-domains-records-record-id","distance":0.2917}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-v2-observability-schema-metric-id","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-v2-observability-query","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-api-keys","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/put-domains-domain-records","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-domains-records-record-id","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-v2-observability-schema-metric-id","title":"GET /v2/observability/schema/{metricId}","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package"},{"site":"vercel-docs","path":"/docs/rest-api/projects/edit-an-environment-variable"},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-decrypted-value-of-an-environment-variable-of-a-project-by-id"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-v2-observability-schema","distance":0.1624},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-speed-insights-toggle","distance":0.2014},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-web-insights-toggle","distance":0.2146},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-v2-observability-query","distance":0.2187},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-api-keys","distance":0.3192}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-v2-observability-schema","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-speed-insights-toggle","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-web-insights-toggle","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-v2-observability-query","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-id","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-api-keys","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-api-keys","title":"POST /api-keys","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-v2-observability-query","distance":0.2444},{"site":"vercel-docs","path":"/docs/sitemap.md","distance":0.2523},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-web-insights-toggle","distance":0.2544},{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-domains-records-record-id","distance":0.2661},{"site":"vercel-docs","path":"/docs/rest-api/untagged/put-domains-domain-records","distance":0.2712}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-v2-observability-query","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sitemap.md","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-web-insights-toggle","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-domains-records-record-id","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/put-domains-domain-records","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-speed-insights-toggle","title":"POST /speed-insights/toggle","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/speed-insights"},{"site":"vercel-docs","path":"/docs/speed-insights/troubleshooting"},{"site":"vercel-docs","path":"/docs/speed-insights/using-speed-insights"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-web-insights-toggle","distance":0.0613},{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-v2-observability-schema-metric-id","distance":0.2014},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-v2-observability-query","distance":0.2747},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-api-keys","distance":0.3117},{"site":"vercel-docs","path":"/docs/speed-insights/troubleshooting","distance":0.3286}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-web-insights-toggle","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-v2-observability-schema-metric-id","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-v2-observability-query","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-api-keys","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-v2-observability-schema","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-v2-observability-query","title":"POST /v2/observability/query","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/frameworks/frontend/create-react-app"},{"site":"vercel-docs","path":"/docs/query"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/create-a-check"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-all-checks-for-a-project"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/get-a-webhook"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-v2-observability-schema","distance":0.2087},{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-v2-observability-schema-metric-id","distance":0.2187},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-api-keys","distance":0.2444},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-web-insights-toggle","distance":0.2517},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-speed-insights-toggle","distance":0.2747}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-v2-observability-schema","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-v2-observability-schema-metric-id","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-api-keys","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-web-insights-toggle","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-speed-insights-toggle","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-web-insights-toggle","title":"POST /web/insights/toggle","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-speed-insights-toggle","distance":0.0613},{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-v2-observability-schema-metric-id","distance":0.2146},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-v2-observability-query","distance":0.2517},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-api-keys","distance":0.2544},{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-v2-observability-schema","distance":0.3166}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-speed-insights-toggle","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-v2-observability-schema-metric-id","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-v2-observability-query","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-api-keys","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-v2-observability-schema","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/untagged/put-domains-domain-records","title":"PUT /domains/{domain}/records","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-tld"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-domains-records-record-id","distance":0.1276},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-supported-tld-s","distance":0.1712},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-api-keys","distance":0.2712},{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-v2-observability-schema","distance":0.2916},{"site":"vercel-docs","path":"/docs/sitemap.md","distance":0.3479}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-domains-records-record-id","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-supported-tld-s","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-api-keys","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-v2-observability-schema","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sitemap.md","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/user/delete-user-account","title":"Delete User Account","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-team","distance":0.2079},{"site":"vercel-docs","path":"/docs/rest-api/user/get-the-user","distance":0.243},{"site":"vercel-docs","path":"/docs/rest-api/authentication/delete-an-authentication-token","distance":0.2501},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/delete-virtual-model-config","distance":0.2745},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/deletes-a-webhook","distance":0.2763}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-delete-my-vercel-account","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/user/get-the-user","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/authentication/delete-an-authentication-token","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/delete-virtual-model-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/deletes-a-webhook","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/user/get-the-user","title":"Get the User","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/teams/get-access-request-status","distance":0.2012},{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team","distance":0.208},{"site":"vercel-docs","path":"/docs/rest-api/teams/list-team-members","distance":0.2298},{"site":"vercel-docs","path":"/docs/rest-api/authentication/get-auth-token-metadata","distance":0.2326},{"site":"v0","path":"/docs/api/v1/reference/user/get","distance":0.2369}],"related":[{"site":"v0","path":"/docs/api/v1/reference/user/get","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/get-access-request-status","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/list-team-members","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/authentication/get-auth-token-metadata","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/aggregates-page-views","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/user/list-event-types","title":"List Event Types","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/user/list-user-events","distance":0.026},{"site":"vercel-docs","path":"/docs/activity-log","distance":0.2285},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-a-new-project","distance":0.2443},{"site":"vercel-docs","path":"/docs/rest-api/teams/get-a-team","distance":0.2785},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-the-microfrontends-settings","distance":0.2891}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/user/list-user-events","via":"neighbor"},{"site":"vercel-docs","path":"/docs/activity-log","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-a-new-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/get-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-the-microfrontends-settings","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/user/list-user-events","title":"List User Events","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/user/list-event-types","distance":0.026},{"site":"vercel-docs","path":"/docs/activity-log","distance":0.2147},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-a-new-project","distance":0.2399},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-the-microfrontends-settings","distance":0.2856},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-team","distance":0.2907}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/user/list-event-types","via":"neighbor"},{"site":"vercel-docs","path":"/docs/activity-log","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-a-new-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-the-microfrontends-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/update-a-team","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/vcr/add-a-repository-permission","title":"Add a repository permission","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/remove-a-repository-permission","distance":0.0818},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-permissions","distance":0.0881},{"site":"vercel-docs","path":"/docs/rest-api/vcr/create-a-repository","distance":0.1256},{"site":"vercel-docs","path":"/docs/rest-api/vcr/clear-all-repository-permissions","distance":0.1408},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository","distance":0.1496}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/remove-a-repository-permission","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-permissions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/create-a-repository","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/clear-all-repository-permissions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/vcr/cancel-a-blob-upload","title":"Cancel a blob upload","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/complete-a-blob-upload","distance":0.1063},{"site":"vercel-docs","path":"/docs/rest-api/vcr/start-a-blob-upload","distance":0.1144},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-blob-upload-status","distance":0.1152},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-a-blob","distance":0.1218},{"site":"vercel-docs","path":"/docs/rest-api/vcr/upload-a-blob-chunk","distance":0.1387}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/complete-a-blob-upload","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/start-a-blob-upload","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-blob-upload-status","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-a-blob","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/upload-a-blob-chunk","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/vcr/check-if-a-blob-exists","title":"Check if a blob exists","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-a-blob","distance":0.1623},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-blob-upload-status","distance":0.1695},{"site":"vercel-docs","path":"/docs/rest-api/vcr/download-a-blob","distance":0.1746},{"site":"vercel-docs","path":"/docs/rest-api/vcr/check-if-a-manifest-exists","distance":0.1902},{"site":"vercel-docs","path":"/docs/rest-api/vcr/complete-a-blob-upload","distance":0.195}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-a-blob","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-blob-upload-status","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/download-a-blob","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/check-if-a-manifest-exists","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/complete-a-blob-upload","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/vcr/check-if-a-manifest-exists","title":"Check if a manifest exists","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/pull-an-image-manifest","distance":0.1569},{"site":"vercel-docs","path":"/docs/rest-api/vcr/push-an-image-manifest","distance":0.1741},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-an-image-manifest","distance":0.1803},{"site":"vercel-docs","path":"/docs/rest-api/vcr/check-if-a-blob-exists","distance":0.1902},{"site":"vercel-docs","path":"/docs/rest-api/vcr/check-registry-api-version-support","distance":0.2652}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/pull-an-image-manifest","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/push-an-image-manifest","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-an-image-manifest","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/check-if-a-blob-exists","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/check-registry-api-version-support","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/vcr/check-registry-api-version-support","title":"Check registry API version support","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/update-a-check","distance":0.2512},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check-run","distance":0.2577},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repositories","distance":0.2593},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-contact-verification-status-for-a-domain","distance":0.2621},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/create-a-check","distance":0.2634}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/update-a-check","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check-run","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repositories","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-contact-verification-status-for-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/create-a-check","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/vcr/clear-all-repository-permissions","title":"Clear all repository permissions","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/remove-a-repository-permission","distance":0.0904},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-permissions","distance":0.123},{"site":"vercel-docs","path":"/docs/rest-api/vcr/add-a-repository-permission","distance":0.1408},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-a-repository","distance":0.1741},{"site":"vercel-docs","path":"/docs/rest-api/vcr/create-a-repository","distance":0.2056}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/remove-a-repository-permission","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-permissions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/add-a-repository-permission","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-a-repository","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/create-a-repository","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/vcr/complete-a-blob-upload","title":"Complete a blob upload","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/start-a-blob-upload","distance":0.0846},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-blob-upload-status","distance":0.0962},{"site":"vercel-docs","path":"/docs/rest-api/vcr/upload-a-blob-chunk","distance":0.0971},{"site":"vercel-docs","path":"/docs/rest-api/vcr/cancel-a-blob-upload","distance":0.1063},{"site":"vercel-docs","path":"/docs/rest-api/vcr/download-a-blob","distance":0.14}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/start-a-blob-upload","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-blob-upload-status","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/upload-a-blob-chunk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/cancel-a-blob-upload","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/download-a-blob","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/vcr/create-a-repository","title":"Create a repository","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository","distance":0.0814},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repositories","distance":0.1251},{"site":"vercel-docs","path":"/docs/rest-api/vcr/add-a-repository-permission","distance":0.1256},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-a-repository","distance":0.1363},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-permissions","distance":0.1663}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repositories","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/add-a-repository-permission","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-a-repository","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-permissions","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-a-blob","title":"Delete a blob","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/download-a-blob","distance":0.1021},{"site":"vercel-docs","path":"/docs/rest-api/vcr/cancel-a-blob-upload","distance":0.1218},{"site":"vercel-docs","path":"/docs/rest-api/vcr/complete-a-blob-upload","distance":0.1425},{"site":"vercel-docs","path":"/docs/rest-api/storage/delete-a-blob-store","distance":0.1524},{"site":"vercel-docs","path":"/docs/rest-api/vcr/start-a-blob-upload","distance":0.1611}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/download-a-blob","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/cancel-a-blob-upload","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/complete-a-blob-upload","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/storage/delete-a-blob-store","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/start-a-blob-upload","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-a-repository","title":"Delete a repository","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-a-repository-image","distance":0.0822},{"site":"vercel-docs","path":"/docs/rest-api/vcr/remove-a-repository-permission","distance":0.129},{"site":"vercel-docs","path":"/docs/rest-api/vcr/create-a-repository","distance":0.1363},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository","distance":0.1425},{"site":"vercel-docs","path":"/docs/rest-api/vcr/clear-all-repository-permissions","distance":0.1741}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-a-repository-image","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/remove-a-repository-permission","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/create-a-repository","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/clear-all-repository-permissions","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-a-repository-image","title":"Delete a repository image","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-a-repository","distance":0.0822},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository-image","distance":0.1297},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-images","distance":0.1552},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-an-image-manifest","distance":0.167},{"site":"vercel-docs","path":"/docs/rest-api/vcr/remove-a-repository-permission","distance":0.1981}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-a-repository","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository-image","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-images","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-an-image-manifest","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/remove-a-repository-permission","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-an-image-manifest","title":"Delete an image manifest","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/push-an-image-manifest","distance":0.1077},{"site":"vercel-docs","path":"/docs/rest-api/vcr/pull-an-image-manifest","distance":0.1185},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-a-repository-image","distance":0.167},{"site":"vercel-docs","path":"/docs/rest-api/vcr/check-if-a-manifest-exists","distance":0.1803},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository-image","distance":0.241}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/push-an-image-manifest","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/pull-an-image-manifest","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-a-repository-image","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/check-if-a-manifest-exists","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository-image","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/vcr/download-a-blob","title":"Download a blob","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-a-blob","distance":0.1021},{"site":"vercel-docs","path":"/docs/rest-api/vcr/complete-a-blob-upload","distance":0.14},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-blob-upload-status","distance":0.1423},{"site":"vercel-docs","path":"/docs/rest-api/vcr/upload-a-blob-chunk","distance":0.1552},{"site":"vercel-docs","path":"/docs/rest-api/vcr/start-a-blob-upload","distance":0.1576}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-a-blob","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/complete-a-blob-upload","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-blob-upload-status","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/upload-a-blob-chunk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/start-a-blob-upload","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository","title":"Get a repository","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/create-a-repository","distance":0.0814},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repositories","distance":0.0988},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository-image","distance":0.1284},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-a-repository","distance":0.1425},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-permissions","distance":0.1474}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/create-a-repository","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repositories","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository-image","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-a-repository","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-permissions","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository-image","title":"Get a repository image","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-images","distance":0.0815},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository","distance":0.1284},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-a-repository-image","distance":0.1297},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository-tag","distance":0.1561},{"site":"vercel-docs","path":"/docs/rest-api/vcr/create-a-repository","distance":0.177}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-images","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-a-repository-image","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository-tag","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/create-a-repository","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository-tag","title":"Get a repository tag","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-tags","distance":0.0801},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-image-tags","distance":0.1406},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository","distance":0.1527},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository-image","distance":0.1561},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-images","distance":0.1949}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-tags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-image-tags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository-image","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-images","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-blob-upload-status","title":"Get blob upload status","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/start-a-blob-upload","distance":0.0954},{"site":"vercel-docs","path":"/docs/rest-api/vcr/complete-a-blob-upload","distance":0.0962},{"site":"vercel-docs","path":"/docs/rest-api/vcr/cancel-a-blob-upload","distance":0.1152},{"site":"vercel-docs","path":"/docs/rest-api/vcr/upload-a-blob-chunk","distance":0.1266},{"site":"vercel-docs","path":"/docs/rest-api/vcr/download-a-blob","distance":0.1423}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/start-a-blob-upload","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/complete-a-blob-upload","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/cancel-a-blob-upload","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/upload-a-blob-chunk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/download-a-blob","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-image-tags","title":"List image tags","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-tags","distance":0.0904},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-images","distance":0.1343},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository-tag","distance":0.1406},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository-image","distance":0.1831},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repositories","distance":0.201}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-tags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-images","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository-tag","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository-image","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repositories","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repositories","title":"List repositories","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository","distance":0.0988},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-permissions","distance":0.1039},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-images","distance":0.1069},{"site":"vercel-docs","path":"/docs/rest-api/vcr/create-a-repository","distance":0.1251},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-tags","distance":0.1486}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-permissions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-images","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/create-a-repository","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-tags","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-images","title":"List repository images","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository-image","distance":0.0815},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repositories","distance":0.1069},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-image-tags","distance":0.1343},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-permissions","distance":0.15},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-tags","distance":0.15}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository-image","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repositories","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-image-tags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-permissions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-tags","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-permissions","title":"List repository permissions","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/add-a-repository-permission","distance":0.0881},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repositories","distance":0.1039},{"site":"vercel-docs","path":"/docs/rest-api/vcr/remove-a-repository-permission","distance":0.1153},{"site":"vercel-docs","path":"/docs/rest-api/vcr/clear-all-repository-permissions","distance":0.123},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository","distance":0.1474}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/add-a-repository-permission","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repositories","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/remove-a-repository-permission","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/clear-all-repository-permissions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-tags","title":"List repository tags","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository-tag","distance":0.0801},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-image-tags","distance":0.0904},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repositories","distance":0.1486},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-images","distance":0.15},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-permissions","distance":0.1711}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository-tag","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-image-tags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repositories","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-images","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-permissions","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/vcr/pull-an-image-manifest","title":"Pull an image manifest","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/push-an-image-manifest","distance":0.0841},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-an-image-manifest","distance":0.1185},{"site":"vercel-docs","path":"/docs/rest-api/vcr/check-if-a-manifest-exists","distance":0.1569},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository-image","distance":0.2112},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-image-tags","distance":0.2466}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/push-an-image-manifest","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-an-image-manifest","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/check-if-a-manifest-exists","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository-image","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-image-tags","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/vcr/push-an-image-manifest","title":"Push an image manifest","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/pull-an-image-manifest","distance":0.0841},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-an-image-manifest","distance":0.1077},{"site":"vercel-docs","path":"/docs/rest-api/vcr/check-if-a-manifest-exists","distance":0.1741},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository-image","distance":0.2523},{"site":"vercel-docs","path":"/docs/rest-api/vcr/complete-a-blob-upload","distance":0.2783}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/pull-an-image-manifest","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-an-image-manifest","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/check-if-a-manifest-exists","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-a-repository-image","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/complete-a-blob-upload","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/vcr/remove-a-repository-permission","title":"Remove a repository permission","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/add-a-repository-permission","distance":0.0818},{"site":"vercel-docs","path":"/docs/rest-api/vcr/clear-all-repository-permissions","distance":0.0904},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-permissions","distance":0.1153},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-a-repository","distance":0.129},{"site":"vercel-docs","path":"/docs/rest-api/vcr/create-a-repository","distance":0.1729}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/add-a-repository-permission","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/clear-all-repository-permissions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/list-repository-permissions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/delete-a-repository","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/create-a-repository","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/vcr/start-a-blob-upload","title":"Start a blob upload","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/complete-a-blob-upload","distance":0.0846},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-blob-upload-status","distance":0.0954},{"site":"vercel-docs","path":"/docs/rest-api/vcr/upload-a-blob-chunk","distance":0.1117},{"site":"vercel-docs","path":"/docs/rest-api/vcr/cancel-a-blob-upload","distance":0.1144},{"site":"vercel-docs","path":"/docs/rest-api/vcr/download-a-blob","distance":0.1576}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/complete-a-blob-upload","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-blob-upload-status","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/upload-a-blob-chunk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/cancel-a-blob-upload","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/download-a-blob","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/vcr/upload-a-blob-chunk","title":"Upload a blob chunk","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/complete-a-blob-upload","distance":0.0971},{"site":"vercel-docs","path":"/docs/rest-api/vcr/start-a-blob-upload","distance":0.1117},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-blob-upload-status","distance":0.1266},{"site":"vercel-docs","path":"/docs/rest-api/vcr/cancel-a-blob-upload","distance":0.1387},{"site":"vercel-docs","path":"/docs/rest-api/vcr/download-a-blob","distance":0.1552}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/vcr/complete-a-blob-upload","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/start-a-blob-upload","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/get-blob-upload-status","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/cancel-a-blob-upload","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/download-a-blob","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/aggregates-custom-events","title":"Aggregates custom events","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/analytics/web-analytics-api"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/aggregates-page-views","distance":0.0585},{"site":"vercel-docs","path":"/docs/analytics/web-analytics-api","distance":0.2164},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-a-list-of-projects","distance":0.2172},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-events","distance":0.2178},{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team","distance":0.2301}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/aggregates-page-views","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/web-analytics-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-a-list-of-projects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-events","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/aggregates-page-views","title":"Aggregates page views","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/analytics/web-analytics-api"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/aggregates-custom-events","distance":0.0585},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-a-list-of-projects","distance":0.1824},{"site":"vercel-docs","path":"/docs/analytics/web-analytics-api","distance":0.2041},{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team","distance":0.2074},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/list-virtual-model-configs","distance":0.2089}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/aggregates-custom-events","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-a-list-of-projects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/web-analytics-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/integrations/get-configurations-for-the-authenticated-user-or-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/api-ai-gateway/list-virtual-model-configs","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/counts-custom-events","title":"Counts custom events","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/analytics/web-analytics-api"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/counts-page-views","distance":0.0536},{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/aggregates-custom-events","distance":0.2445},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-a-new-project","distance":0.2815},{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/aggregates-page-views","distance":0.292},{"site":"vercel-docs","path":"/docs/rest-api/user/list-user-events","distance":0.3008}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/counts-page-views","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/init","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/aggregates-custom-events","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-a-new-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/aggregates-page-views","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/user/list-user-events","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/counts-page-views","title":"Counts page views","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/analytics/web-analytics-api"},{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/counts-custom-events","distance":0.0536},{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/aggregates-page-views","distance":0.2432},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-a-new-project","distance":0.2672},{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/aggregates-custom-events","distance":0.2873},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-a-deployment-by-id-or-url","distance":0.3047}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/counts-custom-events","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/aggregates-page-views","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-a-new-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/aggregates-custom-events","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-a-deployment-by-id-or-url","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/creates-a-webhook","title":"Creates a webhook","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/webhooks/get-a-webhook","distance":0.063},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/get-a-list-of-webhooks","distance":0.1054},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/deletes-a-webhook","distance":0.1838},{"site":"vercel-docs","path":"/docs/webhooks","distance":0.1951},{"site":"vercel-docs","path":"/docs/cli/webhooks","distance":0.2264}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/webhooks/get-a-webhook","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/webhooks/create-webhook","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/get-a-list-of-webhooks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/deletes-a-webhook","via":"neighbor"},{"site":"vercel-docs","path":"/docs/webhooks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/webhooks","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/deletes-a-webhook","title":"Deletes a webhook","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/webhooks/get-a-webhook","distance":0.1825},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/creates-a-webhook","distance":0.1838},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/get-a-list-of-webhooks","distance":0.1954},{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-team","distance":0.2094},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/deletes-an-access-group","distance":0.2226}],"related":[{"site":"v0","path":"/docs/api/v2/reference/webhooks/delete-webhook","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/get-a-webhook","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/creates-a-webhook","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/get-a-list-of-webhooks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/deletes-an-access-group","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/get-a-list-of-webhooks","title":"Get a list of webhooks","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/webhooks/get-a-webhook","distance":0.054},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/creates-a-webhook","distance":0.1054},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/deletes-a-webhook","distance":0.1954},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-access-groups-for-a-team-project-or-member","distance":0.2247},{"site":"vercel-docs","path":"/docs/rest-api/teams/list-team-members","distance":0.2251}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/webhooks/get-a-webhook","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/creates-a-webhook","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/deletes-a-webhook","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-access-groups-for-a-team-project-or-member","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/list-team-members","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/get-a-webhook","title":"Get a webhook","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-v2-observability-query"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/webhooks/get-a-list-of-webhooks","distance":0.054},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/creates-a-webhook","distance":0.063},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/deletes-a-webhook","distance":0.1825},{"site":"vercel-docs","path":"/docs/webhooks","distance":0.2151},{"site":"vercel-docs","path":"/docs/cli/webhooks","distance":0.2353}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/webhooks/get-a-list-of-webhooks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/creates-a-webhook","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/webhooks/get-webhook","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/deletes-a-webhook","via":"neighbor"},{"site":"vercel-docs","path":"/docs/webhooks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/webhooks","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/rolling-releases","title":"Rolling Releases","summary":"Learn how to use Rolling Releases for more cautious deployments.","outbound":[{"site":"vercel-docs","path":"/docs/cli/promote"},{"site":"vercel-docs","path":"/docs/cli/rolling-release"},{"site":"vercel-docs","path":"/docs/instant-rollback"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"},{"site":"vercel-docs","path":"/docs/rest-api/projects/point-production-traffic-to-a-previous-production-deployment-by-id"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-rolling-release-billing-status"},{"site":"vercel-docs","path":"/docs/skew-protection"},{"site":"vercel-docs","path":"/docs/speed-insights"}],"inbound":[{"site":"vercel-docs","path":"/docs/audit-log"},{"site":"vercel-docs","path":"/docs/cli/rolling-release"},{"site":"vercel-docs","path":"/docs/deployment-checks"},{"site":"vercel-docs","path":"/docs/frameworks/backend"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel"},{"site":"vercel-docs","path":"/docs/rolling-releases/rolling-release-deployment"},{"site":"vercel-kb","path":"/kb/guide/blue_green_deployments_on_vercel"},{"site":"vercel-kb","path":"/kb/guide/connection-pooling-with-functions"},{"site":"vercel-kb","path":"/kb/guide/debug-routing-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-gradually-roll-out-new-versions-of-your-backend"},{"site":"vercel-kb","path":"/kb/guide/implementing_canary_deployments_on_vercel"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-render"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/rolling-release","distance":0.1344},{"site":"vercel-docs","path":"/docs/rolling-releases/rolling-release-deployment","distance":0.1487},{"site":"vercel-kb","path":"/kb/guide/how-to-gradually-roll-out-new-versions-of-your-backend","distance":0.1812},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/complete-the-rolling-release-for-the-project","distance":0.1842},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/start-a-rolling-release-for-the-project","distance":0.196}],"related":[{"site":"vercel-kb","path":"/kb/guide/blue_green_deployments_on_vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/connection-pooling-with-functions","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/debug-routing-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-gradually-roll-out-new-versions-of-your-backend","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/implementing_canary_deployments_on_vercel","via":"inbound"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/complete-the-rolling-release-for-the-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/rollback-production-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/audit-log","via":"inbound"},{"site":"vercel-docs","path":"/docs/deployment-checks","via":"inbound"},{"site":"vercel-docs","path":"/docs/frameworks/backend","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/rolling-releases/rolling-release-deployment","title":"Rolling Release Deployment","summary":"Gradually roll out a production deployment using traffic stages, monitoring, and automated abort.","outbound":[{"site":"vercel-docs","path":"/docs/cli/deploy"},{"site":"vercel-docs","path":"/docs/cli/logs"},{"site":"vercel-docs","path":"/docs/cli/project-linking"},{"site":"vercel-docs","path":"/docs/cli/rolling-release"},{"site":"vercel-docs","path":"/docs/deployments/rollback-production-deployment"},{"site":"vercel-docs","path":"/docs/rolling-releases"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/workflows"}],"requires":[{"site":"vercel-docs","path":"/docs/rolling-releases"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/rolling-release","distance":0.1221},{"site":"vercel-kb","path":"/kb/guide/how-to-gradually-roll-out-new-versions-of-your-backend","distance":0.1258},{"site":"vercel-docs","path":"/docs/rolling-releases","distance":0.1487},{"site":"vercel-docs","path":"/docs/deployments/rollback-production-deployment","distance":0.1585},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","distance":0.2045}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-gradually-roll-out-new-versions-of-your-backend","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/promote-preview-to-production","via":"neighbor"},{"site":"vercel-docs","path":"/docs/instant-rollback","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/rollback","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/routing","title":"Routing","summary":"Learn how Vercel's CDN routes requests through firewall, project routes, and deployment routes before reaching your application.","outbound":[{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/logs/runtime"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts"},{"site":"vercel-docs","path":"/docs/query/monitoring"},{"site":"vercel-docs","path":"/docs/routing/project-routing-rules"},{"site":"vercel-docs","path":"/docs/routing/redirects"},{"site":"vercel-docs","path":"/docs/routing/redirects/bulk-redirects"},{"site":"vercel-docs","path":"/docs/routing/redirects/configuration-redirects"},{"site":"vercel-docs","path":"/docs/routing/rewrites"}],"inbound":[{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/routing/project-routing-rules"},{"site":"vercel-docs","path":"/docs/services/routing"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/routing/project-routing-rules","distance":0.1179},{"site":"vercel-docs","path":"/docs/services/routing","distance":0.1749},{"site":"vercel-docs","path":"/docs/routing/redirects","distance":0.1917},{"site":"vercel-docs","path":"/docs/routing/redirects/configuration-redirects","distance":0.1924},{"site":"vercel-docs","path":"/docs/routing-middleware","distance":0.2026}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-reverse-proxy-rewrites-external","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","via":"neighbor"},{"site":"vercel-docs","path":"/docs/services/routing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing-middleware","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing-middleware/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/routes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/build-output-api/features","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/routing-middleware","title":"Routing Middleware","summary":"Learn how you can use Routing Middleware, code that executes before a request is processed on a site, to provide speed and personalization to your users.","outbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/functions/runtimes/bun"},{"site":"vercel-docs","path":"/docs/functions/runtimes/edge"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/observability/insights"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/routing-middleware/api"},{"site":"vercel-docs","path":"/docs/routing-middleware/getting-started"},{"site":"vercel-docs","path":"/docs/vercel-blob"}],"inbound":[{"site":"vercel-docs","path":"/docs/alerts"},{"site":"vercel-docs","path":"/docs/cli/dev"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/backend/elysia"},{"site":"vercel-docs","path":"/docs/frameworks/backend/hono"},{"site":"vercel-docs","path":"/docs/frameworks/backend/xmcp"},{"site":"vercel-docs","path":"/docs/frameworks/frontend"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/astro"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"},{"site":"vercel-docs","path":"/docs/functions/runtimes/bun"},{"site":"vercel-docs","path":"/docs/functions/runtimes/wasm"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/global-config/get-started"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/statsig-global-config"},{"site":"vercel-docs","path":"/docs/incremental-migration"},{"site":"vercel-docs","path":"/docs/logs/runtime"},{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-docs","path":"/docs/plans"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/quickstart"},{"site":"vercel-docs","path":"/docs/pricing/how-does-vercel-calculate-usage-of-resources"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts"},{"site":"vercel-docs","path":"/docs/routing-middleware/getting-started"},{"site":"vercel-docs","path":"/docs/routing/project-routing-rules"},{"site":"vercel-docs","path":"/docs/routing/redirects"},{"site":"vercel-docs","path":"/docs/services/bindings"},{"site":"vercel-docs","path":"/docs/skew-protection"},{"site":"vercel-kb","path":"/kb/guide/add-response-header"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-express-starter-template"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-fastapi-starter-template"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-flask-starter-template"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-hono-starter-template"},{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address"},{"site":"vercel-kb","path":"/kb/guide/ensuring-safe-and-effective-infrastructure-testing"},{"site":"vercel-kb","path":"/kb/guide/filter-query-parameters"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-increase-the-limit-of-redirects-or-use-dynamic-redirects-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-allowlist-deployment-ip-address"},{"site":"vercel-kb","path":"/kb/guide/how-to-enable-cors"},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime"},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-next.js-sitecore-jss"},{"site":"vercel-kb","path":"/kb/guide/library-sdk-compatible-with-vercel-edge-runtime-and-functions"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-netlify"},{"site":"vercel-kb","path":"/kb/guide/modify-request-headers"},{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute"},{"site":"vercel-kb","path":"/kb/guide/publish-and-subscribe-to-realtime-data-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/rendering-content-based-on-device"},{"site":"vercel-kb","path":"/kb/guide/serverless-functions-and-smtp"},{"site":"vercel-kb","path":"/kb/guide/ship-a-elysia-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-flask-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-h3-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-hono-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-koa-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nestjs-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/use-crypto-web-api"},{"site":"vercel-kb","path":"/kb/guide/using-xmcp-with-nextjs"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/routing-middleware/getting-started","distance":0.0852},{"site":"vercel-docs","path":"/docs/routing","distance":0.2026},{"site":"vercel-docs","path":"/docs/routing-middleware/api","distance":0.2239},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","distance":0.2656},{"site":"vercel-docs","path":"/docs/build-output-api/features","distance":0.2689}],"related":[{"site":"vercel-kb","path":"/kb/guide/add-response-header","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-express-starter-template","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-fastapi-starter-template","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-flask-starter-template","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-hono-starter-template","via":"inbound"},{"site":"vercel-docs","path":"/docs/routing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/build-output-api/features","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/react-router","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/routing","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/routing-middleware/api","title":"API","summary":"Learn how you can use Routing Middleware, code that executes before a request is processed on a site, to provide speed and personalization to your users.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-kb","path":"/kb/guide/use-crypto-web-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/astro"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/routing-middleware/getting-started"},{"site":"vercel-docs","path":"/docs/skew-protection"},{"site":"vercel-kb","path":"/kb/guide/add-response-header"},{"site":"vercel-kb","path":"/kb/guide/filter-query-parameters"},{"site":"vercel-kb","path":"/kb/guide/modify-request-headers"},{"site":"vercel-kb","path":"/kb/guide/rendering-content-based-on-device"},{"site":"vercel-kb","path":"/kb/guide/use-crypto-web-api"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-render"}],"requires":[{"site":"vercel-docs","path":"/docs/routing-middleware"}],"neighbors":[{"site":"vercel-docs","path":"/docs/routing-middleware/getting-started","distance":0.2217},{"site":"vercel-docs","path":"/docs/routing-middleware","distance":0.2239},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","distance":0.2524},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference","distance":0.264},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","distance":0.2776}],"related":[{"site":"vercel-kb","path":"/kb/guide/add-response-header","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/filter-query-parameters","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/modify-request-headers","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/rendering-content-based-on-device","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","via":"inbound"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing-middleware/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache","via":"neighbor"},{"site":"vercel-docs","path":"/docs/headers/request-headers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/routing-middleware/getting-started","title":"Getting Started","summary":"Learn how you can use Routing Middleware, code that executes before a request is processed on a site, to provide speed and personalization to your users.","outbound":[{"site":"vercel-docs","path":"/docs/functions/runtimes/bun"},{"site":"vercel-docs","path":"/docs/functions/runtimes/edge"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/routing-middleware/api"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/workflows"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/astro"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare"}],"requires":[{"site":"vercel-docs","path":"/docs/routing-middleware"}],"neighbors":[{"site":"vercel-docs","path":"/docs/routing-middleware","distance":0.0852},{"site":"vercel-docs","path":"/docs/routing","distance":0.204},{"site":"vercel-docs","path":"/docs/routing-middleware/api","distance":0.2217},{"site":"vercel-kb","path":"/kb/guide/modify-request-headers","distance":0.2574},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","distance":0.2721}],"related":[{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/modify-request-headers","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-netlify","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/add-response-header","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/project-routing-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/build-output-api/features","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/routing","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/routing/project-routing-rules","title":"Project Routing Rules","summary":"Add redirects, rewrites, headers, and status codes to your project from the dashboard or API, without deploying new code.","outbound":[{"site":"vercel-docs","path":"/docs/rest-api/project-routes/get-project-routing-rules"},{"site":"vercel-docs","path":"/docs/routing"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/routing/redirects/bulk-redirects"}],"inbound":[{"site":"vercel-docs","path":"/docs/routing"},{"site":"vercel-kb","path":"/kb/guide/vercel-reverse-proxy-rewrites-external"}],"requires":[{"site":"vercel-docs","path":"/docs/routing"}],"neighbors":[{"site":"vercel-docs","path":"/docs/routing","distance":0.1179},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/stage-routing-rules","distance":0.1763},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/get-project-routing-rules","distance":0.1843},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/add-a-routing-rule","distance":0.1858},{"site":"vercel-docs","path":"/docs/cli/routes","distance":0.186}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-reverse-proxy-rewrites-external","via":"inbound"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/stage-routing-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/add-a-routing-rule","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/routes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/routing-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/edit-a-routing-rule","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/routing/redirects","title":"Redirects","summary":"Learn how to use redirects on Vercel to instruct Vercel's platform to redirect incoming requests to a new URL.","outbound":[{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting"},{"site":"vercel-docs","path":"/docs/drains/using-drains"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/observability/insights"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/routing/redirects/bulk-redirects"},{"site":"vercel-docs","path":"/docs/routing/redirects/configuration-redirects"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples"}],"inbound":[{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/cli/dev"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting"},{"site":"vercel-docs","path":"/docs/fundamentals/builds"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works"},{"site":"vercel-docs","path":"/docs/logs/runtime"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts"},{"site":"vercel-docs","path":"/docs/routing"},{"site":"vercel-docs","path":"/docs/routing/redirects/configuration-redirects"},{"site":"vercel-docs","path":"/docs/routing/redirects/manage-redirects-at-scale"}],"requires":[{"site":"vercel-docs","path":"/docs/routing"}],"neighbors":[{"site":"vercel-docs","path":"/docs/routing/redirects/configuration-redirects","distance":0.1353},{"site":"vercel-kb","path":"/kb/guide/how-can-i-increase-the-limit-of-redirects-or-use-dynamic-redirects-on-vercel","distance":0.1617},{"site":"vercel-kb","path":"/kb/guide/dynamic-redirects-with-global-config-and-next-js-proxy","distance":0.1803},{"site":"vercel-docs","path":"/docs/routing","distance":0.1917},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-permanent-redirects","distance":0.2002}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-can-i-increase-the-limit-of-redirects-or-use-dynamic-redirects-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/dynamic-redirects-with-global-config-and-next-js-proxy","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-permanent-redirects","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/managing-redirects-from-your-cms-using-vercel-bulk-redirects","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/redirecting","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/incremental-migration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/rewrites","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn","via":"inbound"},{"site":"vercel-docs","path":"/docs/cli/dev","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/routing/redirects/bulk-redirects","title":"Bulk Redirects","summary":"Learn how to import thousands of simple redirects from CSV, JSON, or JSONL files.","outbound":[{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/routing/redirects/bulk-redirects/getting-started"}],"inbound":[{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts"},{"site":"vercel-docs","path":"/docs/routing"},{"site":"vercel-docs","path":"/docs/routing/project-routing-rules"},{"site":"vercel-docs","path":"/docs/routing/redirects"}],"requires":[{"site":"vercel-docs","path":"/docs/routing"},{"site":"vercel-docs","path":"/docs/routing/redirects"}],"neighbors":[{"site":"vercel-docs","path":"/docs/routing/redirects/bulk-redirects/getting-started","distance":0.0965},{"site":"vercel-docs","path":"/docs/routing/redirects/configuration-redirects","distance":0.1844},{"site":"vercel-docs","path":"/docs/routing/redirects/manage-redirects-at-scale","distance":0.1864},{"site":"vercel-docs","path":"/docs/routing/redirects","distance":0.206},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/delete-project-level-redirects","distance":0.2078}],"related":[{"site":"vercel-kb","path":"/kb/guide/managing-redirects-from-your-cms-using-vercel-bulk-redirects","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-increase-the-limit-of-redirects-or-use-dynamic-redirects-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/dynamic-redirects-with-global-config-and-next-js-proxy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects/configuration-redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects/manage-redirects-at-scale","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/delete-project-level-redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/gets-project-level-redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/redirects","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/routing/redirects/bulk-redirects/getting-started","title":"Getting Started","summary":"Learn how to import thousands of simple redirects from CSV, JSON, or JSONL files.","outbound":[{"site":"vercel-docs","path":"/docs/cli/redirects"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/gets-project-level-redirects"}],"inbound":[{"site":"vercel-docs","path":"/docs/routing/redirects/bulk-redirects"}],"requires":[{"site":"vercel-docs","path":"/docs/routing"},{"site":"vercel-docs","path":"/docs/routing/redirects"}],"neighbors":[{"site":"vercel-docs","path":"/docs/routing/redirects/bulk-redirects","distance":0.0965},{"site":"vercel-docs","path":"/docs/routing/redirects/manage-redirects-at-scale","distance":0.126},{"site":"vercel-docs","path":"/docs/cli/redirects","distance":0.1418},{"site":"vercel-kb","path":"/kb/guide/managing-redirects-from-your-cms-using-vercel-bulk-redirects","distance":0.1949},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/edit-a-project-level-redirect","distance":0.1965}],"related":[{"site":"vercel-kb","path":"/kb/guide/managing-redirects-from-your-cms-using-vercel-bulk-redirects","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-increase-the-limit-of-redirects-or-use-dynamic-redirects-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects/manage-redirects-at-scale","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/edit-a-project-level-redirect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/delete-project-level-redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects/configuration-redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/stages-new-redirects-for-a-project","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/routing/redirects/configuration-redirects","title":"Configuration Redirects","summary":"Learn how to define static redirects in your framework configuration or vercel.json with support for wildcards, pattern matching, and geolocation.","outbound":[{"site":"nextjs","path":"/docs/app/guides/redirecting"},{"site":"vercel-docs","path":"/docs/project-configuration"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/routing/redirects"}],"inbound":[{"site":"vercel-docs","path":"/docs/routing"},{"site":"vercel-docs","path":"/docs/routing/redirects"}],"requires":[{"site":"vercel-docs","path":"/docs/routing"},{"site":"vercel-docs","path":"/docs/routing/redirects"}],"neighbors":[{"site":"vercel-docs","path":"/docs/routing/redirects","distance":0.1353},{"site":"vercel-docs","path":"/docs/routing/redirects/bulk-redirects","distance":0.1844},{"site":"vercel-kb","path":"/kb/guide/how-can-i-increase-the-limit-of-redirects-or-use-dynamic-redirects-on-vercel","distance":0.1883},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-permanent-redirects","distance":0.1898},{"site":"vercel-docs","path":"/docs/routing","distance":0.1924}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-can-i-increase-the-limit-of-redirects-or-use-dynamic-redirects-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-permanent-redirects","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/dynamic-redirects-with-global-config-and-next-js-proxy","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-perform-vercel-redirects-based-on-query-strings","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-reverse-proxy-rewrites-external","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects/bulk-redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects/manage-redirects-at-scale","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects/bulk-redirects/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/routing/redirects/manage-redirects-at-scale","title":"Manage Redirects at Scale","summary":"Add, bulk upload, version, and roll back project-level redirects using the CLI.","outbound":[{"site":"vercel-docs","path":"/docs/cli/project-linking"},{"site":"vercel-docs","path":"/docs/cli/redirects"},{"site":"vercel-docs","path":"/docs/project-configuration"},{"site":"vercel-docs","path":"/docs/routing/redirects"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/workflows"}],"requires":[{"site":"vercel-docs","path":"/docs/routing"},{"site":"vercel-docs","path":"/docs/routing/redirects"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/redirects","distance":0.0801},{"site":"vercel-docs","path":"/docs/routing/redirects/bulk-redirects/getting-started","distance":0.126},{"site":"vercel-docs","path":"/docs/routing/redirects/bulk-redirects","distance":0.1864},{"site":"vercel-docs","path":"/docs/routing/redirects","distance":0.204},{"site":"vercel-kb","path":"/kb/guide/managing-redirects-from-your-cms-using-vercel-bulk-redirects","distance":0.2141}],"related":[{"site":"vercel-kb","path":"/kb/guide/managing-redirects-from-your-cms-using-vercel-bulk-redirects","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-increase-the-limit-of-redirects-or-use-dynamic-redirects-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/dynamic-redirects-with-global-config-and-next-js-proxy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects/bulk-redirects/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects/bulk-redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/edit-a-project-level-redirect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects/configuration-redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/delete-project-level-redirects","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/routing/rewrites","title":"Rewrites","summary":"Learn how to use rewrites to send users to different URLs without modifying the visible URL.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/rewrites"},{"site":"vercel-docs","path":"/docs/caching/cache-control-headers"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge"},{"site":"vercel-docs","path":"/docs/drains/using-drains"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/astro"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit"},{"site":"vercel-docs","path":"/docs/observability/insights"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/services"},{"site":"vercel-docs","path":"/docs/services/routing"}],"inbound":[{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/drains/reference/logs"},{"site":"vercel-docs","path":"/docs/fundamentals/builds"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works"},{"site":"vercel-docs","path":"/docs/incremental-migration"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/logs/runtime"},{"site":"vercel-docs","path":"/docs/microfrontends/routing"},{"site":"vercel-docs","path":"/docs/observability/insights"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts"},{"site":"vercel-docs","path":"/docs/routing"},{"site":"vercel-kb","path":"/kb/guide/how-to-enable-cors"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-cache-tags-for-external-origins"},{"site":"vercel-kb","path":"/kb/guide/vercel-reverse-proxy-rewrites-external"}],"requires":[{"site":"vercel-docs","path":"/docs/routing"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-reverse-proxy-rewrites-external","distance":0.1716},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/rewrites","distance":0.2021},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/rewrites","distance":0.2096},{"site":"vercel-docs","path":"/docs/routing","distance":0.2167},{"site":"vercel-docs","path":"/docs/routing/redirects","distance":0.229}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-enable-cors","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-cache-tags-for-external-origins","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-reverse-proxy-rewrites-external","via":"inbound"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/rewrites","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-increase-the-limit-of-redirects-or-use-dynamic-redirects-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects/configuration-redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/incremental-migration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/build-output-api/features","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/project-routing-rules","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/saml","title":"SAML SSO","summary":"Learn how to configure SAML SSO for your organization on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/directory-sync"},{"site":"vercel-docs","path":"/docs/rbac/access-roles/team-level-roles"},{"site":"vercel-docs","path":"/docs/rbac/managing-team-members"}],"inbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/audit-log"},{"site":"vercel-docs","path":"/docs/directory-sync"},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes"},{"site":"vercel-docs","path":"/docs/plans"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/production-checklist"},{"site":"vercel-docs","path":"/docs/security/enterprise-managed-users"},{"site":"vercel-docs","path":"/docs/security/enterprise-managed-users-account-update"},{"site":"vercel-docs","path":"/docs/security/shared-responsibility"},{"site":"vercel-kb","path":"/kb/guide/agent-approval-workflow-stack-guide"},{"site":"vercel-kb","path":"/kb/guide/is-vercel-soc-2-compliant"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/directory-sync","distance":0.1967},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel","distance":0.2563},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/manage-from-dashboard","distance":0.262},{"site":"vercel-docs","path":"/docs/security/access-control","distance":0.2633},{"site":"vercel-docs","path":"/docs/rbac/managing-team-members","distance":0.2682}],"related":[{"site":"vercel-kb","path":"/kb/guide/agent-approval-workflow-stack-guide","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/is-vercel-soc-2-compliant","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-passport","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/manage-from-dashboard","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/access-control","via":"neighbor"},{"site":"vercel-docs","path":"/docs/oidc","via":"neighbor"},{"site":"vercel-docs","path":"/docs/two-factor-enforcement","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/sandbox","title":"Sandbox","summary":"Vercel Sandbox allows you to run arbitrary code in isolated, ephemeral Linux VMs.","outbound":[{"site":"vercel-docs","path":"/docs/container-registry"},{"site":"vercel-docs","path":"/docs/sandbox/cli-reference"},{"site":"vercel-docs","path":"/docs/sandbox/concepts"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/authentication"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/drives"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/images"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/multi-agent"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/snapshots"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/tags"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem"},{"site":"vercel-docs","path":"/docs/sandbox/mount-remote-storage"},{"site":"vercel-docs","path":"/docs/sandbox/pricing"},{"site":"vercel-docs","path":"/docs/sandbox/python-sdk-reference"},{"site":"vercel-docs","path":"/docs/sandbox/quickstart"},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox"}],"inbound":[{"site":"eve","path":"/docs/concepts/security-model"},{"site":"eve","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/agent/pr-review"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/sandbox"},{"site":"vercel-docs","path":"/docs/eve"},{"site":"vercel-docs","path":"/docs/eve/concepts"},{"site":"vercel-docs","path":"/docs/observability/insights"},{"site":"vercel-docs","path":"/docs/products"},{"site":"vercel-docs","path":"/docs/projects/transferring-projects"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/anthropic-sdk"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/herdr"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/hermes"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/langchain"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/openai-sdk"},{"site":"vercel-docs","path":"/docs/sandbox/run-commands-in-sandbox"},{"site":"vercel-kb","path":"/kb/guide/devin-outposts-vercel-sandbox"},{"site":"vercel-kb","path":"/kb/guide/docker"},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot"},{"site":"vercel-kb","path":"/kb/guide/eve-typefully-social-media-agent"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-on-demand-voice-agent-with-vercel-sandbox"},{"site":"vercel-kb","path":"/kb/guide/how-to-run-a-multi-step-research-agent-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/marketing-team-eve"},{"site":"vercel-kb","path":"/kb/guide/python-ai-sdk-vercel-sandbox"},{"site":"vercel-kb","path":"/kb/guide/run-herdr-coding-agents-isolated-vercel-sandboxes"},{"site":"vercel-kb","path":"/kb/guide/sandboxed-coding-agent-with-harnessagent"},{"site":"vercel-kb","path":"/kb/guide/test-container-image-vercel-sandbox"},{"site":"vercel-kb","path":"/kb/guide/vercel-agent"},{"site":"vercel-kb","path":"/kb/guide/vercel-agent-code-review"},{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-vs-codesandbox"},{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-vs-e2b"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/sandbox/concepts","distance":0.0678},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","distance":0.0766},{"site":"vercel-docs","path":"/docs/sandbox/run-commands-in-sandbox","distance":0.1516},{"site":"vercel-docs","path":"/docs/sandbox/quickstart","distance":0.1533},{"site":"vercel-docs","path":"/docs/sandbox/concepts/runtimes","distance":0.172}],"related":[{"site":"eve","path":"/docs/concepts/security-model","via":"inbound"},{"site":"eve","path":"/docs/sandbox","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/devin-outposts-vercel-sandbox","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/docker","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/eve-typefully-social-media-agent","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-run-a-multi-step-research-agent-on-vercel","via":"inbound"},{"site":"vercel-docs","path":"/docs/cli/sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent/pr-review","via":"inbound"},{"site":"vercel-docs","path":"/docs/eve","via":"inbound"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"inbound"},{"site":"vercel-docs","path":"/docs/observability/insights","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/sandbox/cli-reference","title":"CLI Reference","summary":"Based on the Docker CLI, you can use the Sandbox CLI to manage your Vercel Sandbox from the command line.","outbound":[{"site":"vercel-docs","path":"/docs/project-configuration/general-settings"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/drives"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/images"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/snapshots"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/tags"},{"site":"vercel-docs","path":"/docs/sandbox/python-sdk-reference"},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-a-vercel-api-access-token"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/concepts"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/drives"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/snapshots"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/tags"},{"site":"vercel-docs","path":"/docs/sandbox/quickstart"},{"site":"vercel-docs","path":"/docs/sandbox/run-commands-in-sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox"},{"site":"vercel-kb","path":"/kb/guide/vercel-drives"}],"requires":[{"site":"vercel-docs","path":"/docs/sandbox"}],"neighbors":[{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes","distance":0.2339},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference","distance":0.2425},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","distance":0.2469},{"site":"vercel-docs","path":"/docs/sandbox/run-commands-in-sandbox","distance":0.2494},{"site":"vercel-docs","path":"/docs/sandbox/concepts/snapshots","distance":0.2535}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-drives","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-snapshots-for-faster-sandbox-startup","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reconnect-to-a-running-sandbox","via":"neighbor"},{"site":"eve","path":"/docs/sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-duration-and-persistence","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/test-container-image-vercel-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/fork-a-named-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/quickstart","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/sandbox/concepts","title":"Concepts","summary":"Learn how Vercel Sandboxes provide on-demand, isolated compute environments for running untrusted code, testing applications, and executing AI-generated scripts.","outbound":[{"site":"vercel-docs","path":"/docs/container-registry"},{"site":"vercel-docs","path":"/docs/sandbox/cli-reference"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/authentication"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/drives"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/firewall"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/images"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/snapshots"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/tags"},{"site":"vercel-docs","path":"/docs/sandbox/pricing"},{"site":"vercel-docs","path":"/docs/sandbox/python-sdk-reference"},{"site":"vercel-docs","path":"/docs/sandbox/quickstart"},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox"},{"site":"vercel-kb","path":"/kb/guide/how-to-install-system-packages-in-vercel-sandbox"}],"inbound":[{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/firewall"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/multi-agent"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/snapshots"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/hermes"}],"requires":[{"site":"vercel-docs","path":"/docs/sandbox"}],"neighbors":[{"site":"vercel-docs","path":"/docs/sandbox","distance":0.0678},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","distance":0.0784},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes","distance":0.1213},{"site":"vercel-docs","path":"/docs/sandbox/run-commands-in-sandbox","distance":0.1517},{"site":"vercel-docs","path":"/docs/sandbox/concepts/runtimes","distance":0.1635}],"related":[{"site":"vercel-kb","path":"/kb/guide/test-container-image-vercel-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-duration-and-persistence","via":"neighbor"},{"site":"v0","path":"/docs/sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-snapshots-for-faster-sandbox-startup","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/run-commands-in-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/sandbox","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/sandbox/concepts/authentication","title":"Authentication","summary":"Learn how to authenticate with Vercel Sandbox using OIDC tokens or access tokens.","outbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/project-configuration/general-settings"},{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/concepts"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/hermes"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/langchain"},{"site":"vercel-docs","path":"/docs/sandbox/python-sdk-reference"},{"site":"vercel-docs","path":"/docs/sandbox/quickstart"},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference"},{"site":"vercel-kb","path":"/kb/guide/python-ai-sdk-vercel-sandbox"},{"site":"vercel-kb","path":"/kb/guide/test-container-image-vercel-sandbox"}],"requires":[{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/concepts"}],"neighbors":[{"site":"vercel-docs","path":"/docs/sandbox","distance":0.221},{"site":"vercel-docs","path":"/docs/sandbox/quickstart","distance":0.2292},{"site":"vercel-kb","path":"/kb/guide/sandbox-private-github-repositories","distance":0.253},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/oidc","distance":0.255},{"site":"vercel-docs","path":"/docs/oidc","distance":0.2607}],"related":[{"site":"vercel-kb","path":"/kb/guide/python-ai-sdk-vercel-sandbox","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/test-container-image-vercel-sandbox","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/sandbox-private-github-repositories","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-vercel-sandbox-claude-agent-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/oidc","via":"neighbor"},{"site":"vercel-docs","path":"/docs/oidc","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/sandbox/concepts/drives","title":"Drives","summary":"Persistent storage that can be mounted into sandboxes and shared across runs.","outbound":[{"site":"vercel-docs","path":"/docs/sandbox/cli-reference"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/snapshots"},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference"}],"inbound":[{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/cli-reference"},{"site":"vercel-docs","path":"/docs/sandbox/concepts"},{"site":"vercel-docs","path":"/docs/sandbox/mount-remote-storage"},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference"},{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-duration-and-persistence"}],"requires":[{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/concepts"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-drives","distance":0.0697},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-drives","distance":0.2207},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-or-create-a-drive","distance":0.2503},{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-duration-and-persistence","distance":0.2586},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-drive","distance":0.26}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-drives","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-duration-and-persistence","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-snapshots-for-faster-sandbox-startup","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-drives","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-or-create-a-drive","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-drive","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/multi-agent","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/sandbox","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/sandbox/concepts/firewall","title":"Firewall","summary":"Define network policies on sandboxes, preventing data exfiltration.","outbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/project-configuration/general-settings"},{"site":"vercel-docs","path":"/docs/sandbox/concepts"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes"}],"inbound":[{"site":"eve","path":"/docs/concepts/security-model"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/sandbox/concepts"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/runtimes"},{"site":"vercel-docs","path":"/docs/sandbox/mount-remote-storage"},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference"},{"site":"vercel-kb","path":"/kb/guide/how-to-run-a-multi-step-research-agent-on-vercel"}],"requires":[{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/concepts"}],"neighbors":[{"site":"vercel-docs","path":"/docs/sandbox/concepts","distance":0.2038},{"site":"vercel-docs","path":"/docs/sandbox/concepts/runtimes","distance":0.2217},{"site":"vercel-docs","path":"/docs/sandbox","distance":0.2252},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","distance":0.2417},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/update-network-policy","distance":0.2494}],"related":[{"site":"eve","path":"/docs/concepts/security-model","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-run-a-multi-step-research-agent-on-vercel","via":"inbound"},{"site":"eve","path":"/docs/sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/running-opencode-securely-with-the-vercel-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/test-container-image-vercel-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/running-openclaw-in-vercel-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/update-network-policy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-named-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-sandbox","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/sandbox/concepts/images","title":"Images","summary":"Start sandboxes from custom OCI images stored in Vercel Container Registry to ship your own system packages, tooling, and filesystem layout.","outbound":[{"site":"vercel-docs","path":"/docs/container-registry"},{"site":"vercel-docs","path":"/docs/container-registry/getting-started"},{"site":"vercel-docs","path":"/docs/container-registry/public-and-shared-repositories"}],"inbound":[{"site":"vercel-docs","path":"/docs/container-registry"},{"site":"vercel-docs","path":"/docs/container-registry/getting-started"},{"site":"vercel-docs","path":"/docs/container-registry/public-and-shared-repositories"},{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/cli-reference"},{"site":"vercel-docs","path":"/docs/sandbox/concepts"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/runtimes"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/devin"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/hermes"},{"site":"vercel-docs","path":"/docs/sandbox/mount-remote-storage"},{"site":"vercel-docs","path":"/docs/sandbox/pricing"},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox"},{"site":"vercel-kb","path":"/kb/guide/docker"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-container-registry"},{"site":"vercel-kb","path":"/kb/guide/migrate-ghcr-to-vcr"},{"site":"vercel-kb","path":"/kb/guide/test-container-image-vercel-sandbox"}],"requires":[{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/concepts"}],"neighbors":[{"site":"vercel-docs","path":"/docs/sandbox","distance":0.1986},{"site":"vercel-docs","path":"/docs/sandbox/concepts","distance":0.2088},{"site":"vercel-docs","path":"/docs/container-registry","distance":0.2106},{"site":"vercel-kb","path":"/kb/guide/test-container-image-vercel-sandbox","distance":0.2142},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","distance":0.2149}],"related":[{"site":"vercel-kb","path":"/kb/guide/docker","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-container-registry","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/migrate-ghcr-to-vcr","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/test-container-image-vercel-sandbox","via":"inbound"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/runtimes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/multi-agent","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/sandbox/concepts/multi-agent","title":"Multi-Agent","summary":"Give each AI agent an isolated Linux user in a Vercel Sandbox with the @vercel/sandbox createUser, createGroup, and asUser methods, then share files between agents through groups.","outbound":[{"site":"vercel-docs","path":"/docs/sandbox/concepts"},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox"}],"inbound":[{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference"}],"requires":[{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/concepts"}],"neighbors":[{"site":"vercel-docs","path":"/docs/sandbox","distance":0.1829},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","distance":0.1861},{"site":"vercel-docs","path":"/docs/sandbox/concepts","distance":0.2125},{"site":"vercel-docs","path":"/docs/sandbox/run-commands-in-sandbox","distance":0.2222},{"site":"vercel-kb","path":"/kb/guide/building-an-agent-with-openai-agents-sdk-and-vercel-sandbox","distance":0.2246}],"related":[{"site":"vercel-kb","path":"/kb/guide/building-an-agent-with-openai-agents-sdk-and-vercel-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/running-ai-generated-code-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/run-herdr-coding-agents-isolated-vercel-sandboxes","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-vercel-sandbox-claude-agent-sdk","via":"neighbor"},{"site":"v0","path":"/docs/sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/running-opencode-securely-with-the-vercel-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes","title":"Persistence","summary":"Sandboxes automatically save their filesystem state when stopped and restore it when resumed. No manual snapshot management.","outbound":[{"site":"vercel-docs","path":"/docs/sandbox/cli-reference"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/authentication"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/snapshots"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/tags"},{"site":"vercel-docs","path":"/docs/sandbox/pricing"},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference"}],"inbound":[{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/concepts"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/drives"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/firewall"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/snapshots"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/tags"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/devin"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/herdr"},{"site":"vercel-docs","path":"/docs/sandbox/pricing"},{"site":"vercel-docs","path":"/docs/sandbox/quickstart"},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox"},{"site":"vercel-kb","path":"/kb/guide/vercel-drives"},{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-duration-and-persistence"}],"requires":[{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/concepts"}],"neighbors":[{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","distance":0.1174},{"site":"vercel-docs","path":"/docs/sandbox/concepts","distance":0.1213},{"site":"vercel-docs","path":"/docs/sandbox/concepts/snapshots","distance":0.1452},{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-duration-and-persistence","distance":0.1499},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference","distance":0.152}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-duration-and-persistence","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-drives","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-snapshots-for-faster-sandbox-startup","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reconnect-to-a-running-sandbox","via":"neighbor"},{"site":"v0","path":"/docs/sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-named-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/glossary","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/sandbox/concepts/runtimes","title":"Runtimes","summary":"Detailed specifications for the Vercel Sandbox environment.","outbound":[{"site":"vercel-docs","path":"/docs/sandbox/concepts/firewall"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/images"},{"site":"vercel-kb","path":"/kb/guide/how-to-install-system-packages-in-vercel-sandbox"}],"inbound":[{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/devin"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/hermes"},{"site":"vercel-docs","path":"/docs/sandbox/mount-remote-storage"},{"site":"vercel-kb","path":"/kb/guide/docker"}],"requires":[{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/concepts"}],"neighbors":[{"site":"vercel-docs","path":"/docs/sandbox/concepts","distance":0.1635},{"site":"vercel-docs","path":"/docs/sandbox","distance":0.172},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","distance":0.2025},{"site":"vercel-docs","path":"/docs/sandbox/concepts/firewall","distance":0.2217},{"site":"vercel-docs","path":"/docs/sandbox/run-commands-in-sandbox","distance":0.2328}],"related":[{"site":"vercel-kb","path":"/kb/guide/docker","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/test-container-image-vercel-sandbox","via":"neighbor"},{"site":"eve","path":"/docs/sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/run-commands-in-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/sandbox","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/sandbox/concepts/snapshots","title":"Snapshots","summary":"Save and restore sandbox state with snapshots for faster startups and environment sharing.","outbound":[{"site":"vercel-docs","path":"/docs/sandbox/cli-reference"},{"site":"vercel-docs","path":"/docs/sandbox/concepts"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes"},{"site":"vercel-docs","path":"/docs/sandbox/pricing"},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference"}],"inbound":[{"site":"vercel-docs","path":"/docs/projects/transferring-projects"},{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/cli-reference"},{"site":"vercel-docs","path":"/docs/sandbox/concepts"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/drives"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes"},{"site":"vercel-docs","path":"/docs/sandbox/pricing"},{"site":"vercel-docs","path":"/docs/sandbox/quickstart"},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox"},{"site":"vercel-kb","path":"/kb/guide/vercel-drives"},{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-duration-and-persistence"}],"requires":[{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/concepts"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-use-snapshots-for-faster-sandbox-startup","distance":0.1174},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes","distance":0.1452},{"site":"vercel-docs","path":"/docs/sandbox/concepts","distance":0.2099},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","distance":0.2114},{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-duration-and-persistence","distance":0.2178}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-use-snapshots-for-faster-sandbox-startup","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-drives","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-duration-and-persistence","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-reconnect-to-a-running-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/create-a-snapshot","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-snapshots","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-snapshot","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/sandbox/concepts/tags","title":"Tags","summary":"Categorize sandboxes by environment, team, or any other criteria using key-value tags.","outbound":[{"site":"vercel-docs","path":"/docs/sandbox/cli-reference"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes"},{"site":"vercel-docs","path":"/docs/sandbox/python-sdk-reference"},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference"}],"inbound":[{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/cli-reference"},{"site":"vercel-docs","path":"/docs/sandbox/concepts"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes"},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference"}],"requires":[{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/concepts"}],"neighbors":[{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes","distance":0.2444},{"site":"vercel-docs","path":"/docs/sandbox/concepts","distance":0.2541},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","distance":0.2566},{"site":"vercel-docs","path":"/docs/sandbox","distance":0.2658},{"site":"vercel-docs","path":"/docs/sandbox/run-commands-in-sandbox","distance":0.2856}],"related":[{"site":"v0","path":"/docs/sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/run-commands-in-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-sandboxes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-sandbox","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem","title":"Ecosystem","summary":"Use Vercel Sandbox with the agent frameworks, model SDKs, and coding agents you already work with.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/anthropic-sdk"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/devin"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/herdr"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/hermes"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/langchain"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/openai-sdk"},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox"}],"inbound":[{"site":"vercel-docs","path":"/docs/sandbox"}],"requires":[{"site":"vercel-docs","path":"/docs/sandbox"}],"neighbors":[{"site":"vercel-docs","path":"/docs/sandbox","distance":0.1868},{"site":"vercel-kb","path":"/kb/guide/building-an-agent-with-openai-agents-sdk-and-vercel-sandbox","distance":0.1996},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/anthropic-sdk","distance":0.2278},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/openai-sdk","distance":0.2354},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/langchain","distance":0.2409}],"related":[{"site":"vercel-kb","path":"/kb/guide/building-an-agent-with-openai-agents-sdk-and-vercel-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-vercel-sandbox-claude-agent-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/run-herdr-coding-agents-isolated-vercel-sandboxes","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-an-agent-with-vercel-and-flue","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/multi-agent","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/quickstart","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/anthropic-sdk","title":"Anthropic SDK","summary":"Use Anthropic tool use with AI Gateway to execute model-generated code in an isolated Vercel Sandbox.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference"}],"inbound":[{"site":"vercel-docs","path":"/docs/sandbox/ecosystem"}],"requires":[{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem"}],"neighbors":[{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/openai-sdk","distance":0.1186},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/langchain","distance":0.1805},{"site":"vercel-kb","path":"/kb/guide/how-to-execute-ai-generated-code-safely","distance":0.1822},{"site":"vercel-kb","path":"/kb/guide/using-vercel-sandbox-claude-agent-sdk","distance":0.1867},{"site":"vercel-kb","path":"/kb/guide/running-ai-generated-code-sandbox","distance":0.1905}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-execute-ai-generated-code-safely","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-vercel-sandbox-claude-agent-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/running-ai-generated-code-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/python-ai-sdk-vercel-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/openai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/examples/oss-coding-agent","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/devin","title":"Devin","summary":"Run Devin Outposts sessions in isolated Vercel Sandbox microVMs, with the control plane deployed on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/images"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/runtimes"},{"site":"vercel-kb","path":"/kb/guide/devin-outposts-vercel-sandbox"}],"inbound":[{"site":"vercel-docs","path":"/docs/sandbox/ecosystem"}],"requires":[{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/devin-outposts-vercel-sandbox","distance":0.1013},{"site":"vercel-docs","path":"/docs/sandbox/quickstart","distance":0.2497},{"site":"vercel-docs","path":"/docs/sandbox","distance":0.2569},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","distance":0.2616},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem","distance":0.2936}],"related":[{"site":"vercel-kb","path":"/kb/guide/using-vercel-sandbox-claude-agent-sdk","via":"neighbor"},{"site":"v0","path":"/docs/sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-duration-and-persistence","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/run-herdr-coding-agents-isolated-vercel-sandboxes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/herdr","title":"Herdr","summary":"Run terminal-based coding agents in persistent Vercel Sandbox microVMs from Herdr. Review and apply their changes locally as Git patches.","outbound":[{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes"},{"site":"vercel-docs","path":"/docs/sandbox/pricing"},{"site":"vercel-kb","path":"/kb/guide/run-herdr-coding-agents-isolated-vercel-sandboxes"}],"inbound":[{"site":"vercel-docs","path":"/docs/sandbox/ecosystem"}],"requires":[{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/run-herdr-coding-agents-isolated-vercel-sandboxes","distance":0.0799},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/hermes","distance":0.2188},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","distance":0.2629},{"site":"vercel-docs","path":"/docs/sandbox","distance":0.274},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem","distance":0.2861}],"related":[{"site":"vercel-kb","path":"/kb/guide/using-vercel-sandbox-claude-agent-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-an-agent-with-openai-agents-sdk-and-vercel-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-an-agent-with-vercel-and-flue","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/hermes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/multi-agent","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/hermes","title":"Hermes","summary":"Run Hermes Agent terminal commands in isolated Vercel Sandbox microVMs, with models served through Vercel AI Gateway.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/hermes"},{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/concepts"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/authentication"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/images"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/runtimes"},{"site":"vercel-docs","path":"/docs/sandbox/pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/sandbox/ecosystem"}],"requires":[{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/hermes","distance":0.1767},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/herdr","distance":0.2188},{"site":"vercel-kb","path":"/kb/guide/run-herdr-coding-agents-isolated-vercel-sandboxes","distance":0.2232},{"site":"vercel-docs","path":"/docs/sandbox","distance":0.2688},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","distance":0.2903}],"related":[{"site":"vercel-kb","path":"/kb/guide/run-herdr-coding-agents-isolated-vercel-sandboxes","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-vercel-sandbox-claude-agent-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-an-agent-with-vercel-and-flue","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-an-agent-with-openai-agents-sdk-and-vercel-sandbox","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/herdr","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/quickstart","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/langchain","title":"LangChain","summary":"Give a LangChain agent a tool that executes model-generated code in an isolated Vercel Sandbox, with models served by AI Gateway.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"},{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/authentication"},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference"}],"inbound":[{"site":"vercel-docs","path":"/docs/sandbox/ecosystem"}],"requires":[{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/langchain","distance":0.1448},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/anthropic-sdk","distance":0.1805},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/openai-sdk","distance":0.2044},{"site":"vercel-kb","path":"/kb/guide/python-ai-sdk-vercel-sandbox","distance":0.2244},{"site":"vercel-kb","path":"/kb/guide/building-an-agent-with-openai-agents-sdk-and-vercel-sandbox","distance":0.2281}],"related":[{"site":"vercel-kb","path":"/kb/guide/python-ai-sdk-vercel-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-an-agent-with-openai-agents-sdk-and-vercel-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/running-ai-generated-code-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-execute-ai-generated-code-safely","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/nextjs-langchain-vercel-ai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/langchain","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/openai-sdk","title":"OpenAI SDK","summary":"Use OpenAI function calling with AI Gateway to execute model-generated code in an isolated Vercel Sandbox.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference"}],"inbound":[{"site":"vercel-docs","path":"/docs/sandbox/ecosystem"}],"requires":[{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem"}],"neighbors":[{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/anthropic-sdk","distance":0.1186},{"site":"vercel-kb","path":"/kb/guide/how-to-execute-ai-generated-code-safely","distance":0.1602},{"site":"vercel-kb","path":"/kb/guide/running-ai-generated-code-sandbox","distance":0.1673},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/langchain","distance":0.2044},{"site":"vercel-kb","path":"/kb/guide/python-ai-sdk-vercel-sandbox","distance":0.2066}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-execute-ai-generated-code-safely","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/running-ai-generated-code-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/python-ai-sdk-vercel-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/running-opencode-securely-with-the-vercel-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-vercel-sandbox-claude-agent-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/anthropic-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/examples/oss-coding-agent","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/sandbox/mount-remote-storage","title":"Mount Remote Storage","summary":"Mount an external object store such as Amazon S3 into a Vercel Sandbox with a FUSE driver, so code reads and writes remote files through the local filesystem.","outbound":[{"site":"vercel-docs","path":"/docs/sandbox/concepts/drives"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/firewall"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/images"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/runtimes"}],"inbound":[{"site":"vercel-docs","path":"/docs/sandbox"}],"requires":[{"site":"vercel-docs","path":"/docs/sandbox"}],"neighbors":[{"site":"vercel-docs","path":"/docs/sandbox/concepts/drives","distance":0.2893},{"site":"vercel-kb","path":"/kb/guide/vercel-drives","distance":0.3239},{"site":"vercel-docs","path":"/docs/sandbox","distance":0.3424},{"site":"vercel-docs","path":"/docs/sandbox/concepts/runtimes","distance":0.3448},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","distance":0.3535}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-drives","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-install-system-packages-in-vercel-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/sandbox-private-github-repositories","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/storage","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/sandbox/pricing","title":"Pricing and Quotas","summary":"Understand how Vercel Sandbox billing works, what's included in each plan, and the limits that apply.","outbound":[{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/notifications"},{"site":"vercel-docs","path":"/docs/plans/hobby"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/images"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/snapshots"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox"},{"site":"vercel-docs","path":"/docs/spend-management"}],"inbound":[{"site":"vercel-docs","path":"/docs/eve/pricing"},{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/concepts"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/snapshots"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/herdr"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/hermes"},{"site":"vercel-docs","path":"/docs/sandbox/quickstart"},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox"},{"site":"vercel-kb","path":"/kb/guide/devin-outposts-vercel-sandbox"},{"site":"vercel-kb","path":"/kb/guide/python-ai-sdk-vercel-sandbox"},{"site":"vercel-kb","path":"/kb/guide/run-herdr-coding-agents-isolated-vercel-sandboxes"},{"site":"vercel-kb","path":"/kb/guide/test-container-image-vercel-sandbox"},{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-duration-and-persistence"}],"requires":[{"site":"vercel-docs","path":"/docs/sandbox"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-duration-and-persistence","distance":0.2003},{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-vs-codesandbox","distance":0.2258},{"site":"vercel-docs","path":"/docs/pricing","distance":0.2288},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","distance":0.2387},{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-vs-e2b","distance":0.2399}],"related":[{"site":"vercel-kb","path":"/kb/guide/devin-outposts-vercel-sandbox","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/python-ai-sdk-vercel-sandbox","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/run-herdr-coding-agents-isolated-vercel-sandboxes","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/test-container-image-vercel-sandbox","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-duration-and-persistence","via":"inbound"},{"site":"vercel-docs","path":"/docs/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/sandbox/python-sdk-reference","title":"Python SDK Reference","summary":"Reference for the Vercel Sandbox Python SDK, including sync and async APIs for managing sandboxes, commands, snapshots, and network policy.","outbound":[{"site":"vercel-docs","path":"/docs/sandbox/concepts/authentication"},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference"}],"inbound":[{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/cli-reference"},{"site":"vercel-docs","path":"/docs/sandbox/concepts"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/tags"},{"site":"vercel-docs","path":"/docs/sandbox/quickstart"},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference"}],"requires":[{"site":"vercel-docs","path":"/docs/sandbox"}],"neighbors":[{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","distance":0.2428},{"site":"vercel-docs","path":"/docs/sandbox/run-commands-in-sandbox","distance":0.2434},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference","distance":0.257},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes","distance":0.2585},{"site":"vercel-docs","path":"/docs/sandbox/cli-reference","distance":0.2661}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-use-snapshots-for-faster-sandbox-startup","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reconnect-to-a-running-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/run-commands-in-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/cli-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/sandbox","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/sandbox/quickstart","title":"Quickstart","summary":"Learn how to run your first code in a Vercel Sandbox.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/sandbox/cli-reference"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/authentication"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/snapshots"},{"site":"vercel-docs","path":"/docs/sandbox/pricing"},{"site":"vercel-docs","path":"/docs/sandbox/python-sdk-reference"},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/concepts"}],"requires":[{"site":"vercel-docs","path":"/docs/sandbox"}],"neighbors":[{"site":"vercel-docs","path":"/docs/sandbox/run-commands-in-sandbox","distance":0.1529},{"site":"vercel-docs","path":"/docs/sandbox","distance":0.1533},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","distance":0.1584},{"site":"vercel-docs","path":"/docs/cli/sandbox","distance":0.1722},{"site":"vercel-docs","path":"/docs/sandbox/concepts","distance":0.1925}],"related":[{"site":"vercel-kb","path":"/kb/guide/using-vercel-sandbox-claude-agent-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/sandbox-private-github-repositories","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/running-ai-generated-code-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/run-commands-in-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/openai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/sandbox/run-commands-in-sandbox","title":"Run Commands in Vercel Sandbox","summary":"Create isolated sandbox environments to run builds, tests, and commands safely.","outbound":[{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/cli-reference"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/workflows"}],"requires":[{"site":"vercel-docs","path":"/docs/sandbox"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/sandbox","distance":0.1017},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","distance":0.107},{"site":"vercel-docs","path":"/docs/sandbox","distance":0.1516},{"site":"vercel-docs","path":"/docs/sandbox/concepts","distance":0.1517},{"site":"vercel-docs","path":"/docs/sandbox/quickstart","distance":0.1529}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-use-snapshots-for-faster-sandbox-startup","via":"neighbor"},{"site":"v0","path":"/docs/sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-vercel-sandbox-claude-agent-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reconnect-to-a-running-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/sandbox-private-github-repositories","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/test-container-image-vercel-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/multi-agent","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference","title":"JS SDK Reference","summary":"A comprehensive reference for the Vercel Sandbox JavaScript SDK, which lets you run code in a secure, isolated environment.","outbound":[{"site":"vercel-docs","path":"/docs/container-registry/getting-started"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/authentication"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/drives"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/firewall"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/images"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/multi-agent"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/snapshots"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/tags"},{"site":"vercel-docs","path":"/docs/sandbox/pricing"},{"site":"vercel-docs","path":"/docs/sandbox/python-sdk-reference"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox"},{"site":"vercel-kb","path":"/kb/guide/how-to-install-system-packages-in-vercel-sandbox"}],"inbound":[{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/cli-reference"},{"site":"vercel-docs","path":"/docs/sandbox/concepts"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/drives"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/multi-agent"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/snapshots"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/tags"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/anthropic-sdk"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/langchain"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/openai-sdk"},{"site":"vercel-docs","path":"/docs/sandbox/python-sdk-reference"},{"site":"vercel-docs","path":"/docs/sandbox/quickstart"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox"},{"site":"vercel-kb","path":"/kb/guide/test-container-image-vercel-sandbox"},{"site":"vercel-kb","path":"/kb/guide/user-uploaded-files-vercel-sandbox-and-blob"},{"site":"vercel-kb","path":"/kb/guide/vercel-drives"},{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-duration-and-persistence"}],"requires":[{"site":"vercel-docs","path":"/docs/sandbox"}],"neighbors":[{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes","distance":0.152},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","distance":0.2136},{"site":"vercel-kb","path":"/kb/guide/how-to-reconnect-to-a-running-sandbox","distance":0.2298},{"site":"vercel-docs","path":"/docs/sandbox/concepts","distance":0.2394},{"site":"vercel-docs","path":"/docs/sandbox/cli-reference","distance":0.2425}],"related":[{"site":"vercel-kb","path":"/kb/guide/test-container-image-vercel-sandbox","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/user-uploaded-files-vercel-sandbox-and-blob","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-drives","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-duration-and-persistence","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-reconnect-to-a-running-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/create-a-named-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/update-a-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-a-named-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/fork-a-named-sandbox","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","title":"Examples","summary":"Task-oriented examples for common Vercel Sandbox operations in TypeScript and Python.","outbound":[{"site":"vercel-docs","path":"/docs/sandbox/cli-reference"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/images"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/snapshots"},{"site":"vercel-docs","path":"/docs/sandbox/pricing"},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference"},{"site":"vercel-kb","path":"/kb/guide/how-to-execute-ai-generated-code-safely"},{"site":"vercel-kb","path":"/kb/guide/how-to-reconnect-to-a-running-sandbox"},{"site":"vercel-kb","path":"/kb/guide/running-ai-generated-code-sandbox"},{"site":"vercel-kb","path":"/kb/guide/running-openclaw-in-vercel-sandbox"},{"site":"vercel-kb","path":"/kb/guide/running-opencode-securely-with-the-vercel-sandbox"},{"site":"vercel-kb","path":"/kb/guide/sandbox-private-github-repositories"},{"site":"vercel-kb","path":"/kb/guide/using-vercel-sandbox-claude-agent-sdk"}],"inbound":[{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/concepts"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/multi-agent"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem"},{"site":"vercel-docs","path":"/docs/sandbox/pricing"},{"site":"vercel-docs","path":"/docs/sandbox/quickstart"},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference"}],"requires":[{"site":"vercel-docs","path":"/docs/sandbox"}],"neighbors":[{"site":"vercel-docs","path":"/docs/sandbox","distance":0.0766},{"site":"vercel-docs","path":"/docs/sandbox/concepts","distance":0.0784},{"site":"vercel-docs","path":"/docs/sandbox/run-commands-in-sandbox","distance":0.107},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes","distance":0.1174},{"site":"vercel-docs","path":"/docs/cli/sandbox","distance":0.1488}],"related":[{"site":"v0","path":"/docs/sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/test-container-image-vercel-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-duration-and-persistence","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-snapshots-for-faster-sandbox-startup","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/run-commands-in-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/multi-agent","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/security","title":"Overview","summary":"Vercel provides built-in and customizable features to ensure that your site is secure.","outbound":[{"site":"vercel-docs","path":"/docs/cdn-security/encryption"},{"site":"vercel-docs","path":"/docs/security/access-control"},{"site":"vercel-docs","path":"/docs/security/compliance"},{"site":"vercel-docs","path":"/docs/security/shared-responsibility"},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-concepts"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-observability"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli/security"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/security/security-dashboard"},{"site":"vercel-docs","path":"/docs/security/shared-responsibility"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features"},{"site":"vercel-kb","path":"/kb/guide/is-vercel-certified-under-dpf"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-firewall","distance":0.1363},{"site":"vercel-docs","path":"/docs/cdn-security","distance":0.1657},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/security","distance":0.1749},{"site":"vercel-docs","path":"/docs/security/shared-responsibility","distance":0.1875},{"site":"vercel-docs","path":"/docs/project-configuration/security-settings","distance":0.1928}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/is-vercel-certified-under-dpf","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ensuring-safe-and-effective-infrastructure-testing","via":"neighbor"},{"site":"v0","path":"/docs/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/security-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/security","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/security/access-control","title":"Access Control","summary":"Learn about the protection and compliance measures Vercel takes to ensure the security of your data, including DDoS mitigation, SOC 2 compliance and more.","outbound":[{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/password-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication"},{"site":"vercel-docs","path":"/docs/deployments/environments"}],"inbound":[{"site":"vercel-docs","path":"/docs/security"}],"requires":[{"site":"vercel-docs","path":"/docs/security"}],"neighbors":[{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication","distance":0.1554},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments","distance":0.1598},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/password-protection","distance":0.1744},{"site":"vercel-docs","path":"/docs/deployment-protection","distance":0.1818},{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","distance":0.1891}],"related":[{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-password-protection-to-my-vercel-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/security-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/passport","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rbac","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/security/compliance","title":"Security & Compliance Measures","summary":"Learn about the protection and compliance measures Vercel takes to ensure the security of your data, including DDoS mitigation and SOC 2 compliance.","outbound":[{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"},{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/security/pci-dss"},{"site":"vercel-docs","path":"/docs/security/shared-responsibility"},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation"}],"inbound":[{"site":"v0","path":"/docs/compare/v0-vs-base44"},{"site":"v0","path":"/docs/compare/v0-vs-bolt"},{"site":"v0","path":"/docs/compare/v0-vs-figma-make"},{"site":"v0","path":"/docs/compare/v0-vs-replit"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/products"},{"site":"vercel-docs","path":"/docs/security"},{"site":"vercel-kb","path":"/kb/guide/application-authentication-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address"},{"site":"vercel-kb","path":"/kb/guide/hipaa-compliance-guide-vercel"},{"site":"vercel-kb","path":"/kb/guide/is-vercel-soc-2-compliant"}],"requires":[{"site":"vercel-docs","path":"/docs/security"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/ensuring-safe-and-effective-infrastructure-testing","distance":0.1771},{"site":"vercel-docs","path":"/docs/security/shared-responsibility","distance":0.1801},{"site":"vercel-docs","path":"/docs/security","distance":0.2026},{"site":"vercel-kb","path":"/kb/guide/is-vercel-soc-2-compliant","distance":0.2133},{"site":"vercel-kb","path":"/kb/guide/hipaa-compliance-guide-vercel","distance":0.2163}],"related":[{"site":"v0","path":"/docs/compare/v0-vs-base44","via":"inbound"},{"site":"v0","path":"/docs/compare/v0-vs-bolt","via":"inbound"},{"site":"v0","path":"/docs/compare/v0-vs-figma-make","via":"inbound"},{"site":"v0","path":"/docs/compare/v0-vs-replit","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/application-authentication-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/hipaa-compliance-guide-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/is-vercel-soc-2-compliant","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ensuring-safe-and-effective-infrastructure-testing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security/encryption","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/security/enterprise-managed-users","title":"Enterprise Managed Users","summary":"Enterprise Managed Users \\(EMU\\) lets your Vercel team manage the sign-in identity of every member. Members sign in through your SAML SSO provider using a managed account, a Vercel account that is owned and controlled by your team.","outbound":[{"site":"vercel-docs","path":"/docs/directory-sync"},{"site":"vercel-docs","path":"/docs/projects/transferring-projects"},{"site":"vercel-docs","path":"/docs/saml"},{"site":"vercel-docs","path":"/docs/security/enterprise-managed-users-account-update"}],"inbound":[{"site":"vercel-docs","path":"/docs/security/enterprise-managed-users-account-update"}],"requires":[{"site":"vercel-docs","path":"/docs/security"}],"neighbors":[{"site":"vercel-docs","path":"/docs/security/enterprise-managed-users-account-update","distance":0.1098},{"site":"vercel-docs","path":"/docs/accounts","distance":0.2816},{"site":"vercel-docs","path":"/docs/directory-sync","distance":0.3306},{"site":"v0","path":"/docs/enterprise","distance":0.3374},{"site":"vercel-docs","path":"/docs/saml","distance":0.3512}],"related":[{"site":"v0","path":"/docs/enterprise","via":"neighbor"},{"site":"v0","path":"/docs/teams","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-ownership-of-a-vercel-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/accounts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rbac/managing-team-members","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rbac/access-groups","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans/pro-plan","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/security/enterprise-managed-users-account-update","title":"Hobby team transition","summary":"Explains the account update screen EMU members see at SSO sign-in and how to complete it.","outbound":[{"site":"vercel-docs","path":"/docs/directory-sync"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/saml"},{"site":"vercel-docs","path":"/docs/security/enterprise-managed-users"}],"inbound":[{"site":"vercel-docs","path":"/docs/security/enterprise-managed-users"}],"requires":[{"site":"vercel-docs","path":"/docs/security"}],"neighbors":[{"site":"vercel-docs","path":"/docs/security/enterprise-managed-users","distance":0.1098},{"site":"vercel-docs","path":"/docs/accounts","distance":0.221},{"site":"v0","path":"/docs/teams","distance":0.2956},{"site":"vercel-docs","path":"/docs/projects/transferring-projects","distance":0.2965},{"site":"v0","path":"/docs/enterprise","distance":0.3027}],"related":[{"site":"v0","path":"/docs/teams","via":"neighbor"},{"site":"v0","path":"/docs/enterprise","via":"neighbor"},{"site":"v0","path":"/docs/account","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-ownership-of-a-vercel-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/accounts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/transferring-projects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config/global-config-dashboard","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/manage-from-dashboard","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rbac/managing-team-members","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/security/pci-dss","title":"PCI DSS iframe Integration","summary":"Learn how to integrate an iframe into your application to support PCI DSS compliance.","outbound":[{"site":"vercel-docs","path":"/docs/security/shared-responsibility"}],"inbound":[{"site":"vercel-docs","path":"/docs/security/compliance"},{"site":"vercel-docs","path":"/docs/security/shared-responsibility"},{"site":"vercel-kb","path":"/kb/guide/is-vercel-pci-compliant"}],"requires":[{"site":"vercel-docs","path":"/docs/security"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/is-vercel-pci-compliant","distance":0.2628},{"site":"vercel-kb","path":"/kb/guide/how-to-conduct-pci-scans-on-vercel-guide","distance":0.3268},{"site":"vercel-docs","path":"/docs/integrations/ecommerce","distance":0.3504},{"site":"vercel-docs","path":"/docs/integrations/ecommerce/stripe","distance":0.3538},{"site":"vercel-docs","path":"/docs/cdn-security","distance":0.3621}],"related":[{"site":"vercel-kb","path":"/kb/guide/is-vercel-pci-compliant","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-conduct-pci-scans-on-vercel-guide","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ensuring-safe-and-effective-infrastructure-testing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/ecommerce","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/ecommerce/stripe","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security/security-headers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/security/reverse-proxy","title":"Reverse Proxy Servers and Vercel","summary":"Learn why reverse proxy servers are not recommended with Vercel's firewall.","outbound":[{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-kb","path":"/kb/guide/vercel-reverse-proxy-rewrites-external"}],"inbound":[{"site":"vercel-docs","path":"/docs/bot-management"},{"site":"vercel-docs","path":"/docs/production-checklist"},{"site":"vercel-kb","path":"/kb/guide/accessing-vercel-hosted-sites-from-mainland-china"},{"site":"vercel-kb","path":"/kb/guide/domain-not-generating-ssl-certificate"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features"}],"requires":[{"site":"vercel-docs","path":"/docs/security"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/cloudflare-with-vercel","distance":0.1594},{"site":"vercel-kb","path":"/kb/guide/how-to-setup-verified-proxy","distance":0.1881},{"site":"vercel-kb","path":"/kb/guide/can-i-use-a-proxy-on-top-of-my-vercel-deployment","distance":0.1901},{"site":"vercel-kb","path":"/kb/guide/vercel-reverse-proxy-rewrites-external","distance":0.1974},{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","distance":0.2196}],"related":[{"site":"vercel-kb","path":"/kb/guide/accessing-vercel-hosted-sites-from-mainland-china","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/domain-not-generating-ssl-certificate","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/cloudflare-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-setup-verified-proxy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security/encryption","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","via":"neighbor"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-api","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/security/security-dashboard","title":"Security Dashboard","summary":"Learn about security dashboard on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/accounts/access-tokens"},{"site":"vercel-docs","path":"/docs/cli/security"},{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/environment-variables/framework-environment-variables"},{"site":"vercel-docs","path":"/docs/environment-variables/rotating-secrets"},{"site":"vercel-docs","path":"/docs/environment-variables/sensitive-environment-variables"},{"site":"vercel-docs","path":"/docs/oidc"},{"site":"vercel-docs","path":"/docs/project-configuration/security-settings"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"},{"site":"vercel-docs","path":"/docs/security"},{"site":"vercel-docs","path":"/docs/two-factor-enforcement"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli/security"}],"requires":[{"site":"vercel-docs","path":"/docs/security"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/security","distance":0.1218},{"site":"vercel-docs","path":"/docs/project-configuration/security-settings","distance":0.2559},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","distance":0.2663},{"site":"vercel-docs","path":"/docs/cli/project","distance":0.2775},{"site":"vercel-docs","path":"/docs/security","distance":0.2802}],"related":[{"site":"v0","path":"/docs/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/manage-from-dashboard","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/access-control","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/security/shared-responsibility","title":"Shared Responsibility Model","summary":"Discover the essentials of our Shared Responsibility Model, outlining the key roles and responsibilities for customers, Vercel, and shared aspects in ensuring secure and efficient cloud computing services.","outbound":[{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/cdn-security/encryption"},{"site":"vercel-docs","path":"/docs/cli/login"},{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/password-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication"},{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/logs/runtime"},{"site":"vercel-docs","path":"/docs/production-checklist"},{"site":"vercel-docs","path":"/docs/query/monitoring"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/saml"},{"site":"vercel-docs","path":"/docs/security"},{"site":"vercel-docs","path":"/docs/security/pci-dss"},{"site":"vercel-docs","path":"/docs/spend-management"}],"inbound":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/submit-integration"},{"site":"vercel-docs","path":"/docs/security"},{"site":"vercel-docs","path":"/docs/security/compliance"},{"site":"vercel-docs","path":"/docs/security/pci-dss"},{"site":"vercel-kb","path":"/kb/guide/ensuring-safe-and-effective-infrastructure-testing"},{"site":"vercel-kb","path":"/kb/guide/hipaa-compliance-guide-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-conduct-pci-scans-on-vercel-guide"},{"site":"vercel-kb","path":"/kb/guide/is-vercel-hipaa-compliant"},{"site":"vercel-kb","path":"/kb/guide/is-vercel-pci-compliant"},{"site":"vercel-kb","path":"/kb/guide/is-vercel-soc-2-compliant"},{"site":"vercel-kb","path":"/kb/guide/supporting-compliance-with-vercel-waf"}],"requires":[{"site":"vercel-docs","path":"/docs/security"}],"neighbors":[{"site":"vercel-docs","path":"/docs/security/compliance","distance":0.1801},{"site":"vercel-docs","path":"/docs/security","distance":0.1875},{"site":"vercel-kb","path":"/kb/guide/ensuring-safe-and-effective-infrastructure-testing","distance":0.2251},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","distance":0.2628},{"site":"vercel-kb","path":"/kb/guide/is-vercel-pci-compliant","distance":0.2652}],"related":[{"site":"vercel-kb","path":"/kb/guide/ensuring-safe-and-effective-infrastructure-testing","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/hipaa-compliance-guide-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-conduct-pci-scans-on-vercel-guide","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/is-vercel-hipaa-compliant","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/is-vercel-pci-compliant","via":"inbound"},{"site":"v0","path":"/docs/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/compliance","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/security","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/services","title":"Services","summary":"Deploy multiple backends and frontends within a single Vercel project using services.","outbound":[{"site":"vercel-docs","path":"/docs/functions/container-images"},{"site":"vercel-docs","path":"/docs/queues/concepts"},{"site":"vercel-docs","path":"/docs/services/bindings"},{"site":"vercel-docs","path":"/docs/services/config-reference"},{"site":"vercel-docs","path":"/docs/services/experimental"},{"site":"vercel-docs","path":"/docs/services/pricing"},{"site":"vercel-docs","path":"/docs/services/routing"}],"inbound":[{"site":"eve","path":"/docs/guides/frontend/nuxt"},{"site":"eve","path":"/docs/guides/frontend/sveltekit"},{"site":"vercel-docs","path":"/docs/build-output-api/services"},{"site":"vercel-docs","path":"/docs/functions/container-images"},{"site":"vercel-docs","path":"/docs/functions/runtimes/go"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js"},{"site":"vercel-docs","path":"/docs/functions/runtimes/python"},{"site":"vercel-docs","path":"/docs/functions/runtimes/python/api-directory"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/queues/concepts"},{"site":"vercel-docs","path":"/docs/queues/poll-mode"},{"site":"vercel-docs","path":"/docs/routing/rewrites"},{"site":"vercel-docs","path":"/docs/services/bindings"},{"site":"vercel-docs","path":"/docs/services/experimental"},{"site":"vercel-docs","path":"/docs/services/routing"},{"site":"vercel-kb","path":"/kb/guide/deploy-go-using-docker-vercel"},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/deploy-php-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/docker-compose-concepts-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/docker-on-vercel-vs-render"},{"site":"vercel-kb","path":"/kb/guide/dot-net-asp-net-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/kubernetes-manifests-to-vercel-json"},{"site":"vercel-kb","path":"/kb/guide/migrate-cloud-run-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-render-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/real-time-board-nextjs-fastapi"},{"site":"vercel-kb","path":"/kb/guide/real-time-presence-hono-react"},{"site":"vercel-kb","path":"/kb/guide/structure-your-application"},{"site":"vercel-kb","path":"/kb/guide/vercel-kubernetes-support"},{"site":"vercel-kb","path":"/kb/guide/vercel-services-fluid-compute"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-kubernetes"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/services/experimental","distance":0.0907},{"site":"vercel-kb","path":"/kb/guide/vercel-services","distance":0.0927},{"site":"vercel-docs","path":"/docs/build-output-api/services","distance":0.1272},{"site":"vercel-docs","path":"/docs/services/routing","distance":0.1499},{"site":"vercel-docs","path":"/docs/services/config-reference","distance":0.2221}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-services","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/nuxt","via":"inbound"},{"site":"eve","path":"/docs/guides/frontend/sveltekit","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/deploy-go-using-docker-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/deploy-php-on-vercel-with-docker","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/docker-on-vercel-vs-render","via":"inbound"},{"site":"vercel-docs","path":"/docs/build-output-api/features","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/express","via":"neighbor"},{"site":"vercel-docs","path":"/docs/glossary","via":"inbound"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/services/bindings","title":"Service bindings","summary":"Call one service from another using caller-declared service bindings.","outbound":[{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/services"},{"site":"vercel-docs","path":"/docs/services/pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/build-output-api/configuration"},{"site":"vercel-docs","path":"/docs/build-output-api/services"},{"site":"vercel-docs","path":"/docs/queues/concepts"},{"site":"vercel-docs","path":"/docs/services"},{"site":"vercel-docs","path":"/docs/services/config-reference"},{"site":"vercel-docs","path":"/docs/services/pricing"},{"site":"vercel-docs","path":"/docs/services/routing"},{"site":"vercel-kb","path":"/kb/guide/docker-compose-concepts-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/vercel-services"}],"requires":[{"site":"vercel-docs","path":"/docs/services"}],"neighbors":[{"site":"vercel-docs","path":"/docs/services/routing","distance":0.2552},{"site":"vercel-kb","path":"/kb/guide/vercel-services","distance":0.272},{"site":"vercel-docs","path":"/docs/services","distance":0.2742},{"site":"vercel-docs","path":"/docs/build-output-api/services","distance":0.3031},{"site":"vercel-docs","path":"/docs/services/config-reference","distance":0.3053}],"related":[{"site":"vercel-kb","path":"/kb/guide/docker-compose-concepts-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-services","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/full-stack-preview-deployments-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/services/routing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/build-output-api/services","via":"neighbor"},{"site":"vercel-docs","path":"/docs/services/config-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/go","via":"neighbor"},{"site":"vercel-docs","path":"/docs/build-output-api/features","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/services/config-reference","title":"Service configuration reference","summary":"Options available for service configuration.","outbound":[{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/services/bindings"},{"site":"vercel-docs","path":"/docs/services/routing"}],"inbound":[{"site":"vercel-docs","path":"/docs/services"},{"site":"vercel-kb","path":"/kb/guide/migrate-containers-from-aws-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/vercel-services"},{"site":"vercel-kb","path":"/kb/guide/vercel-services-fluid-compute"}],"requires":[{"site":"vercel-docs","path":"/docs/services"}],"neighbors":[{"site":"vercel-docs","path":"/docs/services/routing","distance":0.2139},{"site":"vercel-docs","path":"/docs/build-output-api/services","distance":0.2195},{"site":"vercel-docs","path":"/docs/services","distance":0.2221},{"site":"vercel-docs","path":"/docs/project-configuration","distance":0.2426},{"site":"vercel-docs","path":"/docs/services/experimental","distance":0.2632}],"related":[{"site":"vercel-kb","path":"/kb/guide/migrate-containers-from-aws-to-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-services","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-services-fluid-compute","via":"inbound"},{"site":"vercel-docs","path":"/docs/build-output-api/services","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/services/experimental","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/build-output-api/features","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/services/experimental","title":"Experimental Services","summary":"The experimentalServices configuration model for deploying multiple backends and frontends in a single Vercel project.","outbound":[{"site":"vercel-docs","path":"/docs/monorepos"},{"site":"vercel-docs","path":"/docs/services"}],"inbound":[{"site":"vercel-docs","path":"/docs/services"}],"requires":[{"site":"vercel-docs","path":"/docs/services"}],"neighbors":[{"site":"vercel-docs","path":"/docs/services","distance":0.0907},{"site":"vercel-kb","path":"/kb/guide/vercel-services","distance":0.1622},{"site":"vercel-docs","path":"/docs/build-output-api/services","distance":0.2231},{"site":"vercel-kb","path":"/kb/guide/full-stack-preview-deployments-on-vercel","distance":0.2425},{"site":"vercel-docs","path":"/docs/services/routing","distance":0.251}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-services","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/full-stack-preview-deployments-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-serve-multiple-projects-under-a-single-domain","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/docker-compose-concepts-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/structure-your-application","via":"neighbor"},{"site":"vercel-docs","path":"/docs/build-output-api/services","via":"neighbor"},{"site":"vercel-docs","path":"/docs/services/config-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/express","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/services/pricing","title":"Pricing and Limits","summary":"Understand how billing works for Vercel Services, what's charged, and which limits apply.","outbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"},{"site":"vercel-docs","path":"/docs/services/bindings"}],"inbound":[{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/arn1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/bom1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cdg1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cle1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cpt1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dxb1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/fra1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/gru1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hkg1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hnd1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/iad1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/icn1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/kix1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/lhr1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/pdx1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sin1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/syd1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/yul1"},{"site":"vercel-docs","path":"/docs/services"},{"site":"vercel-docs","path":"/docs/services/bindings"},{"site":"vercel-kb","path":"/kb/guide/vercel-services"}],"requires":[{"site":"vercel-docs","path":"/docs/services"}],"neighbors":[{"site":"vercel-docs","path":"/docs/pricing","distance":0.2109},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/pdx1","distance":0.22},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1","distance":0.2217},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cle1","distance":0.2296},{"site":"vercel-docs","path":"/docs/queues/pricing","distance":0.2298}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-services","via":"inbound"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/pdx1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cle1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/services/routing","title":"Routing","summary":"Learn how Vercel routes public requests to services and how each service handles its own routes.","outbound":[{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/routing"},{"site":"vercel-docs","path":"/docs/services"},{"site":"vercel-docs","path":"/docs/services/bindings"}],"inbound":[{"site":"vercel-docs","path":"/docs/build-output-api/features"},{"site":"vercel-docs","path":"/docs/build-output-api/services"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/routing/rewrites"},{"site":"vercel-docs","path":"/docs/services"},{"site":"vercel-docs","path":"/docs/services/config-reference"},{"site":"vercel-kb","path":"/kb/guide/full-stack-preview-deployments-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/structure-your-application"},{"site":"vercel-kb","path":"/kb/guide/vercel-services"}],"requires":[{"site":"vercel-docs","path":"/docs/services"}],"neighbors":[{"site":"vercel-docs","path":"/docs/services","distance":0.1499},{"site":"vercel-docs","path":"/docs/routing","distance":0.1749},{"site":"vercel-docs","path":"/docs/build-output-api/services","distance":0.1853},{"site":"vercel-kb","path":"/kb/guide/vercel-services","distance":0.1924},{"site":"vercel-docs","path":"/docs/services/config-reference","distance":0.2139}],"related":[{"site":"vercel-kb","path":"/kb/guide/full-stack-preview-deployments-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/structure-your-application","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-services","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-reverse-proxy-rewrites-external","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/debug-routing-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/build-output-api/services","via":"neighbor"},{"site":"vercel-docs","path":"/docs/services/config-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/project-routing-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/rewrites","via":"neighbor"},{"site":"vercel-docs","path":"/docs/build-output-api/features","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel","title":"Sign in with Vercel","summary":"Learn how to Sign in with Vercel","outbound":[{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/authorization-server-api"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/consent-page"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/getting-started"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/manage-from-dashboard"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/scopes-and-permissions"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/tokens"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/troubleshooting"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/nextjs-prisma-postgres"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/manage-from-dashboard","distance":0.1225},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/troubleshooting","distance":0.1792},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/consent-page","distance":0.233},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/tokens","distance":0.2434},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/scopes-and-permissions","distance":0.2457}],"related":[{"site":"vercel-kb","path":"/kb/guide/nextjs-prisma-postgres","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/complete-guide-authentication-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/oidc","via":"neighbor"},{"site":"vercel-docs","path":"/docs/saml","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/kms/concepts/authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/authorization-server-api","title":"Authorization Server API","summary":"Learn how to use the Authorization Server API","outbound":[{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/manage-from-dashboard"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/scopes-and-permissions"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/tokens"}],"inbound":[{"site":"vercel-docs","path":"/docs/sign-in-with-vercel"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/consent-page"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/getting-started"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/manage-from-dashboard"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/tokens"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/troubleshooting"}],"requires":[{"site":"vercel-docs","path":"/docs/sign-in-with-vercel"}],"neighbors":[{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/getting-started","distance":0.1765},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/tokens","distance":0.2596},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend","distance":0.3178},{"site":"vercel-docs","path":"/docs/connect/concepts/tokens","distance":0.3275},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","distance":0.3292}],"related":[{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/getting-started","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-passport-nextjs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/nextjs-prisma-postgres","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/complete-guide-authentication-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/tokens","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/ts-sdk-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/botid/get-started","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/consent-page","title":"Consent Page","summary":"Learn how the consent page works when users authorize your app","outbound":[{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/authorization-server-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/sign-in-with-vercel"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/getting-started"}],"requires":[{"site":"vercel-docs","path":"/docs/sign-in-with-vercel"}],"neighbors":[{"site":"vercel-docs","path":"/docs/sign-in-with-vercel","distance":0.233},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/manage-from-dashboard","distance":0.2706},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/troubleshooting","distance":0.2938},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/scopes-and-permissions","distance":0.3107},{"site":"vercel-docs","path":"/docs/kms/concepts","distance":0.3638}],"related":[{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/manage-from-dashboard","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/troubleshooting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/scopes-and-permissions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/kms/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/legal","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/getting-started","title":"Getting Started","summary":"Learn how to get started with Sign in with Vercel","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/authorization-server-api"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/consent-page"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/manage-from-dashboard"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/scopes-and-permissions"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/tokens"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/workflows"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/troubleshooting"},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agent-vercel"}],"requires":[{"site":"vercel-docs","path":"/docs/sign-in-with-vercel"}],"neighbors":[{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/authorization-server-api","distance":0.1765},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/tokens","distance":0.3394},{"site":"vercel-docs","path":"/docs/botid/get-started","distance":0.3629},{"site":"vercel-kb","path":"/kb/guide/nextjs-prisma-postgres","distance":0.3827},{"site":"nextjs","path":"/docs/app/guides/authentication","distance":0.387}],"related":[{"site":"vercel-kb","path":"/kb/guide/claude-managed-agent-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/nextjs-prisma-postgres","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/authentication","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-passport-nextjs","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend","via":"neighbor"},{"site":"vercel-docs","path":"/docs/botid/get-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/tokens","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/client-upload","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/ts-sdk-reference","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/manage-from-dashboard","title":"Manage from Dashboard","summary":"Learn how to manage Sign in with Vercel from the Dashboard","outbound":[{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication"},{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/authorization-server-api"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/scopes-and-permissions"}],"inbound":[{"site":"vercel-docs","path":"/docs/sign-in-with-vercel"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/authorization-server-api"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/getting-started"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/tokens"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/troubleshooting"}],"requires":[{"site":"vercel-docs","path":"/docs/sign-in-with-vercel"}],"neighbors":[{"site":"vercel-docs","path":"/docs/sign-in-with-vercel","distance":0.1225},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/troubleshooting","distance":0.1587},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/scopes-and-permissions","distance":0.2257},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication","distance":0.2421},{"site":"vercel-docs","path":"/docs/accounts","distance":0.2553}],"related":[{"site":"vercel-kb","path":"/kb/guide/complete-guide-authentication-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/troubleshooting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/accounts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rbac/managing-team-members","via":"neighbor"},{"site":"vercel-docs","path":"/docs/saml","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/scopes-and-permissions","title":"Scopes & Permissions","summary":"Learn how to manage scopes and permissions for Sign in with Vercel","outbound":[{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/tokens"}],"inbound":[{"site":"vercel-docs","path":"/docs/sign-in-with-vercel"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/authorization-server-api"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/getting-started"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/manage-from-dashboard"}],"requires":[{"site":"vercel-docs","path":"/docs/sign-in-with-vercel"}],"neighbors":[{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/manage-from-dashboard","distance":0.2257},{"site":"vercel-docs","path":"/docs/accounts/access-tokens","distance":0.2419},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel","distance":0.2457},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/manage-integrations-reference","distance":0.2606},{"site":"vercel-docs","path":"/docs/rbac","distance":0.2741}],"related":[{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/manage-from-dashboard","via":"neighbor"},{"site":"vercel-docs","path":"/docs/accounts/access-tokens","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/manage-integrations-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rbac","via":"neighbor"},{"site":"vercel-docs","path":"/docs/protected-git-scopes","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/tokens","title":"Tokens","summary":"Learn how to Sign in with Vercel","outbound":[{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/authorization-server-api"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/manage-from-dashboard"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/budgets"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/authorization-server-api"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/getting-started"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/scopes-and-permissions"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records"}],"requires":[{"site":"vercel-docs","path":"/docs/sign-in-with-vercel"}],"neighbors":[{"site":"vercel-docs","path":"/docs/oidc/reference","distance":0.2272},{"site":"vercel-docs","path":"/docs/connect/concepts/tokens","distance":0.2351},{"site":"vercel-docs","path":"/docs/accounts/access-tokens","distance":0.2404},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel","distance":0.2434},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/authorization-server-api","distance":0.2596}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-a-vercel-api-access-token","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-passport-nextjs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/oidc/reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/tokens","via":"neighbor"},{"site":"vercel-docs","path":"/docs/accounts/access-tokens","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/kms/concepts/authentication","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/troubleshooting","title":"Troubleshooting","summary":"Learn how to troubleshoot common errors with Sign in with Vercel","outbound":[{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/authorization-server-api"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/getting-started"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/manage-from-dashboard"}],"inbound":[{"site":"vercel-docs","path":"/docs/sign-in-with-vercel"}],"requires":[{"site":"vercel-docs","path":"/docs/sign-in-with-vercel"}],"neighbors":[{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/manage-from-dashboard","distance":0.1587},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel","distance":0.1792},{"site":"vercel-kb","path":"/kb/guide/complete-guide-authentication-vercel","distance":0.2643},{"site":"vercel-kb","path":"/kb/guide/why-can-i-not-signup","distance":0.2693},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/consent-page","distance":0.2938}],"related":[{"site":"vercel-kb","path":"/kb/guide/complete-guide-authentication-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-can-i-not-signup","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/consent-page","via":"neighbor"},{"site":"vercel-docs","path":"/docs/two-factor-authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/troubleshooting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/troubleshooting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/scopes-and-permissions","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/sitemap.md","title":"sitemap.md","summary":"Learn about sitemap.md on Vercel.","outbound":[],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-api-keys","distance":0.2523},{"site":"vercel-docs","path":"/docs/rest-api/untagged/put-domains-domain-records","distance":0.3479},{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-v2-observability-schema","distance":0.3491},{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-domains-records-record-id","distance":0.3549},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-supported-tld-s","distance":0.3653}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources","via":"requires"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-api-keys","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-sitemaps","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/put-domains-domain-records","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-v2-observability-schema","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/get-domains-records-record-id","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/skew-protection","title":"Skew Protection","summary":"Learn how Vercel's Skew Protection ensures that the client and server stay in sync for any particular deployment.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"},{"site":"vercel-docs","path":"/docs/cli/deploy"},{"site":"vercel-docs","path":"/docs/deployment-retention"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments"},{"site":"vercel-docs","path":"/docs/environment-variables/system-environment-variables"},{"site":"vercel-docs","path":"/docs/microfrontends"},{"site":"vercel-docs","path":"/docs/query/monitoring"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/routing-middleware/api"}],"inbound":[{"site":"vercel-docs","path":"/docs/build-output-api/primitives"},{"site":"vercel-docs","path":"/docs/cli/deploy"},{"site":"vercel-docs","path":"/docs/environment-variables/system-environment-variables"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/frontend"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit"},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works"},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes"},{"site":"vercel-docs","path":"/docs/monorepos/turborepo"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"},{"site":"vercel-docs","path":"/docs/query/monitoring/monitoring-reference"},{"site":"vercel-docs","path":"/docs/query/reference"},{"site":"vercel-docs","path":"/docs/rolling-releases"},{"site":"vercel-kb","path":"/kb/guide/debug-routing-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-render"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/deployment-protection","distance":0.2426},{"site":"vercel-docs","path":"/docs/deployment-protection/automated-agent-access","distance":0.2789},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication","distance":0.2865},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments","distance":0.2884},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection","distance":0.2896}],"related":[{"site":"vercel-kb","path":"/kb/guide/debug-routing-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-render","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/automated-agent-access","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/security-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/speed-insights","title":"Speed Insights","summary":"This page lists out and explains all the performance metrics provided by Vercel's Speed Insights feature.","outbound":[{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/speed-insights/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/speed-insights/metrics"},{"site":"vercel-docs","path":"/docs/speed-insights/quickstart"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent/installation"},{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/checks"},{"site":"vercel-docs","path":"/docs/checks/creating-checks"},{"site":"vercel-docs","path":"/docs/cli/project"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/astro"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/create-react-app"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nuxt"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends"},{"site":"vercel-docs","path":"/docs/plans/hobby"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/production-checklist"},{"site":"vercel-docs","path":"/docs/projects"},{"site":"vercel-docs","path":"/docs/projects/transferring-projects"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-speed-insights-toggle"},{"site":"vercel-docs","path":"/docs/rolling-releases"},{"site":"vercel-kb","path":"/kb/guide/astro-on-vercel-vs-webflow-cloud"},{"site":"vercel-kb","path":"/kb/guide/black-friday-preparation"},{"site":"vercel-kb","path":"/kb/guide/cls-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-bigcommerce-storefront-with-vercel"},{"site":"vercel-kb","path":"/kb/guide/first-input-delay-vs-interaction-to-next-paint"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-reduce-my-build-time-with-next-js-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-effectively-load-test-your-vercel-application"},{"site":"vercel-kb","path":"/kb/guide/how-to-improve-core-web-vitals"},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime"},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-next.js-sitecore-jss"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare"},{"site":"vercel-kb","path":"/kb/guide/sending-sample-to-speed-insights"},{"site":"vercel-kb","path":"/kb/guide/vercel-agent"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-render"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/speed-insights/using-speed-insights","distance":0.1029},{"site":"vercel-docs","path":"/docs/speed-insights/quickstart","distance":0.1432},{"site":"vercel-docs","path":"/docs/speed-insights/metrics","distance":0.1768},{"site":"vercel-docs","path":"/docs/speed-insights/privacy-policy","distance":0.1818},{"site":"vercel-docs","path":"/docs/speed-insights/package","distance":0.1868}],"related":[{"site":"vercel-kb","path":"/kb/guide/astro-on-vercel-vs-webflow-cloud","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/black-friday-preparation","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/cls-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-bigcommerce-storefront-with-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/first-input-delay-vs-interaction-to-next-paint","via":"inbound"},{"site":"vercel-docs","path":"/docs/observability/insights","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/using-web-analytics","via":"neighbor"},{"site":"vercel-docs","path":"/docs/checks","via":"inbound"},{"site":"vercel-docs","path":"/docs/cli/project","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/speed-insights/accessing-metrics-with-vercel-cli","title":"Using with CLI","summary":"Use the Vercel CLI to query Speed Insights metrics from your terminal.","outbound":[{"site":"vercel-docs","path":"/docs/cli/metrics"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"},{"site":"vercel-docs","path":"/docs/speed-insights/metrics"}],"inbound":[{"site":"vercel-docs","path":"/docs/speed-insights/using-speed-insights"}],"requires":[{"site":"vercel-docs","path":"/docs/speed-insights"}],"neighbors":[{"site":"vercel-docs","path":"/docs/analytics/accessing-metrics-with-vercel-cli","distance":0.1268},{"site":"vercel-docs","path":"/docs/cli/metrics","distance":0.1477},{"site":"vercel-docs","path":"/docs/speed-insights","distance":0.197},{"site":"vercel-docs","path":"/docs/speed-insights/using-speed-insights","distance":0.2179},{"site":"vercel-docs","path":"/docs/speed-insights/quickstart","distance":0.2466}],"related":[{"site":"vercel-docs","path":"/docs/analytics/accessing-metrics-with-vercel-cli","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/cls-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/using-speed-insights","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/managing-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/web-analytics-api","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/speed-insights/limits-and-pricing","title":"Limits and Pricing","summary":"Learn about our limits and pricing when using Vercel Speed Insights. Different limitations are applied depending on your plan.","outbound":[{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/speed-insights/managing-usage"},{"site":"vercel-docs","path":"/docs/speed-insights/package"},{"site":"vercel-docs","path":"/docs/spend-management"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent/installation"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/plans/hobby"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/speed-insights"},{"site":"vercel-docs","path":"/docs/speed-insights/managing-usage"},{"site":"vercel-docs","path":"/docs/speed-insights/quickstart"},{"site":"vercel-docs","path":"/docs/speed-insights/using-speed-insights"},{"site":"vercel-kb","path":"/kb/guide/cls-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/vercel-agent"}],"requires":[{"site":"vercel-docs","path":"/docs/speed-insights"}],"neighbors":[{"site":"vercel-docs","path":"/docs/speed-insights/managing-usage","distance":0.125},{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability","distance":0.1566},{"site":"vercel-docs","path":"/docs/speed-insights/using-speed-insights","distance":0.1599},{"site":"vercel-docs","path":"/docs/analytics/limits-and-pricing","distance":0.196},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","distance":0.1962}],"related":[{"site":"vercel-kb","path":"/kb/guide/cls-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-agent","via":"inbound"},{"site":"vercel-docs","path":"/docs/speed-insights/using-speed-insights","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/limits-and-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability/observability-plus","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/speed-insights/managing-usage","title":"Managing Usage & Costs","summary":"Learn how to measure and manage Speed Insights usage with this guide to reduce events and avoid unexpected costs.","outbound":[{"site":"vercel-docs","path":"/docs/speed-insights/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/speed-insights/metrics"},{"site":"vercel-docs","path":"/docs/speed-insights/package"}],"inbound":[{"site":"vercel-docs","path":"/docs/speed-insights/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/speed-insights/quickstart"}],"requires":[{"site":"vercel-docs","path":"/docs/speed-insights"}],"neighbors":[{"site":"vercel-docs","path":"/docs/speed-insights/limits-and-pricing","distance":0.125},{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability","distance":0.1666},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","distance":0.2},{"site":"vercel-docs","path":"/docs/speed-insights","distance":0.2079},{"site":"vercel-docs","path":"/docs/speed-insights/using-speed-insights","distance":0.2117}],"related":[{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/using-speed-insights","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/privacy-policy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/quickstart","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/speed-insights/metrics","title":"Metrics","summary":"Learn what each performance metric on Speed Insights means and how the scores are calculated.","outbound":[{"site":"vercel-docs","path":"/docs/speed-insights/using-speed-insights"}],"inbound":[{"site":"vercel-docs","path":"/docs/checks/creating-checks"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/astro"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/create-react-app"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/production-checklist"},{"site":"vercel-docs","path":"/docs/speed-insights"},{"site":"vercel-docs","path":"/docs/speed-insights/accessing-metrics-with-vercel-cli"},{"site":"vercel-docs","path":"/docs/speed-insights/managing-usage"},{"site":"vercel-docs","path":"/docs/speed-insights/privacy-policy"},{"site":"vercel-docs","path":"/docs/speed-insights/quickstart"},{"site":"vercel-docs","path":"/docs/speed-insights/using-speed-insights"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/layout-shift-tool"},{"site":"vercel-kb","path":"/kb/guide/cls-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime"}],"requires":[{"site":"vercel-docs","path":"/docs/speed-insights"}],"neighbors":[{"site":"vercel-docs","path":"/docs/speed-insights","distance":0.1768},{"site":"vercel-kb","path":"/kb/guide/how-to-improve-core-web-vitals","distance":0.19},{"site":"vercel-docs","path":"/docs/speed-insights/using-speed-insights","distance":0.2331},{"site":"vercel-docs","path":"/docs/speed-insights/accessing-metrics-with-vercel-cli","distance":0.2636},{"site":"vercel-kb","path":"/kb/guide/why-site-performance-matters","distance":0.2654}],"related":[{"site":"vercel-kb","path":"/kb/guide/cls-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-improve-core-web-vitals","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-site-performance-matters","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/first-input-delay-vs-interaction-to-next-paint","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/analytics","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/accessing-metrics-with-vercel-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/checks/creating-checks","via":"inbound"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/astro","via":"inbound"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/create-react-app","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/speed-insights/package","title":"@vercel/speed-insights","summary":"Learn how to configure your application to capture and send web performance metrics to Vercel using the @vercel/speed-insights npm package.","outbound":[{"site":"vercel-docs","path":"/docs/speed-insights/privacy-policy"},{"site":"vercel-docs","path":"/docs/speed-insights/quickstart"},{"site":"vercel-kb","path":"/kb/guide/sending-sample-to-speed-insights"}],"inbound":[{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability"},{"site":"vercel-docs","path":"/docs/speed-insights/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/speed-insights/managing-usage"},{"site":"vercel-docs","path":"/docs/speed-insights/privacy-policy"},{"site":"vercel-docs","path":"/docs/speed-insights/quickstart"},{"site":"vercel-kb","path":"/kb/guide/sending-sample-to-speed-insights"}],"requires":[{"site":"vercel-docs","path":"/docs/speed-insights"}],"neighbors":[{"site":"vercel-docs","path":"/docs/speed-insights/quickstart","distance":0.1387},{"site":"vercel-docs","path":"/docs/speed-insights","distance":0.1868},{"site":"vercel-docs","path":"/docs/speed-insights/privacy-policy","distance":0.1878},{"site":"vercel-docs","path":"/docs/speed-insights/managing-usage","distance":0.2167},{"site":"vercel-docs","path":"/docs/speed-insights/using-speed-insights","distance":0.2245}],"related":[{"site":"vercel-docs","path":"/docs/speed-insights/managing-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/using-speed-insights","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/troubleshooting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/limits-and-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/reference/speed-insights","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/speed-insights/privacy-policy","title":"Privacy","summary":"Learn how Vercel follows the latest privacy and data compliance standards with its Speed Insights feature.","outbound":[{"site":"vercel-docs","path":"/docs/speed-insights/metrics"},{"site":"vercel-docs","path":"/docs/speed-insights/package"}],"inbound":[{"site":"vercel-docs","path":"/docs/speed-insights/package"},{"site":"vercel-docs","path":"/docs/speed-insights/quickstart"}],"requires":[{"site":"vercel-docs","path":"/docs/speed-insights"}],"neighbors":[{"site":"vercel-docs","path":"/docs/analytics/privacy-policy","distance":0.1494},{"site":"vercel-docs","path":"/docs/speed-insights","distance":0.1818},{"site":"vercel-docs","path":"/docs/speed-insights/package","distance":0.1878},{"site":"vercel-docs","path":"/docs/speed-insights/troubleshooting","distance":0.2018},{"site":"vercel-docs","path":"/docs/speed-insights/quickstart","distance":0.2046}],"related":[{"site":"vercel-docs","path":"/docs/analytics/privacy-policy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/troubleshooting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/managing-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/using-speed-insights","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/speed-insights/quickstart","title":"Getting Started","summary":"Vercel Speed Insights provides you detailed insights into your website's performance. This quickstart guide will help you get started with using Speed Insights on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/astro"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/speed-insights/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/speed-insights/managing-usage"},{"site":"vercel-docs","path":"/docs/speed-insights/metrics"},{"site":"vercel-docs","path":"/docs/speed-insights/package"},{"site":"vercel-docs","path":"/docs/speed-insights/privacy-policy"},{"site":"vercel-docs","path":"/docs/speed-insights/troubleshooting"},{"site":"vercel-docs","path":"/docs/speed-insights/using-speed-insights"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/astro"},{"site":"vercel-docs","path":"/docs/speed-insights"},{"site":"vercel-docs","path":"/docs/speed-insights/package"},{"site":"vercel-kb","path":"/kb/guide/cls-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-next.js-sitecore-jss"}],"requires":[{"site":"vercel-docs","path":"/docs/speed-insights"}],"neighbors":[{"site":"vercel-docs","path":"/docs/analytics/quickstart","distance":0.1296},{"site":"vercel-docs","path":"/docs/speed-insights/package","distance":0.1387},{"site":"vercel-docs","path":"/docs/speed-insights","distance":0.1432},{"site":"vercel-docs","path":"/docs/speed-insights/using-speed-insights","distance":0.1601},{"site":"vercel-docs","path":"/docs/speed-insights/privacy-policy","distance":0.2046}],"related":[{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/cls-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-next.js-sitecore-jss","via":"inbound"},{"site":"vercel-docs","path":"/docs/analytics/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/create-react-app","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/accessing-metrics-with-vercel-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/image-optimization/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability/insights","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/speed-insights/troubleshooting","title":"Troubleshooting","summary":"Learn about common issues and how to troubleshoot Vercel Speed Insights.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-speed-insights-toggle"},{"site":"vercel-docs","path":"/docs/speed-insights/quickstart"}],"requires":[{"site":"vercel-docs","path":"/docs/speed-insights"}],"neighbors":[{"site":"vercel-docs","path":"/docs/speed-insights/privacy-policy","distance":0.2018},{"site":"vercel-docs","path":"/docs/speed-insights","distance":0.2073},{"site":"vercel-docs","path":"/docs/analytics/troubleshooting","distance":0.2218},{"site":"vercel-docs","path":"/docs/speed-insights/quickstart","distance":0.2297},{"site":"vercel-docs","path":"/docs/speed-insights/package","distance":0.2333}],"related":[{"site":"vercel-docs","path":"/docs/speed-insights/privacy-policy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/troubleshooting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/package","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/managing-usage","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/speed-insights/using-speed-insights","title":"Using Speed Insights","summary":"Learn how to use Speed Insights to analyze your application's performance data.","outbound":[{"site":"vercel-docs","path":"/docs/analytics/filtering"},{"site":"vercel-docs","path":"/docs/analytics/using-web-analytics"},{"site":"vercel-docs","path":"/docs/speed-insights/accessing-metrics-with-vercel-cli"},{"site":"vercel-docs","path":"/docs/speed-insights/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/speed-insights/metrics"}],"inbound":[{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability"},{"site":"vercel-docs","path":"/docs/rest-api/untagged/post-speed-insights-toggle"},{"site":"vercel-docs","path":"/docs/speed-insights/metrics"},{"site":"vercel-docs","path":"/docs/speed-insights/quickstart"}],"requires":[{"site":"vercel-docs","path":"/docs/speed-insights"}],"neighbors":[{"site":"vercel-docs","path":"/docs/speed-insights","distance":0.1029},{"site":"vercel-docs","path":"/docs/speed-insights/limits-and-pricing","distance":0.1599},{"site":"vercel-docs","path":"/docs/speed-insights/quickstart","distance":0.1601},{"site":"vercel-docs","path":"/docs/speed-insights/managing-usage","distance":0.2117},{"site":"vercel-docs","path":"/docs/speed-insights/accessing-metrics-with-vercel-cli","distance":0.2179}],"related":[{"site":"vercel-docs","path":"/docs/speed-insights/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/managing-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/package","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/privacy-policy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/spend-management","title":"Spend Management","summary":"Learn how to get notified about your account spend and configure a webhook.","outbound":[{"site":"vercel-docs","path":"/docs/activity-log"},{"site":"vercel-docs","path":"/docs/headers/request-headers"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/notifications"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/how-does-vercel-calculate-usage-of-resources"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage"},{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice"},{"site":"vercel-docs","path":"/docs/projects"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"},{"site":"vercel-docs","path":"/docs/rest-api/projects/unpause-a-project"},{"site":"vercel-docs","path":"/docs/webhooks/webhooks-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/analytics/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/eve/pricing"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/image-optimization/legacy-pricing"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/notifications"},{"site":"vercel-docs","path":"/docs/plans"},{"site":"vercel-docs","path":"/docs/plans/hobby"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/production-checklist"},{"site":"vercel-docs","path":"/docs/projects/managing-projects"},{"site":"vercel-docs","path":"/docs/sandbox/pricing"},{"site":"vercel-docs","path":"/docs/security/shared-responsibility"},{"site":"vercel-docs","path":"/docs/speed-insights/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation"},{"site":"vercel-kb","path":"/kb/guide/pause-your-project"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-render"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-account-deployment-blocked"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend","distance":0.2301},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","distance":0.2373},{"site":"vercel-docs","path":"/docs/plans/pro-plan/billing","distance":0.2471},{"site":"vercel-docs","path":"/docs/pricing","distance":0.2511},{"site":"vercel-docs","path":"/docs/plans","distance":0.256}],"related":[{"site":"vercel-kb","path":"/kb/guide/pause-your-project","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/billing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/managing-projects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/storage","title":"Overview","summary":"Store large files and global configuration with Vercel's storage products.","outbound":[{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/cli/install"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/global-config/get-started"},{"site":"vercel-docs","path":"/docs/global-config/global-config-limits"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/product-integration"},{"site":"vercel-docs","path":"/docs/marketplace-storage"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/vercel-blob/server-upload"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/plans/hobby"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/products"},{"site":"vercel-docs","path":"/docs/projects/transferring-projects"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/vercel-blob/private-storage"},{"site":"vercel-kb","path":"/kb/guide/docker-compose-concepts-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/marketplace-storage","distance":0.1205},{"site":"vercel-kb","path":"/kb/guide/vercel-blob","distance":0.1907},{"site":"vercel-docs","path":"/docs/vercel-blob/manage-blob-storage","distance":0.202},{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage","distance":0.2035},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing","distance":0.2318}],"related":[{"site":"vercel-kb","path":"/kb/guide/docker-compose-concepts-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nuxt","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nextjs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/manage-blob-storage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/storage/create-a-blob-store","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/support-center","title":"Support Center","summary":"Learn how to communicate securely with the Vercel support team","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/plans/enterprise"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-get-vercel-support","distance":0.3002},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/manage-from-dashboard","distance":0.3286},{"site":"vercel-kb","path":"/kb/guide/vercel-support-queue-time","distance":0.3347},{"site":"vercel-docs","path":"/docs/project-configuration/security-settings","distance":0.3349},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","distance":0.3418}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-get-vercel-support","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-support-queue-time","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/manage-from-dashboard","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/security-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rbac/managing-team-members","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/tracing","title":"Tracing","summary":"Learn how to trace your application to understand performance and infrastructure details.","outbound":[{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/drains/reference/traces"},{"site":"vercel-docs","path":"/docs/functions/runtimes/edge"},{"site":"vercel-docs","path":"/docs/logs/runtime"},{"site":"vercel-docs","path":"/docs/tracing/instrumentation"},{"site":"vercel-docs","path":"/docs/tracing/session-tracing"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"}],"inbound":[{"site":"vercel-docs","path":"/docs/drains/reference/traces"},{"site":"vercel-docs","path":"/docs/drains/using-drains"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/microfrontends/troubleshooting"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/production-checklist"},{"site":"vercel-docs","path":"/docs/tracing/session-tracing"},{"site":"vercel-kb","path":"/kb/guide/add-structured-application-logs-to-vercel-functions"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-render"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/tracing/session-tracing","distance":0.1308},{"site":"vercel-docs","path":"/docs/tracing/instrumentation","distance":0.1855},{"site":"vercel-docs","path":"/docs/drains/reference/traces","distance":0.1881},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/trace-drains","distance":0.233},{"site":"nextjs","path":"/docs/app/guides/open-telemetry","distance":0.2662}],"related":[{"site":"vercel-kb","path":"/kb/guide/add-structured-application-logs-to-vercel-functions","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank","via":"inbound"},{"site":"nextjs","path":"/docs/app/guides/open-telemetry","via":"neighbor"},{"site":"eve","path":"/docs/guides/instrumentation","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/signoz","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/trace-drains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/traces","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/observability","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/tracing/instrumentation","title":"Instrumentation","summary":"Learn how to instrument your application to understand performance and infrastructure details.","outbound":[{"site":"nextjs","path":"/docs/app/guides/open-telemetry"},{"site":"vercel-docs","path":"/docs/drains/reference/traces"},{"site":"vercel-docs","path":"/docs/functions/runtimes/edge"},{"site":"vercel-docs","path":"/docs/tracing/session-tracing"}],"inbound":[{"site":"ai-sdk","path":"/providers/observability/mlflow"},{"site":"nextjs","path":"/docs/app/guides/instrumentation"},{"site":"nextjs","path":"/docs/app/guides/open-telemetry"},{"site":"nextjs","path":"/docs/pages/guides/instrumentation"},{"site":"nextjs","path":"/docs/pages/guides/open-telemetry"},{"site":"vercel-docs","path":"/docs/tracing"},{"site":"vercel-kb","path":"/kb/guide/add-structured-application-logs-to-vercel-functions"},{"site":"vercel-kb","path":"/kb/guide/migrate-containers-from-aws-to-vercel"}],"requires":[{"site":"vercel-docs","path":"/docs/tracing"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/open-telemetry","distance":0.182},{"site":"vercel-docs","path":"/docs/tracing","distance":0.1855},{"site":"nextjs","path":"/docs/pages/guides/open-telemetry","distance":0.1903},{"site":"ai-sdk","path":"/providers/observability/signoz","distance":0.2829},{"site":"eve","path":"/docs/guides/instrumentation","distance":0.3044}],"related":[{"site":"ai-sdk","path":"/providers/observability/mlflow","via":"inbound"},{"site":"nextjs","path":"/docs/app/guides/instrumentation","via":"inbound"},{"site":"nextjs","path":"/docs/pages/guides/instrumentation","via":"inbound"},{"site":"nextjs","path":"/docs/pages/guides/open-telemetry","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/add-structured-application-logs-to-vercel-functions","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/migrate-containers-from-aws-to-vercel","via":"inbound"},{"site":"ai-sdk","path":"/providers/observability/signoz","via":"neighbor"},{"site":"eve","path":"/docs/guides/instrumentation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/langfuse","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/laminar","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/arize-ax","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/tracing/session-tracing","title":"Session Tracing","summary":"Learn how to trace your sessions to understand performance and infrastructure details.","outbound":[{"site":"vercel-docs","path":"/docs/cli/curl"},{"site":"vercel-docs","path":"/docs/cli/traces"},{"site":"vercel-docs","path":"/docs/logs/runtime"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/tracing"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost"}],"inbound":[{"site":"vercel-docs","path":"/docs/microfrontends/troubleshooting"},{"site":"vercel-docs","path":"/docs/tracing"},{"site":"vercel-docs","path":"/docs/tracing/instrumentation"},{"site":"vercel-kb","path":"/kb/guide/add-structured-application-logs-to-vercel-functions"}],"requires":[{"site":"vercel-docs","path":"/docs/tracing"}],"neighbors":[{"site":"vercel-docs","path":"/docs/tracing","distance":0.1308},{"site":"vercel-docs","path":"/docs/cli/traces","distance":0.2627},{"site":"vercel-docs","path":"/docs/observability","distance":0.2941},{"site":"vercel-docs","path":"/docs/drains/reference/traces","distance":0.3103},{"site":"vercel-docs","path":"/docs/logs/runtime","distance":0.3141}],"related":[{"site":"vercel-kb","path":"/kb/guide/add-structured-application-logs-to-vercel-functions","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/debug-routing-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/reference/traces","via":"neighbor"},{"site":"vercel-docs","path":"/docs/tracing/instrumentation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/create-a-trace-session-token-for-a-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/accessing-metrics-with-vercel-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability/insights","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/two-factor-authentication","title":"Two-factor \\(2FA\\)","summary":"Learn how to configure two-factor authentication for your Vercel account.","outbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/two-factor-enforcement"}],"inbound":[{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/two-factor-enforcement"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/two-factor-enforcement","distance":0.1093},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel","distance":0.2702},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/manage-from-dashboard","distance":0.288},{"site":"vercel-docs","path":"/docs/security/access-control","distance":0.2932},{"site":"vercel-docs","path":"/docs/saml","distance":0.2938}],"related":[{"site":"vercel-kb","path":"/kb/guide/why-can-i-not-signup","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/manage-from-dashboard","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/access-control","via":"neighbor"},{"site":"vercel-docs","path":"/docs/saml","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/troubleshooting","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/two-factor-enforcement","title":"Two-factor Enforcement","summary":"Learn how to enforce two-factor authentication \\(2FA\\) for your Vercel team members to enhance security.","outbound":[{"site":"vercel-docs","path":"/docs/rbac/managing-team-members"},{"site":"vercel-docs","path":"/docs/two-factor-authentication"}],"inbound":[{"site":"vercel-docs","path":"/docs/security/security-dashboard"},{"site":"vercel-docs","path":"/docs/two-factor-authentication"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/two-factor-authentication","distance":0.1093},{"site":"vercel-docs","path":"/docs/saml","distance":0.2847},{"site":"vercel-docs","path":"/docs/rbac/managing-team-members","distance":0.2886},{"site":"vercel-docs","path":"/docs/directory-sync","distance":0.3051},{"site":"vercel-docs","path":"/docs/security/access-control","distance":0.3061}],"related":[{"site":"vercel-docs","path":"/docs/saml","via":"neighbor"},{"site":"vercel-docs","path":"/docs/directory-sync","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/access-control","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rbac","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/vercel-blob","title":"Blob","summary":"Vercel Blob is a scalable, cost-effective object storage service with private and public access modes for files of any size.","outbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/cli/blob"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/oidc"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/storage"},{"site":"vercel-docs","path":"/docs/vercel-blob/client-upload"},{"site":"vercel-docs","path":"/docs/vercel-blob/examples"},{"site":"vercel-docs","path":"/docs/vercel-blob/private-storage"},{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage"},{"site":"vercel-docs","path":"/docs/vercel-blob/security"},{"site":"vercel-docs","path":"/docs/vercel-blob/server-upload"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-blob/using-blob-sdk"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides/videos"},{"site":"v0","path":"/docs/databases"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/video"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/image-to-video"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/motion-control"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/reference-to-video"},{"site":"vercel-docs","path":"/docs/cli/blob"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/observability/insights"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/serving-static-files"},{"site":"vercel-docs","path":"/docs/production-checklist"},{"site":"vercel-docs","path":"/docs/projects/transferring-projects"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/storage"},{"site":"vercel-docs","path":"/docs/vercel-blob/manage-blob-storage"},{"site":"vercel-docs","path":"/docs/vercel-blob/private-storage"},{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-blob/using-blob-sdk"},{"site":"vercel-docs","path":"/docs/vercel-blob/vercel-signed-urls"},{"site":"vercel-kb","path":"/kb/guide/agent-approval-workflow-stack-guide"},{"site":"vercel-kb","path":"/kb/guide/ai-evaluation-dashboard-architecture-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/astro-on-vercel-vs-webflow-cloud"},{"site":"vercel-kb","path":"/kb/guide/best-practices-for-hosting-videos-on-vercel-nextjs-mp4-gif"},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/deploy-php-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/dot-net-asp-net-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent"},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot"},{"site":"vercel-kb","path":"/kb/guide/eve-typefully-social-media-agent"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-aws-s3-with-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-run-a-multi-step-research-agent-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/kubernetes-manifests-to-vercel-json"},{"site":"vercel-kb","path":"/kb/guide/marketing-team-eve"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-an-astro-app-from-webflow-cloud-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare"},{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-cloudflare"},{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-webflow-cloud"},{"site":"vercel-kb","path":"/kb/guide/nextjs-on-vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/tanstack-start-on-vercel-vs-cloudflare"},{"site":"vercel-kb","path":"/kb/guide/tanstack-start-on-vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nextjs"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nuxt"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nuxt-imgur-clone"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-vs-netlify-blobs"},{"site":"vercel-kb","path":"/kb/guide/vercel-kubernetes-support"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-render"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing","distance":0.1048},{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage","distance":0.1552},{"site":"vercel-kb","path":"/kb/guide/vercel-blob","distance":0.1738},{"site":"vercel-kb","path":"/kb/guide/how-to-upload-and-store-files-with-vercel","distance":0.1952},{"site":"vercel-docs","path":"/docs/vercel-blob/examples","distance":0.2467}],"related":[{"site":"nextjs","path":"/docs/app/guides/videos","via":"inbound"},{"site":"v0","path":"/docs/databases","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/agent-approval-workflow-stack-guide","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ai-evaluation-dashboard-architecture-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/astro-on-vercel-vs-webflow-cloud","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/best-practices-for-hosting-videos-on-vercel-nextjs-mp4-gif","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/image-to-video","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/motion-control","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/reference-to-video","via":"inbound"},{"site":"vercel-docs","path":"/docs/image-optimization","via":"inbound"},{"site":"vercel-docs","path":"/docs/observability/insights","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/vercel-blob/client-upload","title":"Client Uploads","summary":"Learn how to upload files larger than 4.5 MB directly from the browser to Vercel Blob","outbound":[{"site":"nextjs","path":"/docs/pages/guides/environment-variables"},{"site":"vercel-docs","path":"/docs/environment-variables/system-environment-variables"},{"site":"vercel-docs","path":"/docs/vercel-blob/using-blob-sdk"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides/videos"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/vercel-blob/private-storage"},{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage"},{"site":"vercel-docs","path":"/docs/vercel-blob/server-upload"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-blob/using-blob-sdk"},{"site":"vercel-kb","path":"/kb/guide/user-uploaded-files-vercel-sandbox-and-blob"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nextjs"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nuxt-imgur-clone"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-vs-netlify-blobs"}],"requires":[{"site":"vercel-docs","path":"/docs/vercel-blob"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-bypass-vercel-body-size-limit-serverless-functions","distance":0.2045},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-aws-s3-with-vercel","distance":0.2186},{"site":"vercel-docs","path":"/docs/vercel-blob/server-upload","distance":0.2293},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nextjs","distance":0.2299},{"site":"vercel-kb","path":"/kb/guide/how-to-upload-and-store-files-with-vercel","distance":0.2471}],"related":[{"site":"nextjs","path":"/docs/app/guides/videos","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/user-uploaded-files-vercel-sandbox-and-blob","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nextjs","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nuxt-imgur-clone","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-vs-netlify-blobs","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-bypass-vercel-body-size-limit-serverless-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/private-storage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/botid/get-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/start-a-blob-upload","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/vercel-blob/examples","title":"Examples","summary":"Examples on how to use Vercel Blob in your applications","outbound":[{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/vercel-blob/using-blob-sdk"}],"inbound":[{"site":"vercel-docs","path":"/docs/vercel-blob"}],"requires":[{"site":"vercel-docs","path":"/docs/vercel-blob"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-blob","distance":0.1857},{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage","distance":0.2004},{"site":"vercel-docs","path":"/docs/vercel-blob/server-upload","distance":0.2157},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nextjs","distance":0.2331},{"site":"vercel-docs","path":"/docs/vercel-blob/manage-blob-storage","distance":0.2355}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-blob","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nextjs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-upload-and-store-files-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-aws-s3-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nuxt","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/cancel-a-blob-upload","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/vercel-blob/manage-blob-storage","title":"Manage Vercel Blob Storage","summary":"Create blob stores, upload files, list contents, and manage storage using the CLI.","outbound":[{"site":"vercel-docs","path":"/docs/cli/blob"},{"site":"vercel-docs","path":"/docs/cli/project-linking"},{"site":"vercel-docs","path":"/docs/vercel-blob"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/workflows"}],"requires":[{"site":"vercel-docs","path":"/docs/vercel-blob"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/blob","distance":0.1819},{"site":"vercel-kb","path":"/kb/guide/vercel-blob","distance":0.1911},{"site":"vercel-docs","path":"/docs/rest-api/storage/create-a-blob-store","distance":0.2012},{"site":"vercel-docs","path":"/docs/storage","distance":0.202},{"site":"vercel-docs","path":"/docs/rest-api/storage/delete-a-blob-store","distance":0.2162}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-blob","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nuxt","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nextjs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/storage/create-a-blob-store","via":"neighbor"},{"site":"vercel-docs","path":"/docs/storage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/storage/delete-a-blob-store","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/vcr","via":"neighbor"},{"site":"vercel-docs","path":"/docs/container-registry","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/vercel-blob/private-storage","title":"Private Storage","summary":"Learn how to use private Vercel Blob storage to serve files with authentication","outbound":[{"site":"vercel-docs","path":"/docs/caching/cache-control-headers"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/blob"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/storage"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/vercel-blob/client-upload"},{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage"},{"site":"vercel-docs","path":"/docs/vercel-blob/server-upload"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-blob/using-blob-sdk"},{"site":"vercel-docs","path":"/docs/vercel-blob/vercel-signed-urls"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli/blob"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/vercel-blob/security"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-blob/using-blob-sdk"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-vs-netlify-blobs"}],"requires":[{"site":"vercel-docs","path":"/docs/vercel-blob"}],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage","distance":0.1813},{"site":"vercel-kb","path":"/kb/guide/vercel-blob","distance":0.187},{"site":"vercel-kb","path":"/kb/guide/how-to-upload-and-store-files-with-vercel","distance":0.209},{"site":"vercel-docs","path":"/docs/vercel-blob/examples","distance":0.2377},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nextjs","distance":0.2391}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-blob-vs-netlify-blobs","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-upload-and-store-files-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nextjs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nuxt-imgur-clone","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/examples","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage","title":"Public Storage","summary":"Learn how to use public Vercel Blob storage to serve files accessible to anyone with the URL","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/image"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/cli/blob"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/vercel-blob/client-upload"},{"site":"vercel-docs","path":"/docs/vercel-blob/security"},{"site":"vercel-docs","path":"/docs/vercel-blob/server-upload"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-blob/using-blob-sdk"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/ip-blocking"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli/blob"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/vercel-blob/private-storage"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nuxt-imgur-clone"}],"requires":[{"site":"vercel-docs","path":"/docs/vercel-blob"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-blob","distance":0.1109},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing","distance":0.147},{"site":"vercel-docs","path":"/docs/vercel-blob","distance":0.1552},{"site":"vercel-docs","path":"/docs/vercel-blob/private-storage","distance":0.1813},{"site":"vercel-docs","path":"/docs/vercel-blob/examples","distance":0.2004}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-blob","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nuxt-imgur-clone","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-upload-and-store-files-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nextjs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nuxt","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/private-storage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/storage/create-a-blob-store","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/vercel-blob/security","title":"Security","summary":"Learn how your Vercel Blob store is secured","outbound":[{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/vercel-blob/private-storage"},{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/ip-blocking"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/managed-rulesets"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting"}],"inbound":[{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage"}],"requires":[{"site":"vercel-docs","path":"/docs/vercel-blob"}],"neighbors":[{"site":"vercel-docs","path":"/docs/security","distance":0.2047},{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage","distance":0.2151},{"site":"vercel-docs","path":"/docs/cdn-security","distance":0.2183},{"site":"vercel-kb","path":"/kb/guide/vercel-blob","distance":0.2511},{"site":"vercel-docs","path":"/docs/vercel-blob/private-storage","distance":0.2514}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-blob","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/security-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security/encryption","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/vercel-blob/server-upload","title":"Server Uploads","summary":"Learn how to upload files to Vercel Blob using Server Actions and Route Handlers","outbound":[{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/vercel-blob/client-upload"},{"site":"vercel-docs","path":"/docs/vercel-blob/using-blob-sdk"}],"inbound":[{"site":"nextjs","path":"/docs/app/guides/videos"},{"site":"vercel-docs","path":"/docs/storage"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/vercel-blob/private-storage"},{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nextjs"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-vs-netlify-blobs"}],"requires":[{"site":"vercel-docs","path":"/docs/vercel-blob"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-blob","distance":0.1668},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nextjs","distance":0.1803},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nuxt","distance":0.2076},{"site":"vercel-docs","path":"/docs/vercel-blob/examples","distance":0.2157},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-aws-s3-with-vercel","distance":0.2257}],"related":[{"site":"nextjs","path":"/docs/app/guides/videos","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nextjs","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-vs-netlify-blobs","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nuxt","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-aws-s3-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/start-a-blob-upload","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/complete-a-blob-upload","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/upload-a-blob-chunk","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing","title":"Pricing","summary":"Learn about the pricing for Vercel Blob.","outbound":[{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/spend-management"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/vercel-blob/client-upload"},{"site":"vercel-docs","path":"/docs/vercel-blob/private-storage"},{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage"},{"site":"vercel-docs","path":"/docs/vercel-blob/server-upload"},{"site":"vercel-docs","path":"/docs/vercel-blob/using-blob-sdk"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli/blob"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/pricing"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/arn1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/bom1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cdg1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cle1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cpt1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dxb1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/fra1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/gru1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hkg1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hnd1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/iad1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/icn1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/kix1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/lhr1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/pdx1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sin1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/syd1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/yul1"},{"site":"vercel-docs","path":"/docs/storage"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/vercel-blob/private-storage"},{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage"},{"site":"vercel-docs","path":"/docs/vercel-blob/using-blob-sdk"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-vs-netlify-blobs"}],"requires":[{"site":"vercel-docs","path":"/docs/vercel-blob"}],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-blob","distance":0.1048},{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage","distance":0.147},{"site":"vercel-kb","path":"/kb/guide/vercel-blob","distance":0.1594},{"site":"vercel-docs","path":"/docs/pricing","distance":0.1963},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing","distance":0.2293}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-blob","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-vs-netlify-blobs","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-upload-and-store-files-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/storage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/limits/fair-use-guidelines","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/vercel-blob/using-blob-sdk","title":"Using the SDK","summary":"Learn how to use the Vercel Blob SDK to access your blob store from your apps.","outbound":[{"site":"vercel-docs","path":"/docs/cli/blob"},{"site":"vercel-docs","path":"/docs/cli/env"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/oidc"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/vercel-blob/client-upload"},{"site":"vercel-docs","path":"/docs/vercel-blob/private-storage"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli/blob"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/vercel-blob/client-upload"},{"site":"vercel-docs","path":"/docs/vercel-blob/examples"},{"site":"vercel-docs","path":"/docs/vercel-blob/private-storage"},{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage"},{"site":"vercel-docs","path":"/docs/vercel-blob/server-upload"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-blob/vercel-signed-urls"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-an-astro-app-from-webflow-cloud-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nextjs"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nuxt"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nuxt-imgur-clone"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-vs-netlify-blobs"}],"requires":[{"site":"vercel-docs","path":"/docs/vercel-blob"}],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/blob","distance":0.2388},{"site":"vercel-kb","path":"/kb/guide/vercel-blob","distance":0.2859},{"site":"vercel-kb","path":"/kb/guide/how-to-upload-and-store-files-with-vercel","distance":0.2916},{"site":"vercel-docs","path":"/docs/image-optimization","distance":0.2935},{"site":"vercel-docs","path":"/docs/vercel-blob/vercel-signed-urls","distance":0.2967}],"related":[{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/migrate-an-astro-app-from-webflow-cloud-to-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob","via":"inbound"},{"site":"vercel-docs","path":"/docs/vercel-blob/vercel-signed-urls","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/vercel-blob/vercel-signed-urls","title":"Vercel Signed URLs","summary":"Grant time-limited access to Vercel Blob URLs with signed tokens, and authorize browser-to-blob presigned uploads.","outbound":[{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/vercel-blob/using-blob-sdk"}],"inbound":[{"site":"vercel-docs","path":"/docs/vercel-blob/private-storage"}],"requires":[{"site":"vercel-docs","path":"/docs/vercel-blob"}],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-blob/client-upload","distance":0.2546},{"site":"vercel-docs","path":"/docs/vercel-blob/using-blob-sdk","distance":0.2967},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nextjs","distance":0.303},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nuxt-imgur-clone","distance":0.3083},{"site":"vercel-kb","path":"/kb/guide/how-to-upload-and-store-files-with-vercel","distance":0.3124}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nextjs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nuxt-imgur-clone","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-upload-and-store-files-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-aws-s3-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/client-upload","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/private-storage","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/vercel-firewall","title":"Firewall","summary":"Learn how Vercel Firewall helps protect your applications and websites from malicious attacks and unauthorized access.","outbound":[{"site":"vercel-docs","path":"/docs/drains/using-drains"},{"site":"vercel-docs","path":"/docs/query/monitoring"},{"site":"vercel-docs","path":"/docs/query/monitoring/monitoring-reference"},{"site":"vercel-docs","path":"/docs/vercel-firewall/attack-mode"},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-api"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-concepts"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-observability"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/ip-blocking"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/managed-rulesets"}],"inbound":[{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/cli/firewall"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips"},{"site":"vercel-docs","path":"/docs/drains/reference/logs"},{"site":"vercel-docs","path":"/docs/frameworks/backend"},{"site":"vercel-docs","path":"/docs/frameworks/backend/elysia"},{"site":"vercel-docs","path":"/docs/frameworks/backend/express"},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastify"},{"site":"vercel-docs","path":"/docs/frameworks/backend/koa"},{"site":"vercel-docs","path":"/docs/frameworks/backend/nestjs"},{"site":"vercel-docs","path":"/docs/frameworks/backend/nitro"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/security"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/products"},{"site":"vercel-docs","path":"/docs/projects"},{"site":"vercel-docs","path":"/docs/rest-api/networking/configures-static-ip-s-for-a-project"},{"site":"vercel-docs","path":"/docs/security/reverse-proxy"},{"site":"vercel-docs","path":"/docs/vercel-blob/security"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-concepts"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-observability"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf"},{"site":"vercel-docs","path":"/docs/webhooks"},{"site":"vercel-kb","path":"/kb/guide/application-authentication-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/black-friday-preparation"},{"site":"vercel-kb","path":"/kb/guide/building-ai-chat-app-with-rag-and-citations-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/debug-routing-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/hipaa-compliance-guide-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app"},{"site":"vercel-kb","path":"/kb/guide/mcp-server-chatgpt-connector"},{"site":"vercel-kb","path":"/kb/guide/migrate-containers-from-aws-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare"},{"site":"vercel-kb","path":"/kb/guide/ship-a-koa-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nestjs-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn"},{"site":"vercel-kb","path":"/kb/guide/vercel-reverse-proxy-rewrites-external"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-render"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","distance":0.1185},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-observability","distance":0.1223},{"site":"vercel-docs","path":"/docs/security","distance":0.1363},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/security","distance":0.1696},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation","distance":0.1718}],"related":[{"site":"vercel-kb","path":"/kb/guide/application-authentication-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/black-friday-preparation","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/building-ai-chat-app-with-rag-and-citations-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/debug-routing-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/hipaa-compliance-guide-vercel","via":"inbound"},{"site":"vercel-docs","path":"/docs/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/read-firewall-configuration","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/vercel-firewall/attack-mode","title":"Attack Mode","summary":"Learn how to use Attack Mode to help control who has access to your site when it's under attack.","outbound":[{"site":"vercel-docs","path":"/docs/bot-management"},{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/plans"},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-concepts"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules"}],"inbound":[{"site":"vercel-docs","path":"/docs/bot-management"},{"site":"vercel-docs","path":"/docs/cli/firewall"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/security"},{"site":"vercel-docs","path":"/docs/plans/enterprise/billing"},{"site":"vercel-docs","path":"/docs/plans/hobby"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/billing"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"},{"site":"vercel-docs","path":"/docs/project-configuration/security-settings"},{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/usage-and-pricing"}],"requires":[{"site":"vercel-docs","path":"/docs/vercel-firewall"}],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation","distance":0.1737},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-observability","distance":0.2387},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","distance":0.2421},{"site":"vercel-docs","path":"/docs/bot-management","distance":0.2446},{"site":"vercel-docs","path":"/docs/vercel-firewall","distance":0.2482}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-protect-your-ai-app-from-bots","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-block-bots-openai-gptbot","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/firewall","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/security","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation","title":"DDoS Mitigation","summary":"Learn how the Vercel Firewall mitigates against DoS and DDoS attacks","outbound":[{"site":"vercel-docs","path":"/docs/notifications"},{"site":"vercel-docs","path":"/docs/spend-management"},{"site":"vercel-docs","path":"/docs/vercel-firewall/attack-mode"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-concepts"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/ip-blocking"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/system-bypass-rules"},{"site":"vercel-kb","path":"/kb/guide/add-rate-limiting-vercel"}],"inbound":[{"site":"vercel-docs","path":"/docs/bot-management"},{"site":"vercel-docs","path":"/docs/cdn-security"},{"site":"vercel-docs","path":"/docs/cli/firewall"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/plans/enterprise/billing"},{"site":"vercel-docs","path":"/docs/plans/hobby"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/billing"},{"site":"vercel-docs","path":"/docs/query/monitoring/monitoring-reference"},{"site":"vercel-docs","path":"/docs/rest-api/networking/configures-static-ip-s-for-a-project"},{"site":"vercel-docs","path":"/docs/security"},{"site":"vercel-docs","path":"/docs/security/compliance"},{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-firewall/attack-mode"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-observability"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/system-bypass-rules"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/webhooks"},{"site":"vercel-kb","path":"/kb/guide/how-to-protect-your-ai-app-from-bots"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare"}],"requires":[{"site":"vercel-docs","path":"/docs/vercel-firewall"}],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-firewall","distance":0.1718},{"site":"vercel-docs","path":"/docs/vercel-firewall/attack-mode","distance":0.1737},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-observability","distance":0.1947},{"site":"vercel-docs","path":"/docs/security","distance":0.2385},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","distance":0.2403}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-protect-your-ai-app-from-bots","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/firewall","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-api","title":"Firewall API","summary":"Learn how to interact with the security endpoints of the Vercel REST API programmatically.","outbound":[{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-docs","path":"/docs/rest-api/sdk"},{"site":"vercel-docs","path":"/docs/rest-api/security/create-system-bypass-rule"},{"site":"vercel-docs","path":"/docs/rest-api/security/update-attack-challenge-mode"},{"site":"vercel-docs","path":"/docs/rest-api/security/update-firewall-configuration"},{"site":"vercel-kb","path":"/kb/guide/challenge-cookieless-requests-on-a-specific-path"},{"site":"vercel-kb","path":"/kb/guide/challenge-curl-requests"},{"site":"vercel-kb","path":"/kb/guide/deny-non-browser-traffic-or-blocklisted-asns"},{"site":"vercel-kb","path":"/kb/guide/deny-traffic-from-a-set-of-ip-addresses"},{"site":"vercel-kb","path":"/kb/guide/firewall-terraform-configuration"},{"site":"vercel-kb","path":"/kb/guide/integrating-terraform-with-vercel"}],"inbound":[{"site":"vercel-docs","path":"/docs/vercel-firewall"}],"requires":[{"site":"vercel-docs","path":"/docs/vercel-firewall"}],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-firewall","distance":0.1872},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples","distance":0.21},{"site":"vercel-docs","path":"/docs/rest-api/security/read-firewall-configuration","distance":0.2216},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","distance":0.2239},{"site":"vercel-docs","path":"/docs/rest-api/security/update-firewall-configuration","distance":0.2289}],"related":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/read-firewall-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/put-firewall-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-observability","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-concepts","title":"Firewall Concepts","summary":"Understand the fundamentals behind the Vercel Firewall.","outbound":[{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/oidc"},{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting"}],"inbound":[{"site":"vercel-docs","path":"/docs/bot-management"},{"site":"vercel-docs","path":"/docs/botid"},{"site":"vercel-docs","path":"/docs/cli/firewall"},{"site":"vercel-docs","path":"/docs/security"},{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-firewall/attack-mode"},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-observability"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/managed-rulesets"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features"},{"site":"vercel-kb","path":"/kb/guide/protect-ai-endpoints-with-vercel-botid"},{"site":"vercel-kb","path":"/kb/guide/vercel-botid-vs-cloudflare-turnstile"}],"requires":[{"site":"vercel-docs","path":"/docs/vercel-firewall"}],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-firewall","distance":0.2143},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-observability","distance":0.2553},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation","distance":0.2586},{"site":"vercel-docs","path":"/docs/cdn-security","distance":0.2596},{"site":"vercel-kb","path":"/kb/guide/supporting-compliance-with-vercel-waf","distance":0.2827}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/protect-ai-endpoints-with-vercel-botid","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-botid-vs-cloudflare-turnstile","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/supporting-compliance-with-vercel-waf","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security/encryption","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-observability","title":"Firewall Observability","summary":"Learn how firewall traffic monitoring and alerts help you react quickly to potential security threats.","outbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/comments/integrations"},{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-concepts"},{"site":"vercel-docs","path":"/docs/webhooks"}],"inbound":[{"site":"vercel-docs","path":"/docs/bot-management"},{"site":"vercel-docs","path":"/docs/botid"},{"site":"vercel-docs","path":"/docs/cdn-security"},{"site":"vercel-docs","path":"/docs/security"},{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features"}],"requires":[{"site":"vercel-docs","path":"/docs/vercel-firewall"}],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-firewall","distance":0.1223},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation","distance":0.1947},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","distance":0.2013},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","distance":0.2339},{"site":"vercel-docs","path":"/docs/security","distance":0.2371}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","via":"inbound"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/attack-mode","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/managed-rulesets","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","title":"Web Application Firewall","summary":"Learn how to secure your website with the Vercel Web Application Firewall \\(WAF\\)","outbound":[{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-observability"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/ip-blocking"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/managed-rulesets"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rule-configuration"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/usage-and-pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/cdn-security"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/security"},{"site":"vercel-docs","path":"/docs/production-checklist"},{"site":"vercel-docs","path":"/docs/query/monitoring/monitoring-reference"},{"site":"vercel-docs","path":"/docs/query/reference"},{"site":"vercel-docs","path":"/docs/security"},{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage"},{"site":"vercel-docs","path":"/docs/vercel-blob/security"},{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-concepts"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules"},{"site":"vercel-kb","path":"/kb/guide/ensuring-safe-and-effective-infrastructure-testing"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall"},{"site":"vercel-kb","path":"/kb/guide/how-to-conduct-pci-scans-on-vercel-guide"},{"site":"vercel-kb","path":"/kb/guide/how-to-effectively-load-test-your-vercel-application"},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime"},{"site":"vercel-kb","path":"/kb/guide/how-to-protect-your-ai-app-from-bots"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features"},{"site":"vercel-kb","path":"/kb/guide/is-vercel-soc-2-compliant"},{"site":"vercel-kb","path":"/kb/guide/supporting-compliance-with-vercel-waf"}],"requires":[{"site":"vercel-docs","path":"/docs/vercel-firewall"}],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-firewall","distance":0.1185},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/ip-blocking","distance":0.1392},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples","distance":0.1477},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting","distance":0.1514},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/managed-rulesets","distance":0.1608}],"related":[{"site":"vercel-kb","path":"/kb/guide/ensuring-safe-and-effective-infrastructure-testing","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-conduct-pci-scans-on-vercel-guide","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-effectively-load-test-your-vercel-application","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime","via":"inbound"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules","title":"Custom Rules","summary":"Learn how to add and manage custom rules to configure the Vercel Web Application Firewall \\(WAF\\).","outbound":[{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-concepts"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rule-configuration"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/usage-and-pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/bot-management"},{"site":"vercel-docs","path":"/docs/cdn-security"},{"site":"vercel-docs","path":"/docs/cli/firewall"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/security"},{"site":"vercel-docs","path":"/docs/plans/hobby"},{"site":"vercel-docs","path":"/docs/production-checklist"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/vercel-blob/security"},{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-firewall/attack-mode"},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-concepts"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/ip-blocking"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/managed-rulesets"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/usage-and-pricing"},{"site":"vercel-kb","path":"/kb/guide/avoiding-duplicate-content-with-vercel-app-urls"},{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall"},{"site":"vercel-kb","path":"/kb/guide/how-to-conduct-pci-scans-on-vercel-guide"},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime"},{"site":"vercel-kb","path":"/kb/guide/how-to-resolve-ip-blocking-issues"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features"},{"site":"vercel-kb","path":"/kb/guide/supporting-compliance-with-vercel-waf"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-render"},{"site":"vercel-kb","path":"/kb/guide/vercel-waf-vs-cloudflare-waf"}],"requires":[{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf"}],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/managed-rulesets","distance":0.1646},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting","distance":0.1838},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","distance":0.1941},{"site":"vercel-kb","path":"/kb/guide/deny-non-browser-traffic-or-blocklisted-asns","distance":0.2134},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples","distance":0.2138}],"related":[{"site":"vercel-kb","path":"/kb/guide/avoiding-duplicate-content-with-vercel-app-urls","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-conduct-pci-scans-on-vercel-guide","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime","via":"inbound"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/managed-rulesets","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/firewall","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/routing-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/project-routing-rules","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples","title":"Examples","summary":"Learn how to use Vercel WAF to protect your site in specific situations.","outbound":[{"site":"vercel-docs","path":"/docs/rest-api/security/update-attack-challenge-mode"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/ip-blocking"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/managed-rulesets"},{"site":"vercel-kb","path":"/kb/guide/block-php-requests"},{"site":"vercel-kb","path":"/kb/guide/challenge-cookieless-requests-on-a-specific-path"},{"site":"vercel-kb","path":"/kb/guide/challenge-curl-requests"},{"site":"vercel-kb","path":"/kb/guide/deny-non-browser-traffic-or-blocklisted-asns"},{"site":"vercel-kb","path":"/kb/guide/deny-traffic-from-a-set-of-ip-addresses"},{"site":"vercel-kb","path":"/kb/guide/emergency-redirect"},{"site":"vercel-kb","path":"/kb/guide/limit-abuse-with-rate-limiting"},{"site":"vercel-kb","path":"/kb/guide/suspicious-traffic-in-specific-countries"},{"site":"vercel-kb","path":"/kb/guide/traffic-spikes"}],"inbound":[{"site":"vercel-docs","path":"/docs/bot-management"},{"site":"vercel-docs","path":"/docs/routing/redirects"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules"}],"requires":[{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf"}],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","distance":0.1477},{"site":"vercel-docs","path":"/docs/vercel-firewall","distance":0.1992},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/ip-blocking","distance":0.2085},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-api","distance":0.21},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/managed-rulesets","distance":0.2109}],"related":[{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/system-bypass-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/usage-and-pricing","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/ip-blocking","title":"IP Blocking","summary":"Learn how to customize the Vercel WAF to restrict access to certain IP addresses.","outbound":[{"site":"vercel-docs","path":"/docs/rbac/access-roles"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules"},{"site":"vercel-kb","path":"/kb/guide/suspicious-traffic-in-specific-countries"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli/firewall"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/security"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/plans/hobby"},{"site":"vercel-docs","path":"/docs/production-checklist"},{"site":"vercel-docs","path":"/docs/rest-api/networking/configures-static-ip-s-for-a-project"},{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage"},{"site":"vercel-docs","path":"/docs/vercel-blob/security"},{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/usage-and-pricing"},{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall"}],"requires":[{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf"}],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","distance":0.1392},{"site":"vercel-kb","path":"/kb/guide/deny-traffic-from-a-set-of-ip-addresses","distance":0.1743},{"site":"vercel-kb","path":"/kb/guide/traffic-spikes","distance":0.1835},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/system-bypass-rules","distance":0.2024},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples","distance":0.2085}],"related":[{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/deny-traffic-from-a-set-of-ip-addresses","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/traffic-spikes","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deny-non-browser-traffic-or-blocklisted-asns","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/system-bypass-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/firewall","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/managed-rulesets","title":"WAF Managed Rulesets","summary":"Learn how to use WAF Managed Rulesets with the Vercel Web Application Firewall \\(WAF\\)","outbound":[{"site":"vercel-docs","path":"/docs/bot-management"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-concepts"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rule-configuration"}],"inbound":[{"site":"vercel-docs","path":"/docs/bot-management"},{"site":"vercel-docs","path":"/docs/cdn-security"},{"site":"vercel-docs","path":"/docs/cli/firewall"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/security"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/production-checklist"},{"site":"vercel-docs","path":"/docs/vercel-blob/security"},{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/usage-and-pricing"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall"},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime"},{"site":"vercel-kb","path":"/kb/guide/supporting-compliance-with-vercel-waf"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify"}],"requires":[{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf"}],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","distance":0.1608},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules","distance":0.1646},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","distance":0.2042},{"site":"vercel-docs","path":"/docs/vercel-firewall","distance":0.209},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/system-bypass-rules","distance":0.21}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/supporting-compliance-with-vercel-waf","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/system-bypass-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/read-firewall-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting","title":"Rate Limiting","summary":"Learn how to configure custom rate limiting rules with the Vercel Web Application Firewall \\(WAF\\).","outbound":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli/firewall"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/production-checklist"},{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage"},{"site":"vercel-docs","path":"/docs/vercel-blob/security"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-concepts"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting-sdk"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/usage-and-pricing"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare"},{"site":"vercel-kb","path":"/kb/guide/supporting-compliance-with-vercel-waf"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai"}],"requires":[{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf"}],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting-sdk","distance":0.1372},{"site":"vercel-kb","path":"/kb/guide/add-rate-limiting-vercel","distance":0.1459},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","distance":0.1514},{"site":"vercel-kb","path":"/kb/guide/limit-abuse-with-rate-limiting","distance":0.1779},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules","distance":0.1838}],"related":[{"site":"vercel-kb","path":"/kb/guide/add-rate-limiting-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/supporting-compliance-with-vercel-waf","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai","via":"inbound"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/limits","via":"inbound"},{"site":"vercel-docs","path":"/docs/production-checklist","via":"inbound"},{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting-sdk","title":"Rate Limiting SDK","summary":"Learn how to configure a custom rule with rate limit in your code.","outbound":[{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation"},{"site":"vercel-docs","path":"/docs/environment-variables/system-environment-variables"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/add-rate-limiting-vercel"},{"site":"vercel-kb","path":"/kb/guide/build-ai-agent-weather-api"},{"site":"vercel-kb","path":"/kb/guide/deploying-and-testing-botid"},{"site":"vercel-kb","path":"/kb/guide/sending-emails-from-an-application-on-vercel"}],"requires":[{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf"}],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting","distance":0.1372},{"site":"vercel-kb","path":"/kb/guide/add-rate-limiting-vercel","distance":0.144},{"site":"vercel-kb","path":"/kb/guide/limit-abuse-with-rate-limiting","distance":0.2181},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules","distance":0.2298},{"site":"vercel-kb","path":"/kb/guide/securing-ai-app-rate-limiting","distance":0.2368}],"related":[{"site":"vercel-kb","path":"/kb/guide/add-rate-limiting-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-ai-agent-weather-api","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/deploying-and-testing-botid","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/sending-emails-from-an-application-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/limit-abuse-with-rate-limiting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/read-firewall-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/firewall","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rule-configuration","title":"Rule Configuration","summary":"List of configurable options with the Vercel WAF","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/cli/firewall"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/managed-rulesets"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall"}],"requires":[{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf"}],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules","distance":0.2492},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","distance":0.3014},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/managed-rulesets","distance":0.3032},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/list-rules","distance":0.3205},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples","distance":0.3215}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall","via":"inbound"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/managed-rulesets","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/list-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/read-firewall-configuration","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/system-bypass-rules","title":"System Bypass Rules","summary":"Learn how to configure IP-based system bypass rules with the Vercel Web Application Firewall \\(WAF\\).","outbound":[{"site":"vercel-docs","path":"/docs/plans"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/plans/hobby"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli/firewall"},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation"},{"site":"vercel-kb","path":"/kb/guide/how-to-effectively-load-test-your-vercel-application"}],"requires":[{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf"}],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","distance":0.1935},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/ip-blocking","distance":0.2024},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/managed-rulesets","distance":0.21},{"site":"vercel-docs","path":"/docs/rest-api/security/create-system-bypass-rule","distance":0.2363},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules","distance":0.25}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-effectively-load-test-your-vercel-application","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/deny-traffic-from-a-set-of-ip-addresses","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deny-non-browser-traffic-or-blocklisted-asns","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/ip-blocking","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/managed-rulesets","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/create-system-bypass-rule","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/remove-system-bypass-rule","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/firewall","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/usage-and-pricing","title":"Usage & Pricing","summary":"Learn how the Vercel WAF can affect your usage and how specific features are priced.","outbound":[{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/vercel-firewall/attack-mode"},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/ip-blocking"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/managed-rulesets"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting"}],"inbound":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/arn1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/bom1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cdg1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cle1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cpt1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dxb1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/fra1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/gru1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hkg1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hnd1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/iad1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/icn1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/kix1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/lhr1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/pdx1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sin1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/syd1"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/yul1"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall"}],"requires":[{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf"}],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","distance":0.1638},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting","distance":0.1985},{"site":"vercel-docs","path":"/docs/vercel-firewall","distance":0.2389},{"site":"vercel-docs","path":"/docs/pricing","distance":0.2451},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation","distance":0.2498}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall","via":"inbound"},{"site":"vercel-docs","path":"/docs/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/iad1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/pdx1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples","via":"neighbor"},{"site":"vercel-docs","path":"/docs/services/pricing","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/vercel-toolbar","title":"Toolbar","summary":"Learn how to use the Vercel Toolbar to leave feedback, navigate through important dashboard pages, share deployments, use Draft Mode for previewing unpublished content, and Edit Mode for editing content in real-time.","outbound":[{"site":"vercel-docs","path":"/docs/audit-log"},{"site":"vercel-docs","path":"/docs/comments"},{"site":"vercel-docs","path":"/docs/comments/managing-comments"},{"site":"vercel-docs","path":"/docs/comments/using-comments"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/deployments/generated-urls"},{"site":"vercel-docs","path":"/docs/deployments/sharing-deployments"},{"site":"vercel-docs","path":"/docs/draft-mode"},{"site":"vercel-docs","path":"/docs/edit-mode"},{"site":"vercel-docs","path":"/docs/flags"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/accessibility-audit-tool"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/browser-extension"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/interaction-timing-tool"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/layout-shift-tool"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/managing-toolbar"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools"},{"site":"vercel-docs","path":"/docs/cli/comments"},{"site":"vercel-docs","path":"/docs/comments"},{"site":"vercel-docs","path":"/docs/deployment-protection/protected-source-maps"},{"site":"vercel-docs","path":"/docs/deployments/sharing-deployments"},{"site":"vercel-docs","path":"/docs/draft-mode"},{"site":"vercel-docs","path":"/docs/edit-mode"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/set-up-flags-explorer"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/integrations/cms"},{"site":"vercel-docs","path":"/docs/integrations/cms/contentful"},{"site":"vercel-docs","path":"/docs/integrations/cms/dato-cms"},{"site":"vercel-docs","path":"/docs/integrations/cms/sanity"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/vercel-toolbar"},{"site":"vercel-docs","path":"/docs/microfrontends/routing"},{"site":"vercel-docs","path":"/docs/plans/hobby"},{"site":"vercel-docs","path":"/docs/products"},{"site":"vercel-docs","path":"/docs/project-configuration/general-settings"},{"site":"vercel-docs","path":"/docs/tracing"},{"site":"vercel-docs","path":"/docs/tracing/session-tracing"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/accessibility-audit-tool"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/interaction-timing-tool"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/layout-shift-tool"},{"site":"vercel-kb","path":"/kb/guide/use-feature-flags-in-fumadocs-with-the-vercel-toolbar"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-render"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-toolbar/managing-toolbar","distance":0.1176},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost/add-to-production","distance":0.1185},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost","distance":0.1794},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/vercel-toolbar","distance":0.1854},{"site":"vercel-docs","path":"/docs/vercel-toolbar/browser-extension","distance":0.1919}],"related":[{"site":"vercel-kb","path":"/kb/guide/use-feature-flags-in-fumadocs-with-the-vercel-toolbar","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank","via":"inbound"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/vercel-toolbar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments/how-comments-work","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/vercel-toolbar/accessibility-audit-tool","title":"Accessibility Audit Tool","summary":"Learn how to use the Accessibility Audit Tool to automatically check the Web Content Accessibility Guidelines 2.0 level A and AA rules.","outbound":[{"site":"vercel-docs","path":"/docs/vercel-toolbar"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/interaction-timing-tool"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/layout-shift-tool"}],"inbound":[{"site":"vercel-docs","path":"/docs/project-configuration/general-settings"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"}],"requires":[{"site":"vercel-docs","path":"/docs/vercel-toolbar"}],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-toolbar","distance":0.2449},{"site":"vercel-docs","path":"/docs/vercel-toolbar/interaction-timing-tool","distance":0.2491},{"site":"vercel-docs","path":"/docs/vercel-toolbar/managing-toolbar","distance":0.2597},{"site":"vercel-docs","path":"/docs/vercel-toolbar/layout-shift-tool","distance":0.2856},{"site":"vercel-docs","path":"/docs/vercel-toolbar/browser-extension","distance":0.3019}],"related":[{"site":"vercel-docs","path":"/docs/vercel-toolbar/managing-toolbar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/browser-extension","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/vercel-toolbar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost/add-to-production","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/security-dashboard","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/vercel-toolbar/browser-extension","title":"Browser Extensions","summary":"The browser extensions enable you to use the toolbar in production environments, take screenshots and attach them to comments, and set personal preferences for how the toolbar behaves.","outbound":[{"site":"vercel-docs","path":"/docs/vercel-toolbar/managing-toolbar"}],"inbound":[{"site":"vercel-docs","path":"/docs/vercel-toolbar"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost/add-to-production"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/managing-toolbar"}],"requires":[{"site":"vercel-docs","path":"/docs/vercel-toolbar"}],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-toolbar","distance":0.1919},{"site":"vercel-docs","path":"/docs/vercel-toolbar/managing-toolbar","distance":0.2029},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost/add-to-production","distance":0.2265},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost","distance":0.2442},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/vercel-toolbar","distance":0.2548}],"related":[{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost/add-to-production","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/vercel-toolbar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/accessibility-audit-tool","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost","title":"Add to Environments","summary":"Learn how to use the Vercel Toolbar in production and local environments.","outbound":[{"site":"vercel-docs","path":"/docs/comments/using-comments"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/draft-mode"},{"site":"vercel-docs","path":"/docs/edit-mode"},{"site":"vercel-docs","path":"/docs/flags"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost/add-to-localhost"}],"inbound":[{"site":"vercel-docs","path":"/docs/comments"},{"site":"vercel-docs","path":"/docs/comments/how-comments-work"},{"site":"vercel-docs","path":"/docs/comments/integrations"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started"},{"site":"vercel-docs","path":"/docs/microfrontends"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/vercel-toolbar"},{"site":"vercel-docs","path":"/docs/tracing/session-tracing"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/accessibility-audit-tool"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-serve-multiple-projects-under-a-single-domain"}],"requires":[{"site":"vercel-docs","path":"/docs/vercel-toolbar"}],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost/add-to-production","distance":0.1519},{"site":"vercel-docs","path":"/docs/vercel-toolbar","distance":0.1794},{"site":"vercel-docs","path":"/docs/vercel-toolbar/managing-toolbar","distance":0.1824},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/vercel-toolbar","distance":0.1968},{"site":"vercel-docs","path":"/docs/comments/how-comments-work","distance":0.2146}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-can-i-serve-multiple-projects-under-a-single-domain","via":"inbound"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/managing-toolbar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/vercel-toolbar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments/how-comments-work","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/browser-extension","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost/add-to-localhost","title":"Add to Localhost","summary":"Learn how to use the Vercel Toolbar in your local environment.","outbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/link"},{"site":"vercel-docs","path":"/docs/projects"}],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost"}],"requires":[{"site":"vercel-docs","path":"/docs/vercel-toolbar"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost"}],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost/add-to-production","distance":0.222},{"site":"vercel-docs","path":"/docs/vercel-toolbar/managing-toolbar","distance":0.2527},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost","distance":0.2532},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/vercel-toolbar","distance":0.2535},{"site":"vercel-docs","path":"/docs/microfrontends/quickstart","distance":0.2836}],"related":[{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost/add-to-production","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/managing-toolbar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/vercel-toolbar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/react-router","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost/add-to-production","title":"Add to Production","summary":"Learn how to add the Vercel Toolbar to your production environment and how your team members can use tooling to access the toolbar.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/link"},{"site":"vercel-docs","path":"/docs/comments/integrations"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/browser-extension"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/managing-toolbar"}],"inbound":[{"site":"vercel-docs","path":"/docs/comments"},{"site":"vercel-docs","path":"/docs/comments/using-comments"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit"}],"requires":[{"site":"vercel-docs","path":"/docs/vercel-toolbar"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost"}],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-toolbar/managing-toolbar","distance":0.1088},{"site":"vercel-docs","path":"/docs/vercel-toolbar","distance":0.1185},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost","distance":0.1519},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/vercel-toolbar","distance":0.1973},{"site":"vercel-docs","path":"/docs/comments/how-comments-work","distance":0.2207}],"related":[{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/vercel-toolbar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments/how-comments-work","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost/add-to-localhost","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/vercel-toolbar/interaction-timing-tool","title":"Interaction Timing Tool","summary":"The interaction timing tool allows you to inspect in detail each interaction's latency and get notified for interactions taking >200ms.","outbound":[{"site":"vercel-docs","path":"/docs/comments/using-comments"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/draft-mode"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"}],"inbound":[{"site":"vercel-docs","path":"/docs/project-configuration/general-settings"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/accessibility-audit-tool"}],"requires":[{"site":"vercel-docs","path":"/docs/vercel-toolbar"}],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-toolbar/accessibility-audit-tool","distance":0.2491},{"site":"vercel-docs","path":"/docs/vercel-toolbar","distance":0.2672},{"site":"vercel-docs","path":"/docs/vercel-toolbar/layout-shift-tool","distance":0.2852},{"site":"vercel-docs","path":"/docs/vercel-toolbar/managing-toolbar","distance":0.3179},{"site":"vercel-docs","path":"/docs/speed-insights","distance":0.3256}],"related":[{"site":"vercel-kb","path":"/kb/guide/investigate-latency-issues-and-slowness","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/accessibility-audit-tool","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/layout-shift-tool","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/managing-toolbar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost/add-to-production","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/vercel-toolbar/layout-shift-tool","title":"Layout Shift Tool","summary":"The layout shift tool gives you insight into any elements that may cause layout shifts on the page.","outbound":[{"site":"vercel-docs","path":"/docs/comments/using-comments"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/draft-mode"},{"site":"vercel-docs","path":"/docs/speed-insights/metrics"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"}],"inbound":[{"site":"vercel-docs","path":"/docs/project-configuration/general-settings"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/accessibility-audit-tool"},{"site":"vercel-kb","path":"/kb/guide/how-to-improve-core-web-vitals"}],"requires":[{"site":"vercel-docs","path":"/docs/vercel-toolbar"}],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-toolbar","distance":0.2786},{"site":"vercel-kb","path":"/kb/guide/cls-on-vercel","distance":0.2847},{"site":"vercel-docs","path":"/docs/vercel-toolbar/interaction-timing-tool","distance":0.2852},{"site":"vercel-docs","path":"/docs/vercel-toolbar/accessibility-audit-tool","distance":0.2856},{"site":"vercel-docs","path":"/docs/vercel-toolbar/managing-toolbar","distance":0.3405}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-improve-core-web-vitals","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/cls-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/interaction-timing-tool","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/accessibility-audit-tool","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/managing-toolbar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights","via":"neighbor"},{"site":"vercel-docs","path":"/docs/edit-mode","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/vercel-toolbar/managing-toolbar","title":"Managing Toolbar","summary":"Learn how to enable or disable the Vercel Toolbar for your team, project, and session.","outbound":[{"site":"vercel-docs","path":"/docs/caching/cache-control-headers"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/browser-extension"}],"inbound":[{"site":"vercel-docs","path":"/docs/comments/how-comments-work"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/browser-extension"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost/add-to-production"}],"requires":[{"site":"vercel-docs","path":"/docs/vercel-toolbar"}],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost/add-to-production","distance":0.1088},{"site":"vercel-docs","path":"/docs/vercel-toolbar","distance":0.1176},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/vercel-toolbar","distance":0.1702},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost","distance":0.1824},{"site":"vercel-docs","path":"/docs/vercel-toolbar/browser-extension","distance":0.2029}],"related":[{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost/add-to-production","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/vercel-toolbar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments/how-comments-work","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost/add-to-localhost","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/webhooks","title":"Webhooks","summary":"Learn how to set up webhooks and use them with Vercel Integrations.","outbound":[{"site":"vercel-docs","path":"/docs/headers/request-headers"},{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/create-integration"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation"},{"site":"vercel-docs","path":"/docs/webhooks/webhooks-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli/webhooks"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/headers/request-headers"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/submit-integration"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/trials"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-observability"},{"site":"vercel-docs","path":"/docs/webhooks/webhooks-api"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-run-end-to-end-tests-after-my-vercel-preview-deployment"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/webhooks/creates-a-webhook","distance":0.1951},{"site":"vercel-docs","path":"/docs/cli/webhooks","distance":0.2142},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/get-a-webhook","distance":0.2151},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/get-a-list-of-webhooks","distance":0.2359},{"site":"vercel-docs","path":"/docs/deploy-hooks","distance":0.2569}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-can-i-run-end-to-end-tests-after-my-vercel-preview-deployment","via":"inbound"},{"site":"v0","path":"/docs/api/v2/reference/webhooks/create-webhook","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/creates-a-webhook","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/webhooks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/get-a-webhook","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/get-a-list-of-webhooks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deploy-hooks","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/webhooks/webhooks-api","title":"Webhooks API Reference","summary":"Vercel Integrations allow you to subscribe to certain trigger-based events through webhooks. Learn about the supported webhook events and how to use them.","outbound":[{"site":"vercel-docs","path":"/docs/alerts"},{"site":"vercel-docs","path":"/docs/checks"},{"site":"vercel-docs","path":"/docs/checks/creating-checks"},{"site":"vercel-docs","path":"/docs/cli/promote"},{"site":"vercel-docs","path":"/docs/deployment-retention"},{"site":"vercel-docs","path":"/docs/deployments/promoting-a-deployment"},{"site":"vercel-docs","path":"/docs/headers/request-headers"},{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-docs","path":"/docs/webhooks"}],"inbound":[{"site":"vercel-docs","path":"/docs/alerts/configure-alerts"},{"site":"vercel-docs","path":"/docs/checks/creating-checks"},{"site":"vercel-docs","path":"/docs/cli/webhooks"},{"site":"vercel-docs","path":"/docs/headers/request-headers"},{"site":"vercel-docs","path":"/docs/integrations/create-integration"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/submit-integration"},{"site":"vercel-docs","path":"/docs/spend-management"},{"site":"vercel-docs","path":"/docs/webhooks"}],"requires":[{"site":"vercel-docs","path":"/docs/webhooks"}],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","distance":0.3024},{"site":"vercel-docs","path":"/docs/integrations/create-integration/deployment-integration-action","distance":0.3049},{"site":"vercel-docs","path":"/docs/instant-rollback","distance":0.3075},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-events","distance":0.3081},{"site":"vercel-docs","path":"/docs/audit-log","distance":0.3101}],"related":[{"site":"vercel-kb","path":"/kb/guide/why-aren-t-commits-triggering-deployments-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/deployment-integration-action","via":"neighbor"},{"site":"vercel-docs","path":"/docs/instant-rollback","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-events","via":"neighbor"},{"site":"vercel-docs","path":"/docs/audit-log","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/workflows","title":"Workflows","summary":"Vercel Workflows is a fully managed platform for building durable, reliable, and observable applications and AI agents with the Workflow SDK.","outbound":[{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"},{"site":"vercel-docs","path":"/docs/queues"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/workflows/concepts"},{"site":"vercel-docs","path":"/docs/workflows/pricing"},{"site":"vercel-docs","path":"/docs/workflows/python"},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agent-vercel"},{"site":"vercel-kb","path":"/kb/guide/stateful-slack-bots-with-vercel-workflow"},{"site":"workflow","path":"/docs/foundations/streaming"},{"site":"workflow","path":"/docs/getting-started"}],"inbound":[{"site":"vercel-docs","path":"/docs/eve"},{"site":"vercel-docs","path":"/docs/eve/concepts"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/products"},{"site":"vercel-docs","path":"/docs/queues"},{"site":"vercel-docs","path":"/docs/queues/concepts"},{"site":"vercel-docs","path":"/docs/queues/quickstart"},{"site":"vercel-kb","path":"/kb/guide/agent-approval-workflow-stack-guide"},{"site":"vercel-kb","path":"/kb/guide/ai-evaluation-dashboard-architecture-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk"},{"site":"vercel-kb","path":"/kb/guide/building-ai-chat-app-with-rag-and-citations-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/building-human-in-the-loop-agents-for-community-moderation-with-durable-workflows"},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/deploy-php-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/dot-net-asp-net-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/how-to-run-a-multi-step-research-agent-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/mcp-server-chatgpt-connector"},{"site":"vercel-kb","path":"/kb/guide/migrate-cloudflare-workflows-to-vercel-workflows"},{"site":"vercel-kb","path":"/kb/guide/migrate-containers-from-aws-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/rag-chatbot-production-architecture-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/serverless-functions-and-smtp"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-flask-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-h3-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/ship-a-hono-app-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/vercel-docker-python-apps"},{"site":"vercel-kb","path":"/kb/guide/vercel-kubernetes-support"},{"site":"vercel-kb","path":"/kb/guide/vercel-services-fluid-compute"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud"}],"requires":[],"neighbors":[{"site":"workflow","path":"/docs/getting-started/python","distance":0.1468},{"site":"vercel-docs","path":"/docs/workflows/python","distance":0.1472},{"site":"vercel-kb","path":"/kb/guide/stateful-slack-bots-with-vercel-workflow","distance":0.1681},{"site":"vercel-docs","path":"/docs/workflows/concepts","distance":0.172},{"site":"vercel-kb","path":"/kb/guide/migrate-cloudflare-workflows-to-vercel-workflows","distance":0.1808}],"related":[{"site":"workflow","path":"/docs/getting-started/python","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/agent-approval-workflow-stack-guide","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ai-evaluation-dashboard-architecture-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/building-ai-chat-app-with-rag-and-citations-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/building-human-in-the-loop-agents-for-community-moderation-with-durable-workflows","via":"inbound"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-cloudflare-workflows","via":"neighbor"},{"site":"workflow","path":"/docs/observability","via":"neighbor"},{"site":"workflow","path":"/docs/deploying","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/workflows","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve","via":"inbound"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/workflows/concepts","title":"Concepts","summary":"Learn how workflows, steps, sleeps, and hooks work together to build durable applications.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/workflows"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/how-to-run-a-multi-step-research-agent-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-cloudflare-workflows-to-vercel-workflows"}],"requires":[{"site":"vercel-docs","path":"/docs/workflows"}],"neighbors":[{"site":"vercel-docs","path":"/docs/workflows/python","distance":0.1623},{"site":"vercel-docs","path":"/docs/workflows","distance":0.172},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","distance":0.1826},{"site":"vercel-kb","path":"/kb/guide/stateful-slack-bots-with-vercel-workflow","distance":0.197},{"site":"workflow","path":"/docs/foundations/hooks","distance":0.2085}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-run-a-multi-step-research-agent-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/migrate-cloudflare-workflows-to-vercel-workflows","via":"inbound"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/stateful-slack-bots-with-vercel-workflow","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/hooks","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-a-slack-agent-with-durable-workflows","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/versioning","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/idempotency","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows/python","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/workflows/pricing","title":"Pricing and Limits","summary":"Understand how Vercel Workflows billing works and the limits that apply to runs, streams, and platform resources.","outbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/queues/pricing"},{"site":"workflow","path":"/docs/foundations/starting-workflows"},{"site":"workflow","path":"/docs/how-it-works/event-sourcing"}],"inbound":[{"site":"vercel-docs","path":"/docs/eve/pricing"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/plans/hobby"},{"site":"vercel-docs","path":"/docs/workflows"},{"site":"vercel-kb","path":"/kb/guide/agent-approval-workflow-stack-guide"},{"site":"vercel-kb","path":"/kb/guide/migrate-cloudflare-workflows-to-vercel-workflows"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-aws-agentcore"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-aws-step-functions"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-cloudflare-workflows"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-inngest"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-temporal"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-trigger-dev"}],"requires":[{"site":"vercel-docs","path":"/docs/workflows"}],"neighbors":[{"site":"vercel-docs","path":"/docs/workflows","distance":0.2139},{"site":"vercel-docs","path":"/docs/limits","distance":0.2154},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing","distance":0.2556},{"site":"vercel-docs","path":"/docs/eve/pricing","distance":0.2768},{"site":"vercel-docs","path":"/docs/queues/pricing","distance":0.2854}],"related":[{"site":"vercel-kb","path":"/kb/guide/agent-approval-workflow-stack-guide","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/migrate-cloudflare-workflows-to-vercel-workflows","via":"inbound"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-aws-agentcore","via":"inbound"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-aws-step-functions","via":"inbound"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-cloudflare-workflows","via":"inbound"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-inngest","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud","via":"neighbor"},{"site":"vercel-docs","path":"/docs/limits","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/workflows/python","title":"Python","summary":"Build durable workflows and AI agents in Python with the Vercel SDK.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/workflows"},{"site":"workflow","path":"/docs/getting-started/python"}],"requires":[{"site":"vercel-docs","path":"/docs/workflows"}],"neighbors":[{"site":"workflow","path":"/docs/getting-started/python","distance":0.0818},{"site":"vercel-docs","path":"/docs/workflows","distance":0.1472},{"site":"vercel-docs","path":"/docs/workflows/concepts","distance":0.1623},{"site":"vercel-kb","path":"/kb/guide/stateful-slack-bots-with-vercel-workflow","distance":0.2309},{"site":"vercel-kb","path":"/kb/guide/human-in-the-loop-with-chat-sdk-and-workflow-sdk","distance":0.2516}],"related":[{"site":"workflow","path":"/docs/getting-started/python","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/stateful-slack-bots-with-vercel-workflow","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/human-in-the-loop-with-chat-sdk-and-workflow-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","via":"neighbor"},{"site":"workflow","path":"/docs/ai","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-a-slack-agent-with-durable-workflows","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/versioning","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/next","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/workflows","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/a-record-and-caa-with-vercel","title":"Can I use my domain on Vercel with A records?","summary":"Point your apex domain to Vercel with an A record \\(76.76.21.21 or your domain card's value\\), pair it with a www CNAME, and get SSL automatically.","outbound":[{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain"},{"site":"vercel-docs","path":"/docs/domains/troubleshooting"},{"site":"vercel-docs","path":"/docs/domains/working-with-dns"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting"},{"site":"vercel-docs","path":"/docs/domains/working-with-ssl"},{"site":"vercel-kb","path":"/kb/guide/resolve-err-too-many-redirects-when-using-cloudflare-proxy-with-vercel"}],"inbound":[{"site":"vercel-docs","path":"/docs/domains/pre-generating-ssl-certs"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/domains/troubleshooting","distance":0.139},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records","distance":0.1675},{"site":"vercel-kb","path":"/kb/guide/domain-not-generating-ssl-certificate","distance":0.2049},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","distance":0.2132},{"site":"vercel-kb","path":"/kb/guide/why-is-my-deployed-project-giving-404","distance":0.2446}],"related":[{"site":"vercel-docs","path":"/docs/domains/pre-generating-ssl-certs","via":"inbound"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/domain-not-generating-ssl-certificate","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-deployed-project-giving-404","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/wildcard-domain-without-vercel-nameservers","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/ab-testing-on-vercel","title":"A/B Testing on Vercel","summary":"Learn best practices for A/B testing on Vercel","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/incremental-migration"},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/run-ab-test","distance":0.296},{"site":"vercel-kb","path":"/kb/guide/how-to-integrate-optimizely-feature-experimentation-next-vercel","distance":0.3321},{"site":"vercel-kb","path":"/kb/guide/how-to-effectively-load-test-your-vercel-application","distance":0.3397},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-next.js-sitecore-jss","distance":0.3577},{"site":"vercel-kb","path":"/kb/guide/monitor-frontend-performance-with-debugbear-and-vercel","distance":0.3593}],"related":[{"site":"vercel-docs","path":"/docs/incremental-migration","via":"inbound"},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes","via":"inbound"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/run-ab-test","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability/insights","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-integrate-optimizely-feature-experimentation-next-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/monitor-frontend-performance-with-debugbear-and-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-s-vercel-s-policy-regarding-load-testing-deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-a-headless-cms-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/access-nextjs-localhost-https-certificate-self-signed","title":"How can I run Next.js on localhost through HTTPS?","summary":"Learn how to create a self-signed certificate for use with local Next.js development.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deploying-locally-built-nextjs","distance":0.3349},{"site":"vercel-docs","path":"/docs/domains/working-with-ssl","distance":0.3352},{"site":"vercel-docs","path":"/docs/domains/custom-ssl-certificate","distance":0.3704},{"site":"vercel-docs","path":"/docs/cdn-security/encryption","distance":0.3737},{"site":"vercel-docs","path":"/docs/domains/pre-generating-ssl-certs","distance":0.378}],"related":[{"site":"vercel-docs","path":"/docs/domains/working-with-ssl","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/custom-ssl-certificate","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security/encryption","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/pre-generating-ssl-certs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/dev","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-locally-built-nextjs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-express-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/resolve-err-ssl-protocol-error-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/complete-guide-authentication-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/accessing-vercel-hosted-sites-from-mainland-china","title":"Accessing Vercel-hosted sites from mainland China","summary":"Understand why Vercel-hosted sites may be slow or inaccessible in mainland China, and explore steps to improve performance for users in the region","outbound":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain"},{"site":"vercel-docs","path":"/docs/security/reverse-proxy"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-troubleshoot-stale-content-returned-from-the-edge-network-when-using-an-external-proxy-or-cdn","distance":0.3071},{"site":"vercel-docs","path":"/docs/regions","distance":0.3167},{"site":"vercel-kb","path":"/kb/guide/how-to-resolve-ip-blocking-issues","distance":0.3196},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-connectivity-issues","distance":0.328},{"site":"vercel-kb","path":"/kb/guide/resolve-err-ssl-protocol-error-with-vercel","distance":0.3281}],"related":[{"site":"vercel-docs","path":"/docs/regions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-troubleshoot-stale-content-returned-from-the-edge-network-when-using-an-external-proxy-or-cdn","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-resolve-ip-blocking-issues","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-connectivity-issues","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/resolve-err-ssl-protocol-error-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/cloudflare-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/add-auth-to-nextjs-with-magic","title":"Add Auth to a Next.js Site with Magic.link","summary":"Learn how to add user authentication to a Next.js site using Magic.link.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"}],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/authentication","distance":0.3604},{"site":"nextjs","path":"/docs/pages/guides/authentication","distance":0.3628},{"site":"vercel-kb","path":"/kb/guide/connect-next-js-to-amazon-aurora-postgresql-using-vercel-marketplace","distance":0.3865},{"site":"vercel-kb","path":"/kb/guide/nextjs-prisma-postgres","distance":0.3928},{"site":"vercel-docs","path":"/docs/analytics/quickstart","distance":0.4001}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"inbound"},{"site":"nextjs","path":"/docs/app/guides/authentication","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/botid/get-started","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/manage-from-dashboard","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/connect-next-js-to-amazon-aurora-postgresql-using-vercel-marketplace","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/application-authentication-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/complete-guide-authentication-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/openai-function-calling","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/running-ai-generated-code-sandbox","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/add-rate-limiting-vercel","title":"Add Rate Limiting with Vercel","summary":"Learn how to implement rate limiting with Vercel","outbound":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting-sdk"}],"inbound":[{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting-sdk","distance":0.144},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting","distance":0.1459},{"site":"vercel-kb","path":"/kb/guide/securing-ai-app-rate-limiting","distance":0.1481},{"site":"vercel-kb","path":"/kb/guide/limit-abuse-with-rate-limiting","distance":0.1732},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","distance":0.2605}],"related":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation","via":"inbound"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/securing-ai-app-rate-limiting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/usage-and-pricing","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/limit-abuse-with-rate-limiting","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/add-response-header","title":"Adding a response header","summary":"Learn how to add a response header in your Middleware.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions/next-response"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/routing-middleware/api"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/modify-request-headers","distance":0.152},{"site":"vercel-docs","path":"/docs/routing-middleware/getting-started","distance":0.3068},{"site":"vercel-kb","path":"/kb/guide/rendering-content-based-on-device","distance":0.3379},{"site":"vercel-docs","path":"/docs/routing-middleware","distance":0.3404},{"site":"vercel-kb","path":"/kb/guide/filter-query-parameters","distance":0.3464}],"related":[{"site":"vercel-kb","path":"/kb/guide/modify-request-headers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing-middleware/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/cache-control-headers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/headers/response-headers","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-response","via":"neighbor"},{"site":"vercel-docs","path":"/docs/headers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/rendering-content-based-on-device","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/filter-query-parameters","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/use-crypto-web-api","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-configure-the-cache-control-response-header-in-vercel-projects","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/add-structured-application-logs-to-vercel-functions","title":"Add structured application logs to Vercel Functions","summary":"Learn how to add structured application logs to Vercel Functions to help troubleshoot function issues in real time.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/logging"},{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/drains/reference/traces"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/flags"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference"},{"site":"vercel-docs","path":"/docs/logs/runtime"},{"site":"vercel-docs","path":"/docs/tracing"},{"site":"vercel-docs","path":"/docs/tracing/instrumentation"},{"site":"vercel-docs","path":"/docs/tracing/session-tracing"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/logs/runtime","distance":0.2284},{"site":"vercel-docs","path":"/docs/functions/logs","distance":0.2485},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/feature-flag","distance":0.2747},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard","distance":0.2829},{"site":"vercel-docs","path":"/docs/logs","distance":0.2831}],"related":[{"site":"vercel-docs","path":"/docs/functions/logs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/feature-flag","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard","via":"neighbor"},{"site":"vercel-docs","path":"/docs/logs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/debug-routing-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/adding-keyboard-shortcuts-to-react-apps-with-tanstack-hotkeys","title":"Adding keyboard shortcuts to React apps with TanStack Hotkeys","summary":"Add cross-platform keyboard shortcuts to your React app with TanStack Hotkeys. Install, register, scope, and display shortcuts with platform-aware labels.","outbound":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/tanstack-start"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/tanstack-intent-vs-skills"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel","distance":0.3138},{"site":"vercel-kb","path":"/kb/guide/using-tanstack-intent-to-ship-and-consume-agent-skills","distance":0.3398},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/tanstack-start","distance":0.3454},{"site":"vercel-kb","path":"/kb/guide/tanstack-intent-vs-skills","distance":0.3742},{"site":"vercel-docs","path":"/docs/frameworks/frontend/react-router","distance":0.3795}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/frontend/react-router","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/packages/react","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/local-development","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/tanstack-start","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-tanstack-intent-to-ship-and-consume-agent-skills","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/agent-approval-workflow-stack-guide","title":"Durable agent approval workflows on Vercel","summary":"How enterprise architects choose a stack and decide where to run durable, human-in-the-loop agent approval workflows on Vercel.","outbound":[{"site":"ai-sdk","path":"/docs/agents/workflow-agent"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-docs","path":"/docs/saml"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/workflows"},{"site":"vercel-docs","path":"/docs/workflows/pricing"},{"site":"vercel-kb","path":"/kb/guide/what-is-workflowagent"},{"site":"workflow","path":"/docs/api-reference/workflow/sleep"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-aws-step-functions"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-temporal"},{"site":"workflow","path":"/docs/foundations/errors-and-retries"},{"site":"workflow","path":"/docs/foundations/hooks"},{"site":"workflow","path":"/docs/foundations/serialization"}],"inbound":[],"requires":[],"neighbors":[{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-temporal","distance":0.2657},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud","distance":0.2728},{"site":"vercel-kb","path":"/kb/guide/building-ai-chat-app-with-rag-and-citations-on-vercel","distance":0.2787},{"site":"vercel-kb","path":"/kb/guide/what-is-workflowagent","distance":0.2816},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","distance":0.285}],"related":[{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-aws-agentcore","via":"neighbor"},{"site":"workflow","path":"/docs/comparisons","via":"neighbor"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-cloudflare-workflows","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-ai-chat-app-with-rag-and-citations-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/durableagent-to-workflowagent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-cloudflare-workflows-to-vercel-workflows","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/agent-plugins","title":"The Complete Guide to Agent Plugins","summary":"Package Agent Skills and MCP servers into portable plugins that work across compatible AI agent clients with the Agent Plugins specification.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","distance":0.2895},{"site":"ai-sdk","path":"/cookbook/guides/agent-skills","distance":0.2955},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin","distance":0.3136},{"site":"eve","path":"/docs/skills","distance":0.3479},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-skills","distance":0.3504}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources","via":"inbound"},{"site":"ai-sdk","path":"/cookbook/guides/agent-skills","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin","via":"neighbor"},{"site":"eve","path":"/docs/skills","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started/extending-with-agents","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/ai-agents","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","via":"neighbor"},{"site":"eve","path":"/docs/extensions","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/make-your-documentation-readable-by-ai-agents","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/agent-readability-spec","title":"Agent Readability: A Specification for AI-Optimized Websites","summary":"When an agent visits your site, it needs to quickly find, read, and understand your pages. Sites that are easy for agents to navigate get cited more often, surface in more answers, and reach a wider audience.","outbound":[],"inbound":[{"site":"vercel-kb","path":"/kb/guide/make-your-documentation-readable-by-ai-agents"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/make-your-documentation-readable-by-ai-agents","distance":0.1239},{"site":"vercel-docs","path":"/docs/agent-resources","distance":0.2216},{"site":"vercel-shop","path":"/docs/anatomy/aeo-geo","distance":0.2378},{"site":"vercel-docs","path":"/docs/agent-resources/markdown-access","distance":0.2578},{"site":"nextjs","path":"/docs/app/guides/ai-agents","distance":0.2838}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/aeo-geo","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/markdown-access","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/make-your-documentation-readable-by-ai-agents","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/ai-agents","via":"neighbor"},{"site":"nextjs","path":"/docs/community/contribution-guide","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started/extending-with-agents","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/robots","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","title":"Agent Skills: Creating, Installing, and Sharing Reusable Agent Context","summary":"This guide will cover what skills are, how to create custom skills for yourself and your team, and how to publish them to the community.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/skills","distance":0.1677},{"site":"eve","path":"/docs/skills","distance":0.172},{"site":"ai-sdk","path":"/cookbook/guides/agent-skills","distance":0.1733},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-skills","distance":0.1846},{"site":"vercel-kb","path":"/kb/guide/tanstack-intent-vs-skills","distance":0.2079}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/skills","via":"neighbor"},{"site":"eve","path":"/docs/skills","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/agent-skills","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started/extending-with-agents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/skills","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources","via":"neighbor"},{"site":"v0","path":"/docs/design-systems-2","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-skill-uploads","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/ai-agents","title":"AI Agents on Vercel","summary":"This guide provides an overview of how to build and deploy AI agents on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/deployments/claim-deployments"},{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","distance":0.2269},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","distance":0.2271},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp","distance":0.2277},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk","distance":0.23},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-agents","distance":0.2419}],"related":[{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-agents","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/ai-evaluation-dashboard-architecture-on-vercel","title":"How to architect an AI evaluation dashboard on Vercel","summary":"Map eval orchestration, traces, and run storage to AI Gateway, Observability, and Marketplace Postgres, and learn when self-hosted LiteLLM or Langfuse fits better.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/api-keys"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/model-fallbacks"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/custom-reporting"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/observability"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/zdr"},{"site":"vercel-docs","path":"/docs/ai-sdk"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"},{"site":"vercel-docs","path":"/docs/queues"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/workflows"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel","distance":0.2551},{"site":"vercel-kb","path":"/kb/guide/how-to-build-your-own-ai-model-router","distance":0.2644},{"site":"vercel-kb","path":"/kb/guide/building-ai-chat-app-with-rag-and-citations-on-vercel","distance":0.2648},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify","distance":0.2703},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","distance":0.2704}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-your-own-ai-model-router","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-ai-chat-app-with-rag-and-citations-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","title":"Build AI agents with AI Gateway and AI SDK","summary":"Build AI agents on Vercel with AI Gateway and AI SDK, then make them reliable, capable, and durable with Sandbox, Chat SDK, Vercel Connect, and Workflow.","outbound":[{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-6-0"},{"site":"chat-sdk","path":"/docs"},{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/oidc"},{"site":"vercel-docs","path":"/docs/workflows"},{"site":"vercel-kb","path":"/kb/guide/how-to-execute-ai-generated-code-safely"},{"site":"vercel-kb","path":"/kb/guide/vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/what-is-workflowagent"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/how-to-run-a-multi-step-research-agent-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/python-ai-sdk-vercel-sandbox"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","distance":0.1832},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk","distance":0.1929},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel","distance":0.1938},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect","distance":0.197},{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect","distance":0.2041}],"related":[{"site":"workflow","path":"/docs/ai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-an-agent-with-vercel-and-flue","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/ai-powered-article-embeddings-with-chroma-and-gpt-4","title":"Building AI-powered Article Embeddings with Chroma and GPT-4","summary":"This guide provides step-by-step instructions on using Chroma and GPT-4 to build AI-powered article embeddings for tasks like similarity-based search and recommendation systems.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/cohere-nextjs-vercel-ai-sdk","distance":0.316},{"site":"vercel-kb","path":"/kb/guide/ml-models-hugging-face","distance":0.3604},{"site":"vercel-kb","path":"/kb/guide/deploying-puppeteer-with-nextjs-on-vercel","distance":0.3641},{"site":"vercel-kb","path":"/kb/guide/nextjs-langchain-vercel-ai","distance":0.3656},{"site":"vercel-kb","path":"/kb/guide/deploying-hexo-with-vercel","distance":0.3701}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/langchain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/cohere-nextjs-vercel-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ml-models-hugging-face","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-hexo-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-hugo-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-file-uploads","title":"Upload provider files with AI SDK","summary":"Use uploadFile in the AI SDK to upload an image, PDF, or document to a provider, get a ProviderReference, and reference it in generateText and streamText messages, including across multiple providers.","outbound":[{"site":"ai-sdk","path":"/docs/foundations/prompts"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/file-uploads","distance":0.1201},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/upload-file","distance":0.141},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/upload-skill","distance":0.3013},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-skill-uploads","distance":0.3161},{"site":"ai-sdk","path":"/docs/ai-sdk-core/skill-uploads","distance":0.3177}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/file-uploads","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/upload-file","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/upload-skill","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/skill-uploads","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers","via":"neighbor"},{"site":"chat-sdk","path":"/docs/files","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/advanced","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-skill-uploads","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-mcp-apps","title":"Add MCP Apps to your AI SDK application","summary":"Build an MCP Apps host with the AI SDK using @ai-sdk/mcp and @ai-sdk/react to filter model-visible tools, read ui:// resources, and render interactive tool UIs in a sandboxed iframe with experimental_MCPAppRenderer.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-tools"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-apps","distance":0.0555},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/mcp-app-renderer","distance":0.1986},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/mcp-apps","distance":0.2183},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","distance":0.2553},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-mcp-server-with-nuxt","distance":0.2642}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-apps","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/mcp-app-renderer","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/mcp-apps","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/mcp-tools","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/mcp","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/mcp-tools","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp","via":"neighbor"},{"site":"eve","path":"/docs/connections/mcp","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-mcp-server-with-nuxt","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/mcp-server-with-weather-tool-express","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-create-a-contentful-asset-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-runtime-and-tool-context","title":"Pass state to AI SDK tools and agents with context","summary":"Use runtimeContext, toolsContext, and contextSchema in the AI SDK to pass tenant data, credentials, and other server-side state through a generation or agent loop without putting it in the prompt.","outbound":[{"site":"ai-sdk","path":"/docs/agents/building-agents"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/telemetry"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/runtime-and-tool-context","distance":0.0832},{"site":"eve","path":"/docs/guides/session-context","distance":0.2956},{"site":"ai-sdk","path":"/docs/agents/overview","distance":0.2957},{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.3133},{"site":"ai-sdk","path":"/docs/agents/building-agents","distance":0.3258}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/runtime-and-tool-context","via":"neighbor"},{"site":"eve","path":"/docs/guides/session-context","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"},{"site":"eve","path":"/docs/tools","via":"neighbor"},{"site":"eve","path":"/docs/concepts/context-control","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/track-agent-token-usage","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","via":"neighbor"},{"site":"eve","path":"/docs/reference/typescript-api","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/examples/ai-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-skill-uploads","title":"Add skills to your AI SDK agents","summary":"Use uploadSkill and provider references in the AI SDK to bundle a SKILL.md and supporting files, then attach the skill to generateText, streamText, or a ToolLoopAgent call on Anthropic or OpenAI.","outbound":[{"site":"ai-sdk","path":"/docs/agents/building-agents"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/skill-uploads","distance":0.1254},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/upload-skill","distance":0.1802},{"site":"ai-sdk","path":"/cookbook/guides/agent-skills","distance":0.2183},{"site":"eve","path":"/docs/skills","distance":0.2474},{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","distance":0.2529}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/skill-uploads","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/upload-skill","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/agent-skills","via":"neighbor"},{"site":"eve","path":"/docs/skills","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/skills","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/coding-agents","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/skills","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-file-uploads","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-terminal-ui","title":"Run your AI SDK agent in the terminal","summary":"Use the @ai-sdk/tui package and runAgentTUI to run a ToolLoopAgent in an interactive terminal, with tool cards, reasoning, response statistics, and tool approval prompts.","outbound":[{"site":"ai-sdk","path":"/docs/agents/building-agents"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/agents/terminal-ui","distance":0.068},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-tui/run-agent-tui","distance":0.1393},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-tui","distance":0.2183},{"site":"ai-sdk","path":"/docs/agents/overview","distance":0.236},{"site":"ai-sdk","path":"/docs/agents/building-agents","distance":0.2487}],"related":[{"site":"ai-sdk","path":"/docs/agents/terminal-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-tui/run-agent-tui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-tui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/examples/ai-tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/python-ai-sdk-vercel-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","title":"Generate videos with AI SDK","summary":"Use experimental_generateVideo in the AI SDK to generate videos from a text prompt or an image, set aspect ratio, resolution, duration, FPS, and seed, and handle long-running generation with timeouts and polling.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/image-generation"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-video"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fal"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","distance":0.1161},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/video","distance":0.1537},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-video","distance":0.2356},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk","distance":0.2367},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/text-to-video","distance":0.2385}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/video","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/text-to-video","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/image","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/bytedance","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/an-introduction-to-evals","title":"An Introduction to Evals","summary":"Evaluations test model and agent outputs to ensure they meet the standards and requirements you specify.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/evals/overview","distance":0.2396},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","distance":0.2809},{"site":"eve","path":"/docs/evals/running","distance":0.2811},{"site":"eve","path":"/docs/evals/cases","distance":0.2872},{"site":"vercel-kb","path":"/kb/guide/ai-evaluation-dashboard-architecture-on-vercel","distance":0.2905}],"related":[{"site":"eve","path":"/docs/evals/overview","via":"neighbor"},{"site":"eve","path":"/docs/evals/running","via":"neighbor"},{"site":"eve","path":"/docs/evals/cases","via":"neighbor"},{"site":"eve","path":"/docs/evals/reporters","via":"neighbor"},{"site":"eve","path":"/docs/evals/judge","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/confident-ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-evaluate-a-rapid-ai-prototyping-tool","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/application-authentication-on-vercel","title":"Application authentication on Vercel","summary":"Secure application authentication on Vercel across layers: proxy checks, the Data Access Layer, PPR-safe rendering, and platform controls like Firewall and BotID.","outbound":[{"site":"nextjs","path":"/docs/app/guides/authentication"},{"site":"nextjs","path":"/docs/app/guides/content-security-policy"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"},{"site":"vercel-docs","path":"/docs/botid"},{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/security/compliance"},{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-kb","path":"/kb/guide/is-vercel-soc-2-compliant"},{"site":"vercel-kb","path":"/kb/guide/protect-ai-endpoints-with-vercel-botid"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/complete-guide-authentication-vercel","distance":0.212},{"site":"vercel-kb","path":"/kb/guide/how-to-enable-cors","distance":0.2471},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-password-protection-to-my-vercel-deployment","distance":0.2494},{"site":"vercel-kb","path":"/kb/guide/vercel-passport-nextjs","distance":0.2756},{"site":"vercel-docs","path":"/docs/deployment-protection/automated-agent-access","distance":0.2785}],"related":[{"site":"vercel-docs","path":"/docs/deployment-protection/automated-agent-access","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","via":"neighbor"},{"site":"eve","path":"/docs/guides/auth-and-route-protection","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/complete-guide-authentication-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-enable-cors","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-passport-nextjs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/are-vercel-preview-deployment-indexed-by-search-engines","title":"Are Vercel Preview Deployments indexed by search engines?","summary":"Vercel Preview Deployments aren't indexed by default. Learn how the noindex header works, how to confirm it, and the custom domain exception.","outbound":[{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/deployments/preview-deployment-suffix"},{"site":"vercel-docs","path":"/docs/deployments/promoting-a-deployment"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/assign-domain-to-a-git-branch"},{"site":"vercel-docs","path":"/docs/environment-variables/system-environment-variables"},{"site":"vercel-docs","path":"/docs/headers/response-headers"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-kb","path":"/kb/guide/avoiding-duplicate-content-with-vercel-app-urls"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/avoiding-duplicate-content-with-vercel-app-urls","distance":0.1775},{"site":"vercel-docs","path":"/docs/deployments/preview-deployment-suffix","distance":0.241},{"site":"vercel-kb","path":"/kb/guide/why-do-my-vercel-deployments-have-multiple-domains","distance":0.2412},{"site":"vercel-docs","path":"/docs/deployments/generated-urls","distance":0.2491},{"site":"vercel-docs","path":"/docs/deployments/promoting-a-deployment","distance":0.293}],"related":[{"site":"vercel-docs","path":"/docs/deployments/generated-urls","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/promote-preview-to-production","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/preview-url-prefixes","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-do-my-vercel-deployments-have-multiple-domains","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/full-stack-preview-deployments-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/preview-deployment-suffix-without-vercel-nameservers","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/astro-on-vercel-vs-webflow-cloud","title":"Astro on Vercel vs Webflow Cloud","summary":"Compare running Astro on Vercel Functions with Fluid compute against Webflow Cloud on Cloudflare Workers. Learn how Astro feature support, runtimes, storage, pricing, and developer experience differ so you can choose the right platform.","outbound":[{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/astro"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/marketplace-storage"},{"site":"vercel-docs","path":"/docs/queues"},{"site":"vercel-docs","path":"/docs/speed-insights"},{"site":"vercel-docs","path":"/docs/vercel-blob"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-webflow-cloud","distance":0.1113},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud","distance":0.1198},{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-cloudflare","distance":0.1246},{"site":"vercel-kb","path":"/kb/guide/nextjs-on-vercel-vs-netlify","distance":0.1735},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","distance":0.2123}],"related":[{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-webflow-cloud","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/what-is-compute","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-cloudflare","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/nextjs-on-vercel-vs-netlify","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/avoiding-duplicate-content-with-vercel-app-urls","title":"Avoiding duplicate-content SEO with vercel.app URLs and custom domains","summary":"Discover why search engines may treat your vercel.app URL and custom domain as separate pages, and how to consolidate ranking signals and protect your SEO.","outbound":[{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/are-vercel-preview-deployment-indexed-by-search-engines"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/are-vercel-preview-deployment-indexed-by-search-engines","distance":0.1775},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting","distance":0.2407},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","distance":0.2421},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","distance":0.2587},{"site":"vercel-kb","path":"/kb/guide/why-do-my-vercel-deployments-have-multiple-domains","distance":0.2598}],"related":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/incremental-migration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/are-vercel-preview-deployment-indexed-by-search-engines","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-serve-multiple-projects-under-a-single-domain","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/nextjs-multi-tenant-application","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/best-practices-for-hosting-videos-on-vercel-nextjs-mp4-gif","title":"What are the best practices for hosting videos on Vercel?","summary":"Learn the ideal solutions for using video files like .mp4 and .gif on Vercel to prevent excess bandwidth consumption.","outbound":[{"site":"vercel-docs","path":"/docs/vercel-blob"}],"inbound":[],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/videos","distance":0.2326},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-aws-s3-with-vercel","distance":0.2734},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nextjs","distance":0.2833},{"site":"vercel-docs","path":"/docs/image-optimization","distance":0.2851},{"site":"vercel-docs","path":"/docs/image-optimization/quickstart","distance":0.2919}],"related":[{"site":"nextjs","path":"/docs/app/guides/videos","via":"neighbor"},{"site":"vercel-docs","path":"/docs/image-optimization","via":"neighbor"},{"site":"vercel-docs","path":"/docs/image-optimization/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/video","via":"neighbor"},{"site":"vercel-docs","path":"/docs/storage","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-aws-s3-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nextjs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-bypass-vercel-body-size-limit-serverless-functions","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/black-friday-preparation","title":"How to prepare your storefront for Black Friday traffic","summary":"A practical checklist for keeping your storefront fast and your checkout path healthy through Black Friday and Cyber Monday traffic, from load testing to instant rollback.","outbound":[{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/bot-management"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/instant-rollback"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/speed-insights"},{"site":"vercel-docs","path":"/docs/vercel-firewall"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-effectively-load-test-your-vercel-application","distance":0.299},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime","distance":0.3305},{"site":"vercel-docs","path":"/docs/production-checklist","distance":0.3469},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","distance":0.3489},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","distance":0.3489}],"related":[{"site":"vercel-docs","path":"/docs/production-checklist","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/incremental-migration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/compliance","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-effectively-load-test-your-vercel-application","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/block-php-requests","title":"Block PHP requests","summary":"Learn how to block traffic looking for .php vulnerabilies.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/suspicious-traffic-in-specific-countries","distance":0.2484},{"site":"vercel-kb","path":"/kb/guide/traffic-spikes","distance":0.2614},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/ip-blocking","distance":0.2765},{"site":"vercel-kb","path":"/kb/guide/deny-non-browser-traffic-or-blocklisted-asns","distance":0.2863},{"site":"vercel-kb","path":"/kb/guide/deny-traffic-from-a-set-of-ip-addresses","distance":0.2872}],"related":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples","via":"inbound"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/ip-blocking","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/suspicious-traffic-in-specific-countries","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/traffic-spikes","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/limit-abuse-with-rate-limiting","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/emergency-redirect","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/blue_green_deployments_on_vercel","title":"Implementing Blue-Green Deployments on Vercel","summary":"This guide outlines how to implement blue-green deployments on Vercel, leveraging GitHub Actions for seamless and controlled application updates with minimal downtime.","outbound":[{"site":"vercel-docs","path":"/docs/deployments/managing-deployments"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/global-config/migration-guide"},{"site":"vercel-docs","path":"/docs/rolling-releases"}],"inbound":[{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/implementing_canary_deployments_on_vercel","distance":0.1192},{"site":"vercel-kb","path":"/kb/guide/how-to-gradually-roll-out-new-versions-of-your-backend","distance":0.2424},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","distance":0.244},{"site":"vercel-docs","path":"/docs/deployments","distance":0.2486},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments","distance":0.2567}],"related":[{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes","via":"inbound"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/implementing_canary_deployments_on_vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/incremental-migration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/promoting-a-deployment","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-gradually-roll-out-new-versions-of-your-backend","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-circleci-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/bolt-vercel-drop","title":"Deploy a Bolt.new app with Vercel Drop","summary":"Export your Bolt.new project as a .zip and deploy it to Vercel with Vercel Drop. Vercel detects the framework and builds it for you.","outbound":[{"site":"vercel-docs","path":"/docs/deployments/managing-deployments"},{"site":"vercel-docs","path":"/docs/drop"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite"},{"site":"vercel-docs","path":"/docs/git"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/vercel-drop-vs-cloudflare-direct-upload"},{"site":"vercel-kb","path":"/kb/guide/vercel-drop-vs-netlify-drop"},{"site":"vercel-kb","path":"/kb/guide/webflow-vercel-drop"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/drop","distance":0.1974},{"site":"vercel-kb","path":"/kb/guide/vercel-drop-vs-netlify-drop","distance":0.2145},{"site":"vercel-kb","path":"/kb/guide/webflow-vercel-drop","distance":0.2344},{"site":"vercel-docs","path":"/docs/deployments","distance":0.2385},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","distance":0.2403}],"related":[{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-drop-vs-netlify-drop","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/webflow-vercel-drop","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-nitro-starter-template","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/branch-variables-and-domains-not-linked-to-cli-deployments","title":"Why are my branch specific variables and domains not linked to my CLI deployments?","summary":"How to link CLI deployments to the correct branch for use with custom environments and branch specific domains and environment variables","outbound":[{"site":"vercel-docs","path":"/docs/cli/deploy"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/set-up-a-staging-environment-on-vercel","distance":0.2781},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-gitlab-pipelines-with-vercel","distance":0.2784},{"site":"vercel-kb","path":"/kb/guide/why-do-my-vercel-deployments-have-multiple-domains","distance":0.2887},{"site":"vercel-docs","path":"/docs/git","distance":0.292},{"site":"vercel-docs","path":"/docs/cli/project-linking","distance":0.2927}],"related":[{"site":"vercel-docs","path":"/docs/git","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/project-linking","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/assign-domain-to-a-git-branch","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/set-up-a-staging-environment-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-gitlab-pipelines-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-do-my-vercel-deployments-have-multiple-domains","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-i-use-a-non-default-branch-for-production","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/build-a-browser-agent","title":"How to build a browser agent that works behind a login","summary":"Build a browser agent with eve, Vercel Connect, and KERNEL managed auth that signs a user in through a human-in-the-loop handoff and completes tasks behind a login without exposing credentials.","outbound":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/connect"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","distance":0.19},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","distance":0.2038},{"site":"eve","path":"/docs/tutorial/ship-it","distance":0.2143},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","distance":0.2222},{"site":"vercel-docs","path":"/docs/eve/concepts","distance":0.2304}],"related":[{"site":"eve","path":"/docs/tutorial/ship-it","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","via":"neighbor"},{"site":"eve","path":"/docs/connections","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/nextjs","via":"neighbor"},{"site":"eve","path":"/docs/concepts/security-model","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/give-eve-agent-secure-access-to-aws-rds-database","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-typefully-social-media-agent","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect","title":"Build your own Slackbot with Vercel Connect","summary":"Learn how to build your very own Slackbot with Chat SDK and AI SDK. Vercel Connect supplies runtime Slack tokens and forwards triggers, so you never store a long-lived bot token.","outbound":[{"site":"ai-sdk","path":"/docs/agents/building-agents"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway"},{"site":"chat-sdk","path":"/docs/actions"},{"site":"chat-sdk","path":"/docs/cards"},{"site":"chat-sdk","path":"/docs/create-chat-sdk"},{"site":"chat-sdk","path":"/docs/streaming"},{"site":"chat-sdk","path":"/docs/vercel-connect"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/connect/legal"},{"site":"vercel-docs","path":"/docs/connect/quickstart"},{"site":"vercel-docs","path":"/docs/connect/ts-sdk-reference"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/slack-bot-vercel-blob","distance":0.114},{"site":"vercel-kb","path":"/kb/guide/linear-agent-vercel-connect","distance":0.133},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","distance":0.1509},{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect","distance":0.1554},{"site":"ai-sdk","path":"/cookbook/guides/slackbot","distance":0.1899}],"related":[{"site":"ai-sdk","path":"/cookbook/guides/slackbot","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/slack-bot-vercel-blob","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/linear-agent-vercel-connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-slack-bot-with-next-js-and-redis","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/build-ai-agent-weather-api","title":"Build an AI Chat Agent with Weather API Tool Calling","summary":"Build an intelligent conversational agent that fetches real-time weather data using the AI SDK, tool calling, and a backend weather API powered by Express, FastAPI or Nitro","outbound":[{"site":"ai-sdk","path":"/docs/agents/overview"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/getting-started/nodejs","distance":0.1475},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk","distance":0.1547},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","distance":0.2146},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","distance":0.2252},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","distance":0.2422}],"related":[{"site":"ai-sdk","path":"/docs/getting-started/nodejs","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/multi-modal-chatbot","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/expo","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/slackbot","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/ship-it","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/realtime","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/rag-chatbot-production-architecture-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/build-an-agent-with-vercel-and-flue","title":"Build an agent with Vercel and Flue","summary":"Build and deploy an agent with Flue, Vercel Sandbox, and AI Gateway","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/building-an-agent-with-openai-agents-sdk-and-vercel-sandbox","distance":0.196},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","distance":0.2218},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","distance":0.2293},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk","distance":0.2326},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-on-demand-voice-agent-with-vercel-sandbox","distance":0.239}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/langchain","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/ship-it","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-an-agent-with-openai-agents-sdk-and-vercel-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/build-commission-free-ios-checkouts-with-vercel-and-paddle","title":"Build commission-free iOS checkouts with Vercel and Paddle","summary":"A new ruling allows iOS apps to use external checkouts. Learn how to deploy a secure, high-performance external checkout on Vercel with Paddle and Next.js, avoiding Apple’s 30% cut while supporting Apple Pay and owning pricing and customer relationships.","outbound":[{"site":"vercel-docs","path":"/docs/git"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-deploy-a-next-js-online-store-with-stripe","distance":0.2427},{"site":"vercel-kb","path":"/kb/guide/getting-started-with-nextjs-typescript-stripe","distance":0.2438},{"site":"vercel-kb","path":"/kb/guide/deploy-shopify-app-to-vercel","distance":0.2537},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-shopify-storefront-with-vercel","distance":0.2616},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-bigcommerce-storefront-with-vercel","distance":0.2856}],"related":[{"site":"vercel-docs","path":"/docs/fundamentals/builds","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-deploy-a-next-js-online-store-with-stripe","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/getting-started-with-nextjs-typescript-stripe","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-shopify-app-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-shopify-storefront-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-bigcommerce-storefront-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/build-with-a-express-starter-template","title":"Build with an Express starter template","summary":"Deploy an Express app to Vercel from a template. Browse Express starters from Vercel and the community, then run them locally with the Vercel CLI.","outbound":[{"site":"ai-sdk","path":"/cookbook/api-servers/express"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/backend/express"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/runtimes/bun"},{"site":"vercel-docs","path":"/docs/microfrontends"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel"}],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/backend/express"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel","distance":0.0811},{"site":"vercel-docs","path":"/docs/frameworks/backend/express","distance":0.1027},{"site":"vercel-kb","path":"/kb/guide/build-with-a-fastapi-starter-template","distance":0.1268},{"site":"vercel-kb","path":"/kb/guide/build-with-a-flask-starter-template","distance":0.1451},{"site":"vercel-kb","path":"/kb/guide/using-express-with-vercel","distance":0.147}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-fastapi-starter-template","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-flask-starter-template","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-express-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-nitro-starter-template","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-hono-starter-template","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/build-with-a-fastapi-starter-template","title":"Build with a FastAPI starter template","summary":"Browse FastAPI starter templates for Vercel and deploy one in a few steps. Compare minimal, AI, agent, and full-stack FastAPI templates on the Python runtime.","outbound":[{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/runtimes/python"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel"}],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","distance":0.0864},{"site":"vercel-kb","path":"/kb/guide/build-with-a-flask-starter-template","distance":0.1067},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi","distance":0.1217},{"site":"vercel-kb","path":"/kb/guide/build-with-a-express-starter-template","distance":0.1268},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel","distance":0.132}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/backend/fastify","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/flask","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-flask-starter-template","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-express-starter-template","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-nitro-starter-template","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-flask-app-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/build-with-a-flask-starter-template","title":"Build with a Flask starter template","summary":"Deploy a Flask app to Vercel from a starter template. Compare the Flask Hello World starter, AI SDK, alt text generator, and Next.js templates, then ship to a live URL.","outbound":[{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/backend/flask"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-kb","path":"/kb/guide/ship-a-flask-app-on-vercel"}],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/backend/flask"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/ship-a-flask-app-on-vercel","distance":0.0904},{"site":"vercel-kb","path":"/kb/guide/build-with-a-fastapi-starter-template","distance":0.1067},{"site":"vercel-docs","path":"/docs/frameworks/backend/flask","distance":0.127},{"site":"vercel-kb","path":"/kb/guide/build-with-a-express-starter-template","distance":0.1451},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","distance":0.174}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-fastapi-starter-template","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-express-starter-template","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-nitro-starter-template","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/build-with-a-hono-starter-template","title":"Build with a Hono starter template","summary":"Deploy a Hono app to Vercel from a starter template. Compare the Hono API starter, MCP server, AI SDK, Slack Bolt, Next.js, Turborepo, and domco templates, then ship to a live URL.","outbound":[{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/backend/hono"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-kb","path":"/kb/guide/ship-a-hono-app-on-vercel"}],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/backend/hono"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/ship-a-hono-app-on-vercel","distance":0.0617},{"site":"vercel-docs","path":"/docs/frameworks/backend/hono","distance":0.0928},{"site":"vercel-kb","path":"/kb/guide/ship-a-h3-app-on-vercel","distance":0.1906},{"site":"vercel-kb","path":"/kb/guide/build-with-a-nitro-starter-template","distance":0.1935},{"site":"vercel-kb","path":"/kb/guide/build-with-a-fastapi-starter-template","distance":0.196}],"related":[{"site":"vercel-kb","path":"/kb/guide/ship-a-h3-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-nitro-starter-template","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-fastapi-starter-template","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-express-starter-template","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-flask-starter-template","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/build-with-a-nitro-starter-template","title":"Build with a Nitro starter template","summary":"Deploy a Nitro app to Vercel from a starter template. Compare the Nitro Starter, route rules, cached HTTP handler, plugins, Slack Bolt, and iMessage AI agent templates, then ship to a live URL.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/backend/nitro"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel"}],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/backend/nitro"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel","distance":0.0648},{"site":"vercel-docs","path":"/docs/frameworks/backend/nitro","distance":0.1043},{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel","distance":0.1416},{"site":"vercel-kb","path":"/kb/guide/build-with-a-fastapi-starter-template","distance":0.1705},{"site":"vercel-kb","path":"/kb/guide/nitro-vite-plugin","distance":0.1741}],"related":[{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-fastapi-starter-template","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/nitro-vite-plugin","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/building-a-slack-agent-with-durable-workflows","title":"Building a Slack agent with durable workflows","summary":"Build an AI-powered Slack bot that gathers team data, drafts a summary, and refines it through conversation.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/workflows/concepts","distance":0.2177},{"site":"vercel-kb","path":"/kb/guide/human-in-the-loop-with-chat-sdk-and-workflow-sdk","distance":0.2288},{"site":"workflow","path":"/docs/foundations/versioning","distance":0.241},{"site":"vercel-kb","path":"/kb/guide/stateful-slack-bots-with-vercel-workflow","distance":0.2452},{"site":"vercel-kb","path":"/kb/guide/durable-web-research-agent-with-workflow-sdk","distance":0.2573}],"related":[{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/versioning","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/workflow-utilities","via":"neighbor"},{"site":"workflow","path":"/docs/ai","via":"neighbor"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-trigger-dev","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/next","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows/python","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/human-in-the-loop-with-chat-sdk-and-workflow-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/stateful-slack-bots-with-vercel-workflow","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/durable-web-research-agent-with-workflow-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-workflowagent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/building-ai-chat-app-with-rag-and-citations-on-vercel","title":"Building an AI chat app with RAG and source citations on Vercel","summary":"A production stack for AI chat with retrieval, reranking, source citations, and background ingestion on Vercel using Next.js and the AI SDK.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/streaming-data"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/reranking"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration"},{"site":"vercel-docs","path":"/docs/queues"},{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/workflows"},{"site":"vercel-kb","path":"/kb/guide/cost-aware-model-routing-with-ai-gateway"},{"site":"vercel-kb","path":"/kb/guide/rag-chatbot-production-architecture-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/understanding-vector-databases-for-ai-apps"},{"site":"vercel-kb","path":"/kb/guide/what-is-rag"},{"site":"workflow","path":"/docs/foundations/errors-and-retries"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/rag-chatbot-production-architecture-on-vercel"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/rag-chatbot-production-architecture-on-vercel","distance":0.1033},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway","distance":0.2437},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","distance":0.2469},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud","distance":0.2517},{"site":"vercel-kb","path":"/kb/guide/publish-and-subscribe-to-realtime-data-on-vercel","distance":0.2518}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/publish-and-subscribe-to-realtime-data-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/building-an-agent-with-openai-agents-sdk-and-vercel-sandbox","title":"Building an agent with OpenAI Agents SDK and Vercel Sandbox","summary":"Learn how to build an agent with with OpenAI Agents SDK and Vercel Sandbox","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/using-vercel-sandbox-claude-agent-sdk","distance":0.1739},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-on-demand-voice-agent-with-vercel-sandbox","distance":0.1771},{"site":"vercel-kb","path":"/kb/guide/build-an-agent-with-vercel-and-flue","distance":0.196},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem","distance":0.1996},{"site":"vercel-docs","path":"/docs/sandbox","distance":0.2042}],"related":[{"site":"vercel-docs","path":"/docs/sandbox/ecosystem","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/multi-agent","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/langchain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-an-agent-with-vercel-and-flue","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/running-ai-generated-code-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/python-ai-sdk-vercel-sandbox","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/building-community-moderation-agents-using-ai-sdk","title":"Building community moderation agents using AI SDK","summary":"Learn how to build an AI-powered community moderation agent with Next.js, the AI SDK, and AI Gateway.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"},{"site":"ai-sdk","path":"/docs/introduction"},{"site":"chat-sdk","path":"/docs"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-kb","path":"/kb/guide/building-human-in-the-loop-agents-for-community-moderation-with-durable-workflows"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/building-human-in-the-loop-agents-for-community-moderation-with-durable-workflows"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/building-human-in-the-loop-agents-for-community-moderation-with-durable-workflows","distance":0.2664},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot","distance":0.2862},{"site":"vercel-kb","path":"/kb/guide/sandboxed-coding-agent-with-harnessagent","distance":0.296},{"site":"ai-sdk","path":"/docs/agents/building-agents","distance":0.3051},{"site":"vercel-kb","path":"/kb/guide/eve-typefully-social-media-agent","distance":0.3055}],"related":[{"site":"ai-sdk","path":"/docs/agents/building-agents","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/configuring-call-options","via":"neighbor"},{"site":"eve","path":"/docs/tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/sandboxed-coding-agent-with-harnessagent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-typefully-social-media-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/sanity-eve-agent","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/building-ecommerce-sites-with-next-js-and-shopify","title":"Building Ecommerce Sites with Next.js and Shopify","summary":"Learn how to integrate Next.js and Shopify together for the fastest storefronts using the Storefront GraphQL API.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deploy-headless-shopify-storefront-with-vercel","distance":0.2023},{"site":"vercel-kb","path":"/kb/guide/integrating-next-js-and-contentful-for-your-headless-cms","distance":0.2191},{"site":"vercel-kb","path":"/kb/guide/deploy-shopify-app-to-vercel","distance":0.2462},{"site":"vercel-shop","path":"/docs/getting-started","distance":0.2571},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-bigcommerce-storefront-with-vercel","distance":0.2726}],"related":[{"site":"vercel-shop","path":"/docs/getting-started","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started/shopify-setup","via":"neighbor"},{"site":"vercel-shop","path":"/docs/why-use-this","via":"neighbor"},{"site":"vercel-shop","path":"/docs","via":"neighbor"},{"site":"v0","path":"/docs/shopify","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/sitecore","via":"neighbor"},{"site":"vercel-shop","path":"/docs/skills/shopify-graphql-reference","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-shopify-app-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/building-human-in-the-loop-agents-for-community-moderation-with-durable-workflows","title":"Building human-in-the-loop agents for community moderation with durable workflows","summary":"Learn how to build AI agents that escalate decisions to humans in Slack, pause and resume runs reliably, and stream progress using Vercel Workflows.","outbound":[{"site":"nextjs","path":"/docs/app/getting-started/mutating-data"},{"site":"vercel-docs","path":"/docs/workflows"},{"site":"vercel-kb","path":"/kb/guide/building-community-moderation-agents-using-ai-sdk"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk"},{"site":"vercel-kb","path":"/kb/guide/slack-bot-vercel-blob"},{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent"},{"site":"workflow","path":"/docs/foundations/hooks"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps"},{"site":"workflow","path":"/docs/getting-started/next"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/building-community-moderation-agents-using-ai-sdk"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/durable-web-research-agent-with-workflow-sdk","distance":0.2304},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agent-vercel","distance":0.2378},{"site":"workflow","path":"/docs/ai/chat-session-modeling","distance":0.2483},{"site":"vercel-kb","path":"/kb/guide/building-community-moderation-agents-using-ai-sdk","distance":0.2664},{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","distance":0.289}],"related":[{"site":"workflow","path":"/docs/ai/chat-session-modeling","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/streaming","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-agent","via":"neighbor"},{"site":"workflow","path":"/docs/ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/workflow-agent","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/interactive-apps","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/durable-web-research-agent-with-workflow-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agent-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-a-slack-agent-with-durable-workflows","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-workflowagent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/run-claude-managed-agent-tools-with-vercel-sandbox","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/building-nextjs-apps-with-graphql-fragment-colocation-and-sanity-cms","title":"Building Next.js Apps with GraphQL Fragment Colocation and Sanity CMS","summary":"Build a content-heavy Next.js app with Sanity using GraphQL fragment colocation. Compose component fragments into one type-safe query for faster ISR, fewer requests, and scalable performance.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/fetching-data","distance":0.3173},{"site":"nextjs","path":"/docs/app/guides/single-page-applications","distance":0.3242},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching","distance":0.3578},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-your-document-size-in-next-js","distance":0.3585},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout","distance":0.3589}],"related":[{"site":"nextjs","path":"/docs/app/getting-started/fetching-data","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/single-page-applications","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-your-document-size-in-next-js","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/can-a-caa-record-be-added-to-a-subdomain-configured-with-cname","title":"Can a CAA record be added to a Subdomain Configured with CNAME?","summary":"This guide is for any users with requirements on customization of CAA records on subdomains.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/change-caa-records-with-vercel-cname","distance":0.1767},{"site":"vercel-kb","path":"/kb/guide/pointing-subdomains-to-external-services","distance":0.3349},{"site":"vercel-kb","path":"/kb/guide/wildcard-domain-without-vercel-nameservers","distance":0.3397},{"site":"vercel-kb","path":"/kb/guide/a-record-and-caa-with-vercel","distance":0.3748},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","distance":0.3762}],"related":[{"site":"vercel-kb","path":"/kb/guide/change-caa-records-with-vercel-cname","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/troubleshooting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain-to-environment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-dns","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/pointing-subdomains-to-external-services","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/wildcard-domain-without-vercel-nameservers","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/a-record-and-caa-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/can-i-deploy-discord-bots-to-vercel","title":"Can I deploy Discord bots to Vercel?","summary":"Learn about whether it's possible to deploy Discord Bots to Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/limitations"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/can-i-use-vercel-to-deploy-to-a-private-cloud","distance":0.3051},{"site":"vercel-docs","path":"/docs/frameworks/backend","distance":0.3291},{"site":"vercel-kb","path":"/kb/guide/npm-run-start-not-working","distance":0.3312},{"site":"vercel-kb","path":"/kb/guide/create-a-discord-support-bot-with-nuxt-and-redis","distance":0.3324},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","distance":0.3344}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/backend","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/flask","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/django","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-i-use-vercel-to-deploy-to-a-private-cloud","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/npm-run-start-not-working","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/create-a-discord-support-bot-with-nuxt-and-redis","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-locally-built-nextjs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/run-and-track-deploys-from-slack","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address","title":"Can I get a fixed IP address for my Vercel deployments?","summary":"Vercel deployments use dynamic IPs by default. Learn how Static IPs, Secure Compute, and AWS PrivateLink give you a fixed IP address for allowlisting.","outbound":[{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/container-images"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/runtimes/edge"},{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-docs","path":"/docs/networking/static-ips/getting-started"},{"site":"vercel-docs","path":"/docs/oidc"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/security/compliance"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/ip-blocking"},{"site":"vercel-kb","path":"/kb/guide/can-i-use-a-proxy-on-top-of-my-vercel-deployment"},{"site":"vercel-kb","path":"/kb/guide/how-to-allowlist-deployment-ip-address"},{"site":"vercel-kb","path":"/kb/guide/use-vercel-with-github-ip-restrictions"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-allowlist-deployment-ip-address","distance":0.1013},{"site":"vercel-docs","path":"/docs/networking/static-ips","distance":0.1615},{"site":"vercel-docs","path":"/docs/networking","distance":0.2215},{"site":"vercel-docs","path":"/docs/networking/secure-compute","distance":0.2294},{"site":"vercel-docs","path":"/docs/networking/static-ips/getting-started","distance":0.2603}],"related":[{"site":"vercel-docs","path":"/docs/networking","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/networking/configures-static-ip-s-for-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/hosting-backend-apis","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-setup-verified-proxy","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-refund-for-a-domain-purchased-or-renewed-with-vercel","title":"Can I get a refund for a domain purchased or renewed with Vercel?","summary":"Information on getting a refund for a domain purchased or renewed with Vercel.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/domains/troubleshooting"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-can-i-disable-auto-renewals-for-a-domain-registered-with-vercel","distance":0.3286},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/renew-a-domain","distance":0.3415},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-out-of-vercel","distance":0.3713},{"site":"vercel-kb","path":"/kb/guide/lifecycle-of-a-domain","distance":0.3746},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/renew-a-domain","distance":0.3758}],"related":[{"site":"vercel-docs","path":"/docs/domains/troubleshooting","via":"inbound"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/renew-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/renew-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-contact-verification-status-for-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/registrar-api","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-disable-auto-renewals-for-a-domain-registered-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-out-of-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/lifecycle-of-a-domain","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/renewal-of-ssl-certificates-with-a-vercel-domain","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/can-i-redirect-from-a-subdomain-to-a-subpath","title":"Can I redirect from a subdomain to a subpath?","summary":"Learn how to redirect from your subdomain to a subpath on Vercel with a vercel.json file or with Next.js","outbound":[{"site":"vercel-docs","path":"/docs/project-configuration"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-perform-vercel-redirects-based-on-query-strings","distance":0.261},{"site":"vercel-kb","path":"/kb/guide/vercel-reverse-proxy-rewrites-external","distance":0.2722},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-permanent-redirects","distance":0.2778},{"site":"vercel-docs","path":"/docs/routing/redirects/configuration-redirects","distance":0.278},{"site":"vercel-kb","path":"/kb/guide/how-can-i-increase-the-limit-of-redirects-or-use-dynamic-redirects-on-vercel","distance":0.2929}],"related":[{"site":"vercel-docs","path":"/docs/routing/redirects/configuration-redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects/manage-redirects-at-scale","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/custom-subpaths","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-perform-vercel-redirects-based-on-query-strings","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-reverse-proxy-rewrites-external","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-permanent-redirects","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-increase-the-limit-of-redirects-or-use-dynamic-redirects-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-serve-multiple-projects-under-a-single-domain","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/can-i-route-based-on-letter-casing-on-vercel","title":"Can I route based on letter casing on Vercel?","summary":"Information on whether or not it is possible to route based on letting casing with Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/project-configuration"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/routing","distance":0.301},{"site":"vercel-docs","path":"/docs/routing/redirects/configuration-redirects","distance":0.3334},{"site":"vercel-kb","path":"/kb/guide/vercel-reverse-proxy-rewrites-external","distance":0.3403},{"site":"vercel-kb","path":"/kb/guide/how-do-i-perform-vercel-redirects-based-on-query-strings","distance":0.3531},{"site":"vercel-kb","path":"/kb/guide/can-i-redirect-from-a-subdomain-to-a-subpath","distance":0.3587}],"related":[{"site":"vercel-docs","path":"/docs/routing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects/configuration-redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/services/routing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/project-routing-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-reverse-proxy-rewrites-external","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-perform-vercel-redirects-based-on-query-strings","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-i-redirect-from-a-subdomain-to-a-subpath","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-increase-the-limit-of-redirects-or-use-dynamic-redirects-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-permanent-redirects","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/can-i-set-a-cookie-from-my-vercel-project-subdomain-to-vercel-app","title":"Can I Set a Cookie from My Vercel Project Subdomain to Vercel.app?","summary":"If you set a cookie at the level of \\`vercel.app\\` in your Vercel project, will the cookie be applied to \\`vercel.app\\`?","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","distance":0.4148},{"site":"vercel-kb","path":"/kb/guide/can-i-redirect-from-a-subdomain-to-a-subpath","distance":0.4184},{"site":"vercel-kb","path":"/kb/guide/wildcard-domain-without-vercel-nameservers","distance":0.4329},{"site":"vercel-kb","path":"/kb/guide/how-can-i-serve-multiple-projects-under-a-single-domain","distance":0.4349},{"site":"vercel-kb","path":"/kb/guide/a-record-and-caa-with-vercel","distance":0.4404}],"related":[{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-i-redirect-from-a-subdomain-to-a-subpath","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/wildcard-domain-without-vercel-nameservers","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-serve-multiple-projects-under-a-single-domain","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/a-record-and-caa-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/can-i-use-a-non-default-branch-for-production","title":"How to use a non-default branch for production deployments on Vercel","summary":"Learn how to set a non-default branch for production on Vercel. Open the Production environment, change branch tracking, and save to ship from it.","outbound":[{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/deployments/promote-preview-to-production"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/git","distance":0.1717},{"site":"vercel-kb","path":"/kb/guide/set-up-a-staging-environment-on-vercel","distance":0.2188},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","distance":0.2204},{"site":"vercel-docs","path":"/docs/deployments/promoting-a-deployment","distance":0.2241},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-gitlab-pipelines-with-vercel","distance":0.2473}],"related":[{"site":"vercel-docs","path":"/docs/deployments/promoting-a-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/assign-domain-to-a-git-branch","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/set-up-a-staging-environment-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-gitlab-pipelines-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-bitbucket-pipelines-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-circleci-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/can-i-use-a-proxy-on-top-of-my-vercel-deployment","title":"Can I use a proxy on top of my Vercel Deployment?","summary":"General information about using an external proxy to serve a Vercel Deployment.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips"},{"site":"vercel-docs","path":"/docs/rest-api/networking/configures-static-ip-s-for-a-project"},{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/cloudflare-with-vercel","distance":0.1896},{"site":"vercel-docs","path":"/docs/security/reverse-proxy","distance":0.1901},{"site":"vercel-kb","path":"/kb/guide/how-to-setup-verified-proxy","distance":0.2019},{"site":"vercel-kb","path":"/kb/guide/how-to-troubleshoot-stale-content-returned-from-the-edge-network-when-using-an-external-proxy-or-cdn","distance":0.2567},{"site":"vercel-kb","path":"/kb/guide/vercel-reverse-proxy-rewrites-external","distance":0.2572}],"related":[{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips","via":"inbound"},{"site":"vercel-docs","path":"/docs/rest-api/networking/configures-static-ip-s-for-a-project","via":"inbound"},{"site":"vercel-docs","path":"/docs/security/reverse-proxy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/cloudflare-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-setup-verified-proxy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-troubleshoot-stale-content-returned-from-the-edge-network-when-using-an-external-proxy-or-cdn","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-reverse-proxy-rewrites-external","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/can-i-use-bitbucket-data-center-with-vercel","title":"Can I use Bitbucket Data Center with Vercel?","summary":"You can use Bitbucket Data Center and Bitbucket Pipelines to deploy your application to Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-bitbucket-pipelines-with-vercel","distance":0.18},{"site":"vercel-kb","path":"/kb/guide/can-i-use-self-managed-gitlab-with-vercel","distance":0.2075},{"site":"vercel-kb","path":"/kb/guide/can-i-use-github-enterprise-server-with-vercel","distance":0.2454},{"site":"vercel-kb","path":"/kb/guide/deploying-locally-built-nextjs","distance":0.2846},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket","distance":0.286}],"related":[{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-bitbucket-pipelines-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/build","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-i-use-self-managed-gitlab-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-i-use-github-enterprise-server-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-locally-built-nextjs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-gitlab-pipelines-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/can-i-use-github-enterprise-server-with-vercel","title":"Can I use GitHub Enterprise Server with Vercel?","summary":"You can use GitHub Enterprise Server and GitHub Actions to deploy your application to Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/can-i-use-self-managed-gitlab-with-vercel","distance":0.2441},{"site":"vercel-kb","path":"/kb/guide/can-i-use-bitbucket-data-center-with-vercel","distance":0.2454},{"site":"vercel-kb","path":"/kb/guide/use-vercel-with-github-ip-restrictions","distance":0.2456},{"site":"vercel-kb","path":"/kb/guide/using-vercel-cli-for-custom-workflows","distance":0.2993},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","distance":0.3039}],"related":[{"site":"vercel-kb","path":"/kb/guide/can-i-use-self-managed-gitlab-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-i-use-bitbucket-data-center-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/use-vercel-with-github-ip-restrictions","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-vercel-cli-for-custom-workflows","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/can-i-use-self-managed-gitlab-with-vercel","title":"Can I use self-managed GitLab with Vercel?","summary":"You can use self-managed GitLab and GitHub Pipelines to deploy your application to Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-gitlab-pipelines-with-vercel","distance":0.1754},{"site":"vercel-kb","path":"/kb/guide/can-i-use-bitbucket-data-center-with-vercel","distance":0.2075},{"site":"vercel-kb","path":"/kb/guide/can-i-use-github-enterprise-server-with-vercel","distance":0.2441},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-bitbucket-pipelines-with-vercel","distance":0.2561},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","distance":0.2646}],"related":[{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-gitlab-pipelines-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-i-use-bitbucket-data-center-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-i-use-github-enterprise-server-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-bitbucket-pipelines-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-vercel-cli-for-custom-workflows","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/can-i-use-vercel-to-deploy-to-a-private-cloud","title":"Can I use Vercel to deploy to a private cloud?","summary":"Learn about if it's possible to deploy to a private cloud with Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/git"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes","distance":0.2912},{"site":"vercel-kb","path":"/kb/guide/using-vercel-cli-for-custom-workflows","distance":0.2913},{"site":"vercel-kb","path":"/kb/guide/deploying-locally-built-nextjs","distance":0.294},{"site":"vercel-docs","path":"/docs/networking/secure-compute","distance":0.3009},{"site":"vercel-docs","path":"/docs/builds/build-features","distance":0.3027}],"related":[{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/networking/secure-compute","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds/build-features","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-vercel-cli-for-custom-workflows","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-locally-built-nextjs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-i-deploy-discord-bots-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/can-vercel-sponsor-my-open-source-project","title":"Can Vercel sponsor my open source project?","summary":"Information on how Vercel can sponsor your open source project and how to apply.","outbound":[{"site":"vercel-docs","path":"/docs/limits/fair-use-guidelines"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-get-vercel-support","distance":0.3627},{"site":"vercel-kb","path":"/kb/guide/how-to-contribute-to-the-vercel-community","distance":0.3689},{"site":"vercel-docs","path":"/docs/monorepos/monorepo-faq","distance":0.4147},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-to-vercel","distance":0.4172},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-ruby-on-rails-applications","distance":0.4178}],"related":[{"site":"vercel-docs","path":"/docs/monorepos/monorepo-faq","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/accept-project-transfer-request","via":"neighbor"},{"site":"vercel-docs","path":"/docs/kms/concepts/project-grants","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-get-vercel-support","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-contribute-to-the-vercel-community","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-ruby-on-rails-applications","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-i-use-vercel-to-deploy-to-a-private-cloud","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","title":"Can you deploy based on tags/releases on Vercel?","summary":"Learn how to deploy based on tags/releases on Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/git","distance":0.1797},{"site":"vercel-docs","path":"/docs/deployments","distance":0.1954},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-gitlab-pipelines-with-vercel","distance":0.197},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-bitbucket-pipelines-with-vercel","distance":0.2045},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-circleci-with-vercel","distance":0.2062}],"related":[{"site":"vercel-docs","path":"/docs/git","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/promoting-a-deployment","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-gitlab-pipelines-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-bitbucket-pipelines-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-circleci-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-i-use-a-non-default-branch-for-production","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-vercel-cli-for-custom-workflows","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/chained-openai-llm-calls-vercel-inngest","title":"Deploying Chained OpenAI LLM Calls to Vercel with the Inngest SDK","summary":"Discover how to deploy chained OpenAI LLMs \\(GPT-4\\) to Vercel using Inngest SDK for improved conversational AI, multi-turn interactions, and error correction.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/what-is-a-large-language-model","distance":0.2588},{"site":"vercel-kb","path":"/kb/guide/nextjs-langchain-vercel-ai","distance":0.2838},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/langchain","distance":0.2847},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem","distance":0.3093},{"site":"vercel-kb","path":"/kb/guide/streaming-from-llm","distance":0.3158}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/langchain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/litellm","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/llamaindex","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-a-large-language-model","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/nextjs-langchain-vercel-ai","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/streaming-from-llm","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ml-models-hugging-face","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/challenge-cookieless-requests-on-a-specific-path","title":"Challenge cookie-less requests on a specific path","summary":"Learn how to challenge specific requests with the Vercel WAF API.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-api"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/challenge-curl-requests","distance":0.0912},{"site":"vercel-kb","path":"/kb/guide/deny-non-browser-traffic-or-blocklisted-asns","distance":0.1606},{"site":"vercel-kb","path":"/kb/guide/deny-traffic-from-a-set-of-ip-addresses","distance":0.223},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules","distance":0.24},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples","distance":0.2532}],"related":[{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-api","via":"inbound"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples","via":"inbound"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/challenge-curl-requests","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deny-non-browser-traffic-or-blocklisted-asns","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/read-firewall-configuration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/add-rate-limiting-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/challenge-curl-requests","title":"Challenge cURL requests","summary":"Learn how to challenge curl requests with the Vercel WAF API.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-api"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/challenge-cookieless-requests-on-a-specific-path","distance":0.0912},{"site":"vercel-kb","path":"/kb/guide/deny-non-browser-traffic-or-blocklisted-asns","distance":0.1646},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples","distance":0.2426},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-api","distance":0.2437},{"site":"vercel-kb","path":"/kb/guide/deny-traffic-from-a-set-of-ip-addresses","distance":0.2441}],"related":[{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-api","via":"inbound"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/challenge-cookieless-requests-on-a-specific-path","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deny-non-browser-traffic-or-blocklisted-asns","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/read-firewall-configuration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/add-rate-limiting-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/change-caa-records-with-vercel-cname","title":"How do I change CAA records when using the Vercel CNAME record?","summary":"Information on how to change CAA records when using the Vercel CNAME record.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/can-a-caa-record-be-added-to-a-subdomain-configured-with-cname","distance":0.1767},{"site":"vercel-kb","path":"/kb/guide/a-record-and-caa-with-vercel","distance":0.3052},{"site":"vercel-kb","path":"/kb/guide/why-is-my-vercel-domain-unverified","distance":0.3102},{"site":"vercel-kb","path":"/kb/guide/wildcard-domain-without-vercel-nameservers","distance":0.3144},{"site":"vercel-kb","path":"/kb/guide/how-do-i-change-my-nameservers-on-vercel","distance":0.3202}],"related":[{"site":"vercel-docs","path":"/docs/domains/troubleshooting","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-a-caa-record-be-added-to-a-subdomain-configured-with-cname","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-dns","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/a-record-and-caa-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-vercel-domain-unverified","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/wildcard-domain-without-vercel-nameservers","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-change-my-nameservers-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/chat-sdk-and-eve","title":"Using Chat SDK and eve together","summary":"Understand how eve and Chat SDK divide responsibilities, when to use eve's first-class channels versus the Chat SDK channel, and how to bridge any Chat SDK adapter into an eve agent","outbound":[{"site":"chat-sdk","path":"/docs"},{"site":"eve","path":"/docs/channels/chat-sdk"},{"site":"eve","path":"/docs/channels/custom"},{"site":"eve","path":"/docs/channels/discord"},{"site":"eve","path":"/docs/channels/overview"},{"site":"eve","path":"/docs/channels/slack"}],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/channels/chat-sdk","distance":0.1136},{"site":"vercel-kb","path":"/kb/guide/eve-agent-with-resend","distance":0.1649},{"site":"eve","path":"/docs/channels/overview","distance":0.1885},{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk","distance":0.2224},{"site":"eve","path":"/docs/guides/frontend/overview","distance":0.2257}],"related":[{"site":"eve","path":"/docs/guides/frontend/overview","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"},{"site":"chat-sdk","path":"/docs/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"chat-sdk","path":"/docs/usage","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-agent-with-resend","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/claude-design","title":"Deploy a Claude Design project to Vercel","summary":"Publish a Claude Design project to Vercel for a live production URL with the Vercel connector, or by exporting a .zip to Vercel Drop. No Git or CLI required.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments"},{"site":"vercel-docs","path":"/docs/drop"},{"site":"vercel-docs","path":"/docs/git"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/vercel-drop-vs-cloudflare-direct-upload"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-drop-vs-cloudflare-direct-upload","distance":0.2202},{"site":"vercel-docs","path":"/docs/drop","distance":0.223},{"site":"vercel-kb","path":"/kb/guide/vercel-drop-vs-netlify-drop","distance":0.2246},{"site":"vercel-kb","path":"/kb/guide/webflow-vercel-drop","distance":0.2287},{"site":"vercel-docs","path":"/docs/deployments","distance":0.2401}],"related":[{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-drop-vs-cloudflare-direct-upload","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-drop-vs-netlify-drop","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/webflow-vercel-drop","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-brunch-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agent-vercel","title":"Build a Claude Managed Agent with Vercel Workflow","summary":"Learn how to build a Claude Managed Agent on Vercel with auth, credential vaults, durable polling, and a chat UI.","outbound":[{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/getting-started"}],"inbound":[{"site":"vercel-docs","path":"/docs/workflows"},{"site":"vercel-kb","path":"/kb/guide/run-claude-managed-agent-tools-with-vercel-sandbox"}],"requires":[],"neighbors":[{"site":"workflow","path":"/docs/ai/chat-session-modeling","distance":0.2088},{"site":"vercel-kb","path":"/kb/guide/run-claude-managed-agent-tools-with-vercel-sandbox","distance":0.2289},{"site":"vercel-kb","path":"/kb/guide/building-human-in-the-loop-agents-for-community-moderation-with-durable-workflows","distance":0.2378},{"site":"vercel-kb","path":"/kb/guide/real-time-chat-websockets","distance":0.249},{"site":"vercel-kb","path":"/kb/guide/durable-web-research-agent-with-workflow-sdk","distance":0.274}],"related":[{"site":"vercel-docs","path":"/docs/workflows","via":"inbound"},{"site":"workflow","path":"/docs/ai/chat-session-modeling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-chat-transport","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/run-claude-managed-agent-tools-with-vercel-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-human-in-the-loop-agents-for-community-moderation-with-durable-workflows","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/real-time-chat-websockets","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/durable-web-research-agent-with-workflow-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agents-chat-sdk","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agents-chat-sdk","title":"How to Run Claude Managed Agents with Chat SDK","summary":"Pair the Chat SDK with Claude Managed Agents to run a streaming research analyst in a browser chat, using Anthropic's Chat SDK quickstart.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot"},{"site":"chat-sdk","path":"/docs/getting-started"},{"site":"vercel-docs","path":"/docs/frameworks/backend/hono"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","distance":0.1853},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","distance":0.2153},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect","distance":0.2284},{"site":"vercel-kb","path":"/kb/guide/rag-chatbot-production-architecture-on-vercel","distance":0.2294},{"site":"vercel-kb","path":"/kb/guide/liveblocks-chat-sdk-ai-sdk","distance":0.23}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/claude-code","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/ship-it","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/rag-chatbot-production-architecture-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/create-a-discord-support-bot-with-nuxt-and-redis","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/client-side-error-reports-with-uriports-vercel","title":"Error Reports for Your Projects with URIports and Vercel","summary":"Enable error reporting for your websites deployed with Vercel and act fast on issues.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/monitor-frontend-performance-with-debugbear-and-vercel","distance":0.2987},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-404-errors","distance":0.3273},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-cross-origin-errors-neterr-blocked-by-orb-with-deployment-protection","distance":0.3342},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","distance":0.3402},{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","distance":0.3403}],"related":[{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-github","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/monitor-frontend-performance-with-debugbear-and-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-404-errors","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/monitoring-performance-with-calibre-and-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/add-structured-application-logs-to-vercel-functions","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/debug-routing-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/cloudflare-with-vercel","title":"Should I use Cloudflare in front of Vercel?","summary":"Information on using Cloudflare together with Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/bot-management"}],"inbound":[{"site":"vercel-docs","path":"/docs/domains/managing-dns-records"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records"},{"site":"vercel-kb","path":"/kb/guide/vercel-waf-vs-cloudflare-waf"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/security/reverse-proxy","distance":0.1594},{"site":"vercel-kb","path":"/kb/guide/can-i-use-a-proxy-on-top-of-my-vercel-deployment","distance":0.1896},{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","distance":0.2512},{"site":"vercel-kb","path":"/kb/guide/vercel-reverse-proxy-rewrites-external","distance":0.2673},{"site":"vercel-kb","path":"/kb/guide/how-to-setup-verified-proxy","distance":0.2698}],"related":[{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","via":"inbound"},{"site":"vercel-docs","path":"/docs/security/reverse-proxy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/troubleshooting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-i-use-a-proxy-on-top-of-my-vercel-deployment","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-reverse-proxy-rewrites-external","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-setup-verified-proxy","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-running-another-cdn-on-top-of-vercel-is-not-recommended","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/cls-on-vercel","title":"Improve Cumulative Layout Shift \\(CLS\\) on Vercel","summary":"Read, diagnose, and fix Cumulative Layout Shift on Vercel using Speed Insights and Next.js best practices.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/font"},{"site":"nextjs","path":"/docs/app/api-reference/components/image"},{"site":"nextjs","path":"/docs/app/getting-started/fonts"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/metrics"},{"site":"vercel-docs","path":"/docs/speed-insights"},{"site":"vercel-docs","path":"/docs/speed-insights/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/speed-insights/metrics"},{"site":"vercel-docs","path":"/docs/speed-insights/quickstart"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-improve-core-web-vitals","distance":0.2685},{"site":"vercel-docs","path":"/docs/vercel-toolbar/layout-shift-tool","distance":0.2847},{"site":"vercel-docs","path":"/docs/speed-insights/accessing-metrics-with-vercel-cli","distance":0.2894},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-writes","distance":0.2976},{"site":"vercel-docs","path":"/docs/speed-insights/metrics","distance":0.3003}],"related":[{"site":"vercel-docs","path":"/docs/vercel-toolbar/layout-shift-tool","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/accessing-metrics-with-vercel-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/using-speed-insights","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/debug-slow-functions","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-improve-core-web-vitals","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-writes","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/cohere-nextjs-vercel-ai-sdk","title":"Building an AI Chatbot with Cohere, Next.js, and the Vercel AI SDK","summary":"Learn how to build a generative AI application using Cohere, Next.js, and Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/ml-models-hugging-face","distance":0.2272},{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","distance":0.2631},{"site":"vercel-kb","path":"/kb/guide/nextjs-langchain-vercel-ai","distance":0.2663},{"site":"vercel-kb","path":"/kb/guide/integrate-vercel-and-contentstack","distance":0.2808},{"site":"vercel-kb","path":"/kb/guide/openai-function-calling","distance":0.2844}],"related":[{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/examples/oss-coding-agent","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/sitecore","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ml-models-hugging-face","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/integrate-vercel-and-contentstack","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/nuxt-and-vercel-connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/create-a-discord-support-bot-with-nuxt-and-redis","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/complete-guide-authentication-vercel","title":"The complete guide to authentication on Vercel","summary":"Learn how to implement authentication in your Vercel applications. Covers NextAuth/Auth.js setup, environment variable configuration, OAuth2 for enterprise integrations, securing Server Actions, and troubleshooting common deployment issues.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/application-authentication-on-vercel","distance":0.212},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","distance":0.2256},{"site":"vercel-kb","path":"/kb/guide/vercel-passport","distance":0.2454},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel","distance":0.2519},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/manage-from-dashboard","distance":0.2567}],"related":[{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/manage-from-dashboard","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/troubleshooting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication","via":"neighbor"},{"site":"v0","path":"/docs/security","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/application-authentication-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-passport","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-passport-nextjs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-enable-cors","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/connect-next-js-to-amazon-aurora-postgresql-using-vercel-marketplace","title":"Connect Next.js to Amazon Aurora PostgreSQL using Vercel Marketplace","summary":"Learn how to connect your Next.js application to Amazon Aurora PostgreSQL securely using the Vercel Marketplace AWS integration","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/oidc/aws","distance":0.226},{"site":"vercel-kb","path":"/kb/guide/hosting-backend-apis","distance":0.2677},{"site":"vercel-kb","path":"/kb/guide/complete-guide-authentication-vercel","distance":0.29},{"site":"vercel-kb","path":"/kb/guide/using-express-with-vercel","distance":0.2947},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference","distance":0.3001}],"related":[{"site":"vercel-docs","path":"/docs/oidc/aws","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/oidc/azure","via":"neighbor"},{"site":"vercel-docs","path":"/docs/marketplace-storage","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/hosting-backend-apis","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/complete-guide-authentication-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-express-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nestjs-app-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/connecting-teams-with-personal-git-accounts","title":"Can I connect a Pro team to a personal Git account?","summary":"Information on connecting personal Git accounts to a Vercel team.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-project-collaboration","distance":0.2851},{"site":"vercel-docs","path":"/docs/accounts","distance":0.3064},{"site":"vercel-docs","path":"/docs/protected-git-scopes","distance":0.3235},{"site":"vercel-kb","path":"/kb/guide/how-do-i-delete-my-vercel-account","distance":0.3617},{"site":"vercel-docs","path":"/docs/cli/git","distance":0.3674}],"related":[{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-project-collaboration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/accounts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/protected-git-scopes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/git","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/git-settings","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-delete-my-vercel-account","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-select-a-team-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/use-vercel-with-github-ip-restrictions","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-delete-a-vercel-team","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/connection-pooling-with-functions","title":"Connection Pooling with Vercel Functions","summary":"Learn best practices for connecting to relational databases with Vercel Functions and Fluid compute","outbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/rolling-releases"}],"inbound":[{"site":"vercel-docs","path":"/docs/marketplace-storage"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/efficiently-manage-database-connection-pools-with-fluid-compute","distance":0.1035},{"site":"vercel-docs","path":"/docs/fundamentals/what-is-compute","distance":0.2697},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out","distance":0.2838},{"site":"vercel-docs","path":"/docs/frameworks/backend","distance":0.2904},{"site":"vercel-kb","path":"/kb/guide/hosting-backend-apis","distance":0.3064}],"related":[{"site":"vercel-docs","path":"/docs/marketplace-storage","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/efficiently-manage-database-connection-pools-with-fluid-compute","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/what-is-compute","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/websockets","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/hosting-backend-apis","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-services-fluid-compute","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-lower-my-serverless-function-execution-time","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/connect-next-js-to-amazon-aurora-postgresql-using-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/corepack-errors-github-actions","title":"“Cannot Find Matching Keyid” Errors or “Corepack/PNPM Not Found” on GitHub Actions","summary":"How to debug and address this corepack issue with GitHub Actions.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-the-latest-npm-version-for-my-vercel-deployment","distance":0.4114},{"site":"vercel-kb","path":"/kb/guide/fixing-deployments-that-hang-after-the-build-step-succeeds","distance":0.4224},{"site":"vercel-kb","path":"/kb/guide/how-do-i-resolve-a-module-not-found-error","distance":0.4251},{"site":"vercel-kb","path":"/kb/guide/dependencies-from-package-json-missing-after-install","distance":0.4483},{"site":"vercel-docs","path":"/docs/deployment-checks","distance":0.4611}],"related":[{"site":"vercel-docs","path":"/docs/deployment-checks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/advanced-node-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-github","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-project-collaboration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-the-latest-npm-version-for-my-vercel-deployment","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/fixing-deployments-that-hang-after-the-build-step-succeeds","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-resolve-a-module-not-found-error","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/dependencies-from-package-json-missing-after-install","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-the-ignored-build-step-field-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/cost-aware-model-routing-with-ai-gateway","title":"Cost-aware model routing through AI Gateway","summary":"Route easy requests to a cheap model and escalate only hard ones to a frontier model through one AI Gateway endpoint, with budgets and spend monitoring.","outbound":[{"site":"ai-sdk","path":"/docs/introduction"},{"site":"nextjs","path":"/docs/app/getting-started/installation"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/api-keys"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/automatic-caching"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/model-fallbacks"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/oidc"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/building-ai-chat-app-with-rag-and-citations-on-vercel"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-your-own-ai-model-router","distance":0.1953},{"site":"vercel-kb","path":"/kb/guide/ai-evaluation-dashboard-architecture-on-vercel","distance":0.2874},{"site":"vercel-docs","path":"/docs/cli/ai-gateway","distance":0.3083},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/regional-inference","distance":0.3117},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","distance":0.3129}],"related":[{"site":"vercel-docs","path":"/docs/cli/ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/regional-inference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/service-tiers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/pricing","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-your-own-ai-model-router","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-ai-chat-app-with-rag-and-citations-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/create-a-discord-support-bot-with-nuxt-and-redis","title":"Create a Discord support bot with Nuxt and Redis","summary":"This guide walks through building a Discord support bot with Nuxt, covering project setup, Discord app configuration, Gateway forwarding, AI-powered responses, and deployment.","outbound":[{"site":"chat-sdk","path":"/docs/streaming"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-slack-bot-with-next-js-and-redis","distance":0.128},{"site":"vercel-kb","path":"/kb/guide/ship-a-github-code-review-bot-with-hono-and-redis","distance":0.199},{"site":"chat-sdk","path":"/docs/create-chat-sdk","distance":0.2003},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","distance":0.2157},{"site":"vercel-kb","path":"/kb/guide/liveblocks-chat-sdk-ai-sdk","distance":0.2343}],"related":[{"site":"chat-sdk","path":"/docs/create-chat-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/slackbot","via":"neighbor"},{"site":"eve","path":"/docs/channels/discord","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-slack-bot-with-next-js-and-redis","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-github-code-review-bot-with-hono-and-redis","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/slack-bot-vercel-blob","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/create-a-har-file-for-vercel-support","title":"How to create a HAR file for Vercel Support","summary":"Learn how to generate a HAR file on macOS and Windows across all major browsers.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/troubleshooting-connectivity-issues","distance":0.3535},{"site":"vercel-kb","path":"/kb/guide/understanding-cookies","distance":0.4122},{"site":"vercel-kb","path":"/kb/guide/how-to-effectively-load-test-your-vercel-application","distance":0.4139},{"site":"vercel-docs","path":"/docs/vercel-toolbar/accessibility-audit-tool","distance":0.4165},{"site":"vercel-docs","path":"/docs/tracing","distance":0.4306}],"related":[{"site":"vercel-docs","path":"/docs/vercel-toolbar/accessibility-audit-tool","via":"neighbor"},{"site":"vercel-docs","path":"/docs/tracing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/privacy-policy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/using-web-analytics","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/quickstart","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-connectivity-issues","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/understanding-cookies","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-effectively-load-test-your-vercel-application","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/add-structured-application-logs-to-vercel-functions","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/monitor-frontend-performance-with-debugbear-and-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/creating-a-minimal-reproducible-example","title":"How do I create a minimal reproducible example for Vercel Support?","summary":"Information on how to create a minimal reproducible example for Vercel Support.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/platforms/examples","distance":0.3745},{"site":"vercel-kb","path":"/kb/guide/how-to-get-good-answers-on-vercel-community","distance":0.3777},{"site":"vercel-kb","path":"/kb/guide/build-with-a-express-starter-template","distance":0.4001},{"site":"vercel-docs","path":"/docs/fundamentals/builds","distance":0.4103},{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","distance":0.4129}],"related":[{"site":"vercel-docs","path":"/docs/platforms/examples","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/builds","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/express","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/ci-vendors/vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/monorepos/monorepo-faq","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-get-good-answers-on-vercel-community","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-express-starter-template","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-umijs-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/custom-404-page","title":"Custom 404 Page","summary":"Create a custom 404 page and deploy with Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/custom-error-pages","distance":0.2343},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-404-errors","distance":0.2854},{"site":"vercel-kb","path":"/kb/guide/avoiding-duplicate-content-with-vercel-app-urls","distance":0.3383},{"site":"vercel-kb","path":"/kb/guide/why-is-my-deployed-project-giving-404","distance":0.3437},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-error","distance":0.3538}],"related":[{"site":"vercel-docs","path":"/docs/custom-error-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-error","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/serving-static-files","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/custom-subpaths","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds/build-features","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-404-errors","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/avoiding-duplicate-content-with-vercel-app-urls","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-deployed-project-giving-404","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-netlify","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-increase-the-limit-of-redirects-or-use-dynamic-redirects-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/custom-build-timeout","title":"How can I set a custom build timeout?","summary":"Wrap your Vercel build command with the timeout command to ensure builds terminate gracefully before exceeding Vercel’s maximum build duration.","outbound":[],"inbound":[{"site":"vercel-kb","path":"/kb/guide/troubleshooting-build-error-build-step-did-not-complete-within-45-minutes"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/troubleshooting-build-error-build-step-did-not-complete-within-45-minutes","distance":0.2912},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","distance":0.3384},{"site":"vercel-docs","path":"/docs/cli/build","distance":0.3556},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-sigkill-out-of-memory-errors","distance":0.3665},{"site":"vercel-docs","path":"/docs/builds","distance":0.3741}],"related":[{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/build","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/timeout-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/inspect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/builds","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-add-a-custom-build-step-to-my-project","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-the-ignored-build-step-field-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/per-environment-and-per-branch-build-commands","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-when-i-run-into-build-output-limits-with-next-js-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/daily-digest-bot-with-chat-sdk-and-workflow-sdk","title":"Build a daily digest bot with Chat SDK and Workflow SDK","summary":"Build a daily digest bot that posts a daily digest of GitHub stats to Slack. Learn how to use Vercel Connect to set up Slack and GitHub app securely in your project.","outbound":[{"site":"chat-sdk","path":"/docs/cards"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/connect"},{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/oidc"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/run-and-track-deploys-from-slack","distance":0.2696},{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect","distance":0.2714},{"site":"vercel-kb","path":"/kb/guide/building-a-slack-agent-with-durable-workflows","distance":0.2897},{"site":"vercel-kb","path":"/kb/guide/create-a-discord-support-bot-with-nuxt-and-redis","distance":0.2934},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-slack-bot-with-next-js-and-redis","distance":0.2961}],"related":[{"site":"chat-sdk","path":"/docs/create-chat-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/run-and-track-deploys-from-slack","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-a-slack-agent-with-durable-workflows","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/create-a-discord-support-bot-with-nuxt-and-redis","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-slack-bot-with-next-js-and-redis","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/debug-routing-on-vercel","title":"Debug routing on Vercel","summary":"Learn how to debug how Vercel decides where to route your request","outbound":[{"site":"vercel-docs","path":"/docs/deployments/generated-urls"},{"site":"vercel-docs","path":"/docs/domains"},{"site":"vercel-docs","path":"/docs/domains/troubleshooting"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain"},{"site":"vercel-docs","path":"/docs/logs/runtime"},{"site":"vercel-docs","path":"/docs/microfrontends"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/rolling-releases"},{"site":"vercel-docs","path":"/docs/skew-protection"},{"site":"vercel-docs","path":"/docs/vercel-firewall"}],"inbound":[{"site":"vercel-docs","path":"/docs/microfrontends/quickstart"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/microfrontends/routing","distance":0.1783},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","distance":0.215},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-404-errors","distance":0.2269},{"site":"vercel-docs","path":"/docs/routing","distance":0.2337},{"site":"vercel-docs","path":"/docs/deployments","distance":0.2569}],"related":[{"site":"vercel-docs","path":"/docs/microfrontends/quickstart","via":"inbound"},{"site":"vercel-docs","path":"/docs/microfrontends/routing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-404-errors","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-deployed-project-giving-404","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-serve-multiple-projects-under-a-single-domain","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/debugging-and-troubleshooting-vercel-logs-with-sematext","title":"Debug and Troubleshoot Logs with Vercel and Sematext","summary":"Automatically send all Vercel logs to Sematext to understand how your application is running.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-store-logs-on-vercel","distance":0.2874},{"site":"vercel-docs","path":"/docs/logs","distance":0.3185},{"site":"vercel-kb","path":"/kb/guide/monitor-frontend-performance-with-debugbear-and-vercel","distance":0.3439},{"site":"vercel-docs","path":"/docs/deployments/logs","distance":0.3441},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-datadog","distance":0.349}],"related":[{"site":"vercel-docs","path":"/docs/logs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/logs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-datadog","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-store-logs-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/monitor-frontend-performance-with-debugbear-and-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/debug-routing-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/add-structured-application-logs-to-vercel-functions","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/integrating_aws_secrets_manager_with_vercel_using_terraform","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/deny-non-browser-traffic-or-blocklisted-asns","title":"Deny non-browser traffic or blocklisted ASNs","summary":"Learn how to block traffic from known threats with the Vercel WAF API.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-api"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deny-traffic-from-a-set-of-ip-addresses","distance":0.1005},{"site":"vercel-kb","path":"/kb/guide/challenge-cookieless-requests-on-a-specific-path","distance":0.1606},{"site":"vercel-kb","path":"/kb/guide/challenge-curl-requests","distance":0.1646},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples","distance":0.2117},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules","distance":0.2134}],"related":[{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-api","via":"inbound"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples","via":"inbound"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/ip-blocking","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deny-traffic-from-a-set-of-ip-addresses","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/block-php-requests","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/deny-traffic-from-a-set-of-ip-addresses","title":"Deny traffic from a set of IP addresses","summary":"Learn how to block specific IP addresses with the Vercel WAF API.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-api"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deny-non-browser-traffic-or-blocklisted-asns","distance":0.1005},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/ip-blocking","distance":0.1743},{"site":"vercel-kb","path":"/kb/guide/traffic-spikes","distance":0.2134},{"site":"vercel-kb","path":"/kb/guide/challenge-cookieless-requests-on-a-specific-path","distance":0.223},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","distance":0.2406}],"related":[{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-api","via":"inbound"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples","via":"inbound"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/ip-blocking","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deny-non-browser-traffic-or-blocklisted-asns","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/traffic-spikes","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/block-php-requests","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/suspicious-traffic-in-specific-countries","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/dependencies-from-package-json-missing-after-install","title":"Dependencies from package.json are missing after install","summary":"Understand why dependencies may not being installed during a build and how to fix.","outbound":[{"site":"vercel-docs","path":"/docs/package-managers"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/using-private-dependencies-with-vercel","distance":0.2596},{"site":"vercel-docs","path":"/docs/package-managers","distance":0.2874},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/advanced-node-configuration","distance":0.3105},{"site":"vercel-docs","path":"/docs/builds/build-features","distance":0.3159},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","distance":0.3224}],"related":[{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/advanced-node-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds/build-features","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/manage-across-environments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/builds","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-private-dependencies-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-the-latest-npm-version-for-my-vercel-deployment","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-resolve-a-module-not-found-error","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-does-my-serverless-function-work-locally-but-not-when-deployed","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-the-ignored-build-step-field-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel","title":"Deploy a TanStack Start app to Vercel","summary":"Learn how to deploy a TanStack Start app to Vercel using the Nitro Vite plugin. Covers framework setup, Git and CLI deployment, Fluid compute, and framework detection fixes.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/tanstack-start"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-kb","path":"/kb/guide/adding-keyboard-shortcuts-to-react-apps-with-tanstack-hotkeys"},{"site":"vercel-kb","path":"/kb/guide/nitro-vite-plugin"},{"site":"vercel-kb","path":"/kb/guide/using-tanstack-intent-to-ship-and-consume-agent-skills"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/nitro-vite-plugin"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","distance":0.1024},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","distance":0.1057},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/tanstack-start","distance":0.1075},{"site":"vercel-kb","path":"/kb/guide/nitro-vite-plugin","distance":0.1342},{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel","distance":0.1414}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/backend/nitro","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/lovable","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-nitro-starter-template","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/deploy-go-using-docker-vercel","title":"Deploy Go apps on Vercel using Docker","summary":"Deploy an existing Dockerized Go app to Vercel using Memos as a real-world example, with Neon Postgres for durable data.","outbound":[{"site":"vercel-docs","path":"/docs/container-registry"},{"site":"vercel-docs","path":"/docs/functions/container-images"},{"site":"vercel-docs","path":"/docs/functions/runtimes/go"},{"site":"vercel-docs","path":"/docs/services"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments","distance":0.166},{"site":"vercel-kb","path":"/kb/guide/docker","distance":0.1683},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","distance":0.1777},{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker","distance":0.1824},{"site":"vercel-kb","path":"/kb/guide/migrate-cloud-run-to-vercel","distance":0.1991}],"related":[{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-cloud-run-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-bigcommerce-storefront-with-vercel","title":"Deploy a headless BigCommerce storefront with Vercel","summary":"Deploy a headless BigCommerce storefront using Catalyst and Next.js on Vercel","outbound":[{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching"},{"site":"vercel-docs","path":"/docs/speed-insights"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deploy-headless-shopify-storefront-with-vercel","distance":0.1846},{"site":"vercel-kb","path":"/kb/guide/integrate-vercel-and-contentstack","distance":0.2312},{"site":"vercel-kb","path":"/kb/guide/deploy-shopify-app-to-vercel","distance":0.2363},{"site":"vercel-kb","path":"/kb/guide/deploying-crystallize-with-vercel","distance":0.2367},{"site":"vercel-docs","path":"/docs/frameworks/frontend/create-react-app","distance":0.2418}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/frontend/create-react-app","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/sitecore","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/contentful","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/quickstart","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-shopify-storefront-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/integrate-vercel-and-contentstack","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-shopify-app-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-shopify-storefront-with-vercel","title":"Deploy a headless Shopify storefront with Vercel","summary":"Deploy a headless Shopify storefront using the Next.js Commerce template on Vercel","outbound":[{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"}],"inbound":[{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/integrations/ecommerce"}],"requires":[],"neighbors":[{"site":"vercel-shop","path":"/docs/getting-started","distance":0.1726},{"site":"vercel-kb","path":"/kb/guide/deploy-shopify-app-to-vercel","distance":0.1793},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-bigcommerce-storefront-with-vercel","distance":0.1846},{"site":"vercel-kb","path":"/kb/guide/building-ecommerce-sites-with-next-js-and-shopify","distance":0.2023},{"site":"vercel-kb","path":"/kb/guide/how-to-deploy-a-next-js-online-store-with-stripe","distance":0.2159}],"related":[{"site":"vercel-docs","path":"/docs/integrations","via":"inbound"},{"site":"vercel-docs","path":"/docs/integrations/ecommerce","via":"inbound"},{"site":"vercel-shop","path":"/docs/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/sitecore","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started/shopify-setup","via":"neighbor"},{"site":"v0","path":"/docs/shopify","via":"neighbor"},{"site":"vercel-shop","path":"/docs","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/troubleshooting","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/env-vars","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-shopify-app-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-bigcommerce-storefront-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","title":"Deploy a Node.js Fastify app on Vercel with Docker","summary":"Build a Node.js application with Fastify and Docker, then deploy it to Vercel Functions. Learn how to configure environment variables, managed storage, and preview deployments for your project.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/container-registry"},{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastify"},{"site":"vercel-docs","path":"/docs/functions/container-images"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/services"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/workflows"},{"site":"vercel-kb","path":"/kb/guide/docker"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker","distance":0.1033},{"site":"vercel-kb","path":"/kb/guide/dot-net-asp-net-on-vercel-with-docker","distance":0.124},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel","distance":0.1312},{"site":"vercel-kb","path":"/kb/guide/deploy-php-on-vercel-with-docker","distance":0.1358},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments","distance":0.1479}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/dot-net-asp-net-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-php-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/deploy-php-on-vercel-with-docker","title":"Deploy PHP on Vercel with Docker","summary":"Build a PHP application with FrankenPHP and Docker, then deploy it to Vercel Functions with managed configuration, storage, and preview deployments.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/container-registry"},{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/functions/container-images"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/services"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/workflows"},{"site":"vercel-kb","path":"/kb/guide/docker"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","distance":0.1358},{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker","distance":0.1504},{"site":"vercel-kb","path":"/kb/guide/dot-net-asp-net-on-vercel-with-docker","distance":0.1603},{"site":"vercel-kb","path":"/kb/guide/docker","distance":0.1782},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments","distance":0.1877}],"related":[{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/dot-net-asp-net-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-docker-python-apps","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker","title":"Deploy Rust on Vercel with Docker","summary":"Build a Rust application with Axum and Docker, then deploy it to Vercel Functions. Learn how to configure environment variables, managed storage, and preview deployments for your project.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/container-registry"},{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/functions/container-images"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/services"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/workflows"},{"site":"vercel-kb","path":"/kb/guide/docker"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","distance":0.1033},{"site":"vercel-kb","path":"/kb/guide/dot-net-asp-net-on-vercel-with-docker","distance":0.1401},{"site":"vercel-kb","path":"/kb/guide/docker","distance":0.1504},{"site":"vercel-kb","path":"/kb/guide/deploy-php-on-vercel-with-docker","distance":0.1504},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments","distance":0.1633}],"related":[{"site":"vercel-docs","path":"/docs/functions/runtimes/rust","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/dot-net-asp-net-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-php-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-docker-python-apps","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/deploy-shopify-app-to-vercel","title":"How to deploy a Shopify App to Vercel","summary":"Deploy the official Shopify CLI React Router app template to Vercel with the @vercel/react-router preset and Postgres session storage.","outbound":[{"site":"vercel-docs","path":"/docs/cli/integration"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/environment-variables/system-environment-variables"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/react-router"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deploy-headless-shopify-storefront-with-vercel","distance":0.1793},{"site":"vercel-shop","path":"/docs/getting-started","distance":0.185},{"site":"vercel-kb","path":"/kb/guide/how-to-deploy-a-next-js-online-store-with-stripe","distance":0.2232},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-bigcommerce-storefront-with-vercel","distance":0.2363},{"site":"vercel-shop","path":"/docs/getting-started/shopify-setup","distance":0.2439}],"related":[{"site":"vercel-shop","path":"/docs/getting-started","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started/shopify-setup","via":"neighbor"},{"site":"v0","path":"/docs/shopify","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-shopify-storefront-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-deploy-a-next-js-online-store-with-stripe","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-bigcommerce-storefront-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/deploying-and-testing-botid","title":"Deploying and testing BotID","summary":"This guide gives an overview on Vercel BotID and how to deploy and test it in production","outbound":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting-sdk"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features"},{"site":"vercel-kb","path":"/kb/guide/vercel-botid-vs-cloudflare-turnstile"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/protect-ai-endpoints-with-vercel-botid","distance":0.1131},{"site":"vercel-docs","path":"/docs/botid","distance":0.1379},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","distance":0.1711},{"site":"vercel-kb","path":"/kb/guide/vercel-botid-vs-cloudflare-turnstile","distance":0.1729},{"site":"vercel-docs","path":"/docs/botid/advanced-configuration","distance":0.2191}],"related":[{"site":"vercel-docs","path":"/docs/botid","via":"neighbor"},{"site":"vercel-docs","path":"/docs/botid/advanced-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/botid/get-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/bot-management","via":"neighbor"},{"site":"vercel-docs","path":"/docs/botid/verified-bots","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/protect-ai-endpoints-with-vercel-botid","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/create-a-discord-support-bot-with-nuxt-and-redis","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-slack-bot-with-next-js-and-redis","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-block-bots-openai-gptbot","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/deploying-angular-with-vercel","title":"How to Deploy an Angular Site with Vercel","summary":"Create your Angular app and deploy it with Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","distance":0.1367},{"site":"vercel-kb","path":"/kb/guide/deploying-aurelia-with-vercel","distance":0.1438},{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","distance":0.1668},{"site":"vercel-kb","path":"/kb/guide/deploying-umijs-with-vercel","distance":0.189},{"site":"vercel-kb","path":"/kb/guide/deploying-eleventy-with-vercel","distance":0.1907}],"related":[{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-aurelia-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-umijs-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-eleventy-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/deploying-aurelia-with-vercel","title":"How to Deploy an Aurelia App with Vercel","summary":"Create an Aurelia app and deploy it live with Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","distance":0.1328},{"site":"vercel-kb","path":"/kb/guide/deploying-angular-with-vercel","distance":0.1438},{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","distance":0.1602},{"site":"vercel-kb","path":"/kb/guide/deploying-umijs-with-vercel","distance":0.1604},{"site":"vercel-kb","path":"/kb/guide/deploying-eleventy-with-vercel","distance":0.1841}],"related":[{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-angular-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-umijs-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-eleventy-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/deploying-brunch-with-vercel","title":"How to Deploy a Brunch App with Vercel","summary":"Create a Brunch app and deploy it live with Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","distance":0.1516},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","distance":0.1595},{"site":"vercel-kb","path":"/kb/guide/deploying-middleman-with-vercel","distance":0.1732},{"site":"vercel-kb","path":"/kb/guide/deploying-jekyll-with-vercel","distance":0.1776},{"site":"vercel-kb","path":"/kb/guide/deploying-dojo-with-vercel","distance":0.1846}],"related":[{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-middleman-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-jekyll-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-dojo-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/deploying-charge-with-vercel","title":"How to Deploy a Charge App with Vercel","summary":"Create a Charge App and deploy it live with Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","distance":0.1934},{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","distance":0.1939},{"site":"vercel-kb","path":"/kb/guide/deploying-aurelia-with-vercel","distance":0.2087},{"site":"vercel-kb","path":"/kb/guide/deploying-brunch-with-vercel","distance":0.2092},{"site":"vercel-kb","path":"/kb/guide/deploying-umijs-with-vercel","distance":0.2182}],"related":[{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-aurelia-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-brunch-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-umijs-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/deploying-crystallize-with-vercel","title":"Create and Deploy a Crystallize E-commerce Site with Vercel","summary":"How to launch an e-commerce site using Next.js and Crystallize on Vercel in minutes.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-deploy-a-next-js-online-store-with-stripe","distance":0.2187},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-bigcommerce-storefront-with-vercel","distance":0.2367},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","distance":0.2368},{"site":"vercel-kb","path":"/kb/guide/getting-started-with-nextjs-typescript-stripe","distance":0.2379},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-shopify-storefront-with-vercel","distance":0.2404}],"related":[{"site":"vercel-docs","path":"/docs/integrations/cms/sitecore","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-deploy-a-next-js-online-store-with-stripe","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-bigcommerce-storefront-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/getting-started-with-nextjs-typescript-stripe","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-preact-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/deploying-docusaurus-with-vercel","title":"How to Deploy a Docusaurus Site with Vercel","summary":"Create a Docusaurus documentation site and deploy it live with Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deploying-dojo-with-vercel","distance":0.1871},{"site":"vercel-kb","path":"/kb/guide/deploying-hugo-with-vercel","distance":0.1941},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","distance":0.1965},{"site":"vercel-kb","path":"/kb/guide/deploying-jekyll-with-vercel","distance":0.2176},{"site":"vercel-kb","path":"/kb/guide/deploying-hexo-with-vercel","distance":0.2236}],"related":[{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-dojo-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-hugo-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-jekyll-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-hexo-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/deploying-dojo-with-vercel","title":"How to Deploy a Dojo App with Vercel","summary":"Create a Dojo app and deploy it live with Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","distance":0.1655},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","distance":0.1675},{"site":"vercel-kb","path":"/kb/guide/deploying-umijs-with-vercel","distance":0.1743},{"site":"vercel-kb","path":"/kb/guide/deploying-brunch-with-vercel","distance":0.1846},{"site":"vercel-kb","path":"/kb/guide/deploying-docusaurus-with-vercel","distance":0.1871}],"related":[{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-umijs-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-brunch-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-docusaurus-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/deploying-eleventy-with-vercel","title":"How to Deploy an Eleventy Site with Vercel","summary":"Create an Eleventy website and deploy it live with Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","distance":0.1448},{"site":"vercel-kb","path":"/kb/guide/deploying-jekyll-with-vercel","distance":0.1467},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","distance":0.1516},{"site":"vercel-kb","path":"/kb/guide/deploying-hugo-with-vercel","distance":0.1671},{"site":"vercel-kb","path":"/kb/guide/deploying-hexo-with-vercel","distance":0.1805}],"related":[{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-jekyll-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-hugo-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-hexo-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","title":"How to Deploy an Ember App with Vercel","summary":"Create an Ember app and deploy it live with Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deploying-umijs-with-vercel","distance":0.1406},{"site":"vercel-kb","path":"/kb/guide/deploying-eleventy-with-vercel","distance":0.1448},{"site":"vercel-kb","path":"/kb/guide/deploying-brunch-with-vercel","distance":0.1516},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","distance":0.1537},{"site":"vercel-kb","path":"/kb/guide/deploying-aurelia-with-vercel","distance":0.1602}],"related":[{"site":"vercel-kb","path":"/kb/guide/deploying-umijs-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-eleventy-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-brunch-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-aurelia-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/deploying-foundation-with-vercel","title":"Deploy Foundation with Vercel","summary":"Create a Foundation app and deploy it live with Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","distance":0.2527},{"site":"vercel-kb","path":"/kb/guide/deploying-aurelia-with-vercel","distance":0.2565},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","distance":0.264},{"site":"vercel-kb","path":"/kb/guide/deploying-brunch-with-vercel","distance":0.2664},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","distance":0.2674}],"related":[{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-aurelia-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-brunch-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-dojo-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/deploying-hexo-with-vercel","title":"How to Deploy a Hexo Blog with Vercel","summary":"Create a Hexo blog and deploy it live with Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deploying-hugo-with-vercel","distance":0.1241},{"site":"vercel-kb","path":"/kb/guide/deploying-jekyll-with-vercel","distance":0.1595},{"site":"vercel-kb","path":"/kb/guide/deploying-eleventy-with-vercel","distance":0.1805},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","distance":0.181},{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","distance":0.1876}],"related":[{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-hugo-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-jekyll-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-eleventy-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/deploying-hugo-with-vercel","title":"How to Deploy a Hugo Site with Vercel","summary":"Create a Hugo website and deploy it live with Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","distance":0.121},{"site":"vercel-kb","path":"/kb/guide/deploying-hexo-with-vercel","distance":0.1241},{"site":"vercel-kb","path":"/kb/guide/deploying-jekyll-with-vercel","distance":0.1351},{"site":"vercel-kb","path":"/kb/guide/deploying-eleventy-with-vercel","distance":0.1671},{"site":"vercel-kb","path":"/kb/guide/deploying-brunch-with-vercel","distance":0.1851}],"related":[{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-hexo-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-jekyll-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-eleventy-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-brunch-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/deploying-jekyll-with-vercel","title":"How to Deploy a Jekyll Site with Vercel","summary":"Create a Jekyll website and deploy it live with Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deploying-hugo-with-vercel","distance":0.1351},{"site":"vercel-kb","path":"/kb/guide/deploying-eleventy-with-vercel","distance":0.1467},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","distance":0.1534},{"site":"vercel-kb","path":"/kb/guide/deploying-hexo-with-vercel","distance":0.1595},{"site":"vercel-kb","path":"/kb/guide/deploying-brunch-with-vercel","distance":0.1776}],"related":[{"site":"vercel-kb","path":"/kb/guide/deploying-hugo-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-eleventy-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-hexo-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-brunch-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/deploying-locally-built-nextjs","title":"Can I deploy a locally built Next.js app to Vercel?","summary":"Learn how to deploy a locally built Next.js application to Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/cli"}],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/build","distance":0.2182},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","distance":0.2368},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","distance":0.2431},{"site":"vercel-docs","path":"/docs/fundamentals/builds","distance":0.2496},{"site":"vercel-kb","path":"/kb/guide/storybook-with-vercel","distance":0.2549}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"inbound"},{"site":"vercel-docs","path":"/docs/cli/build","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/builds","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/storybook-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-jekyll-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-brunch-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-aurelia-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/deploying-mdx-deck-with-vercel","title":"How to Deploy MDX Deck with Vercel","summary":"Create a React based slideshow with MDX Deck and deploy it live with Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deploying-umijs-with-vercel","distance":0.2112},{"site":"vercel-kb","path":"/kb/guide/deploying-dojo-with-vercel","distance":0.2118},{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","distance":0.2202},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","distance":0.2258},{"site":"vercel-kb","path":"/kb/guide/deploying-redwood-with-vercel","distance":0.2266}],"related":[{"site":"vercel-kb","path":"/kb/guide/deploying-umijs-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-dojo-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-redwood-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/deploying-middleman-with-vercel","title":"How to Deploy a Middleman App with Vercel","summary":"Create a Middleman app and deploy it live with Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","distance":0.164},{"site":"vercel-kb","path":"/kb/guide/deploying-brunch-with-vercel","distance":0.1732},{"site":"vercel-kb","path":"/kb/guide/deploying-jekyll-with-vercel","distance":0.1803},{"site":"vercel-kb","path":"/kb/guide/deploying-umijs-with-vercel","distance":0.1813},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","distance":0.1845}],"related":[{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-brunch-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-jekyll-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-umijs-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/deploying-next-and-userbase-with-vercel","title":"Deploy Next.js and Userbase with Vercel","summary":"Create a Todo app with Next.js and Userbase and deploy it live with Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","distance":0.2369},{"site":"vercel-kb","path":"/kb/guide/deploying-pusher-channels-with-vercel","distance":0.2653},{"site":"vercel-kb","path":"/kb/guide/deploying-umijs-with-vercel","distance":0.2673},{"site":"vercel-kb","path":"/kb/guide/deploying-aurelia-with-vercel","distance":0.277},{"site":"vercel-kb","path":"/kb/guide/deploying-brunch-with-vercel","distance":0.2771}],"related":[{"site":"vercel-docs","path":"/docs/integrations/cms/sitecore","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-pusher-channels-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-umijs-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-aurelia-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-brunch-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/deploying-nextjs-using-fathom-analytics-with-vercel","title":"Using Fathom Analytics with Next.js","summary":"Learn how to integrate Fathom Analytics with Next.js.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/analytics/quickstart","distance":0.3008},{"site":"nextjs","path":"/docs/app/guides/analytics","distance":0.308},{"site":"vercel-shop","path":"/docs/skills/enable-analytics","distance":0.3132},{"site":"nextjs","path":"/docs/pages/guides/analytics","distance":0.3258},{"site":"vercel-kb","path":"/kb/guide/integrating-next-js-and-contentful-for-your-headless-cms","distance":0.3463}],"related":[{"site":"vercel-docs","path":"/docs/analytics/quickstart","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/analytics","via":"neighbor"},{"site":"vercel-shop","path":"/docs/skills/enable-analytics","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/analytics","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/using-web-analytics","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/posthog-nextjs-vercel-feature-flags-analytics","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/connect-next-js-to-amazon-aurora-postgresql-using-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/deploying-polymer-with-vercel","title":"How to Deploy a Polymer App with Vercel","summary":"Create a Polymer app and deploy it live with Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","distance":0.1659},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","distance":0.1931},{"site":"vercel-kb","path":"/kb/guide/deploying-aurelia-with-vercel","distance":0.1956},{"site":"vercel-kb","path":"/kb/guide/deploying-umijs-with-vercel","distance":0.2021},{"site":"vercel-kb","path":"/kb/guide/deploying-dojo-with-vercel","distance":0.2072}],"related":[{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-aurelia-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-umijs-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-dojo-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/deploying-preact-with-vercel","title":"How to Deploy a Preact Site with Vercel","summary":"Create your Preact app and deploy it with Vercel.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","distance":0.171},{"site":"vercel-kb","path":"/kb/guide/deploying-redwood-with-vercel","distance":0.1765},{"site":"vercel-kb","path":"/kb/guide/deploying-remix-with-vercel","distance":0.1982},{"site":"vercel-kb","path":"/kb/guide/deploying-react-with-vercel","distance":0.2063},{"site":"vercel-kb","path":"/kb/guide/deploying-angular-with-vercel","distance":0.2121}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-redwood-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-remix-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-react-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-angular-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/deploying-puppeteer-with-nextjs-on-vercel","title":"Deploying Puppeteer with Next.js on Vercel","summary":"This guide covers setting up Puppeteer with Next.js on Vercel for headless browser automation, featuring a practical example for generating web page screenshots efficiently.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","distance":0.2936},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-bigcommerce-storefront-with-vercel","distance":0.306},{"site":"vercel-kb","path":"/kb/guide/using-express-with-vercel","distance":0.309},{"site":"vercel-kb","path":"/kb/guide/integrate-vercel-and-contentstack","distance":0.3102},{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","distance":0.3175}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/backend/nestjs","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-bigcommerce-storefront-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-express-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/integrate-vercel-and-contentstack","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/deploying-pusher-channels-with-vercel","title":"Deploying Real-Time Apps with Pusher Channels and Vercel","summary":"How to get started building and deploying real-time apps with Channels on Vercel.","outbound":[],"inbound":[{"site":"vercel-kb","path":"/kb/guide/publish-and-subscribe-to-realtime-data-on-vercel"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deploying-brunch-with-vercel","distance":0.2409},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","distance":0.2466},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-circleci-with-vercel","distance":0.2519},{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","distance":0.2563},{"site":"vercel-kb","path":"/kb/guide/deploying-crystallize-with-vercel","distance":0.2602}],"related":[{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-brunch-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-circleci-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-crystallize-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/deploying-react-forms-using-formspree-with-vercel","title":"Deploying React Forms Using Formspree with Vercel","summary":"Create and deploy a React form with the help of Formspree and Vercel.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/frontend/create-react-app"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/cms/formspree","distance":0.294},{"site":"vercel-kb","path":"/kb/guide/triage-form-submissions-with-chat-sdk","distance":0.3322},{"site":"vercel-kb","path":"/kb/guide/deploying-preact-with-vercel","distance":0.3485},{"site":"vercel-docs","path":"/docs/frameworks/frontend/create-react-app","distance":0.3539},{"site":"vercel-docs","path":"/docs/botid/form-submissions","distance":0.36}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/frontend/create-react-app","via":"inbound"},{"site":"vercel-docs","path":"/docs/integrations/cms/formspree","via":"neighbor"},{"site":"vercel-docs","path":"/docs/botid/form-submissions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments/using-comments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/sitecore","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/triage-form-submissions-with-chat-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-preact-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-react-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-sveltekit-form-actions","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-pusher-channels-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/deploying-react-with-vercel","title":"Deploying React with Vercel","summary":"Deploy React with Vercel to replace your build pipeline and shared staging. See how framework detection, previews, and Fluid compute cut maintenance.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deploying-preact-with-vercel","distance":0.2063},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","distance":0.2211},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","distance":0.2297},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","distance":0.2325},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes","distance":0.2382}],"related":[{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/builds","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/create-react-app","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-preact-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-kubernetes","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/deploying-redwood-with-vercel","title":"How to Deploy a Redwood Site with Vercel","summary":"Create your Redwood app and deploy it with Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deploying-preact-with-vercel","distance":0.1765},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","distance":0.1912},{"site":"vercel-kb","path":"/kb/guide/deploying-remix-with-vercel","distance":0.2021},{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","distance":0.2071},{"site":"vercel-kb","path":"/kb/guide/deploying-jekyll-with-vercel","distance":0.2196}],"related":[{"site":"vercel-kb","path":"/kb/guide/deploying-preact-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-remix-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-jekyll-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/deploying-remix-with-vercel","title":"How to Deploy a Remix Site with Vercel","summary":"Create your Remix app and deploy it with Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deploying-preact-with-vercel","distance":0.1982},{"site":"vercel-kb","path":"/kb/guide/deploying-redwood-with-vercel","distance":0.2021},{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","distance":0.2083},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","distance":0.2118},{"site":"vercel-kb","path":"/kb/guide/deploying-brunch-with-vercel","distance":0.2201}],"related":[{"site":"vercel-kb","path":"/kb/guide/deploying-preact-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-redwood-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-brunch-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/deploying-solid-with-vercel","title":"How to Deploy a Solid App with Vercel","summary":"Deploy Solid to Vercel with zero configuration. Covers SolidStart 1 and 2, static Solid apps, build settings, and custom domains.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel","distance":0.2383},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","distance":0.2388},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","distance":0.2528},{"site":"vercel-kb","path":"/kb/guide/deploying-react-with-vercel","distance":0.2576},{"site":"vercel-kb","path":"/kb/guide/nitro-vite-plugin","distance":0.2587}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/nitro","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/nitro-vite-plugin","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-polymer-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/deploying-stencil-with-vercel","title":"How to Deploy a Stencil app with Vercel","summary":"Create a Stencil app and deploy it live with Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","distance":0.1886},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","distance":0.1897},{"site":"vercel-kb","path":"/kb/guide/deploying-umijs-with-vercel","distance":0.1973},{"site":"vercel-kb","path":"/kb/guide/deploying-brunch-with-vercel","distance":0.2001},{"site":"vercel-kb","path":"/kb/guide/deploying-dojo-with-vercel","distance":0.2029}],"related":[{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-umijs-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-brunch-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-dojo-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/deploying-umijs-with-vercel","title":"How to Deploy an UmiJS App with Vercel","summary":"Create an UmiJS app and deploy it live with Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","distance":0.1406},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","distance":0.1528},{"site":"vercel-kb","path":"/kb/guide/deploying-aurelia-with-vercel","distance":0.1604},{"site":"vercel-kb","path":"/kb/guide/deploying-dojo-with-vercel","distance":0.1743},{"site":"vercel-kb","path":"/kb/guide/deploying-middleman-with-vercel","distance":0.1813}],"related":[{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-aurelia-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-dojo-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-middleman-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","title":"How to Deploy a Vue.js Site with Vercel","summary":"Create your Vue.js app and deploy it with Vercel.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deploying-hugo-with-vercel","distance":0.121},{"site":"vercel-kb","path":"/kb/guide/deploying-aurelia-with-vercel","distance":0.1328},{"site":"vercel-kb","path":"/kb/guide/deploying-angular-with-vercel","distance":0.1367},{"site":"vercel-kb","path":"/kb/guide/deploying-eleventy-with-vercel","distance":0.1516},{"site":"vercel-kb","path":"/kb/guide/deploying-umijs-with-vercel","distance":0.1528}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/deploying-hugo-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-aurelia-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-angular-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-eleventy-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-umijs-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/deploying-yarn-monorepos-to-vercel","title":"Deploying a Monorepo Using Yarn Workspaces to Vercel","summary":"In this guide, you will deploy a monorepo that includes two frontend applications and one shared library with Yarn workspaces.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/monorepos","distance":0.2175},{"site":"vercel-docs","path":"/docs/monorepos/monorepo-faq","distance":0.2516},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","distance":0.2748},{"site":"vercel-kb","path":"/kb/guide/deploying-redwood-with-vercel","distance":0.2809},{"site":"vercel-docs","path":"/docs/deployments","distance":0.2832}],"related":[{"site":"vercel-docs","path":"/docs/monorepos","via":"neighbor"},{"site":"vercel-docs","path":"/docs/monorepos/monorepo-faq","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/ci-vendors/vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-redwood-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/structure-your-application","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-remix-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/detect-memory-and-oom-failures-in-serverless-functions","title":"Detect memory and OOM failures in Vercel Functions","summary":"Fix out-of-memory \\(OOM\\) errors and memory limit exceeded crashes in Vercel serverless functions. Debug 5xx errors, monitor function memory usage, and prevent OOM failures before they impact production.","outbound":[{"site":"vercel-docs","path":"/docs/alerts"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/memory"},{"site":"vercel-docs","path":"/docs/instant-rollback"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/troubleshooting-sigkill-out-of-memory-errors","distance":0.2725},{"site":"vercel-kb","path":"/kb/guide/monitor-uptime-for-ai-native-apps-with-vercel-alerts","distance":0.2895},{"site":"vercel-docs","path":"/docs/functions","distance":0.3046},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/memory","distance":0.3104},{"site":"vercel-docs","path":"/docs/alerts","distance":0.3114}],"related":[{"site":"vercel-docs","path":"/docs/functions/debug-slow-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/alerts/configure-alerts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-sigkill-out-of-memory-errors","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-function-250mb-limit","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/investigate-latency-issues-and-slowness","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-effectively-load-test-your-vercel-application","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/devin-outposts-vercel-sandbox","title":"How to run Devin Outposts sessions on Vercel","summary":"Run Devin Outposts sessions in isolated Vercel Sandbox microVMs. One browser authorization to set up, then sessions start from anywhere, even your phone.","outbound":[{"site":"vercel-docs","path":"/docs/cron-jobs/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/devin"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/devin","distance":0.1013},{"site":"vercel-kb","path":"/kb/guide/using-vercel-sandbox-claude-agent-sdk","distance":0.2526},{"site":"vercel-kb","path":"/kb/guide/run-herdr-coding-agents-isolated-vercel-sandboxes","distance":0.2666},{"site":"vercel-docs","path":"/docs/sandbox","distance":0.2783},{"site":"vercel-docs","path":"/docs/sandbox/quickstart","distance":0.2815}],"related":[{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/devin","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/quickstart","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/test-container-image-vercel-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agents-chat-sdk","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/displaying-article-headlines-in-social-previews","title":"Displaying headlines in social previews with Vercel OG","summary":"Twitter/X is planning to remove headlines from social previews. To get around this limitation, Vercel OG offers a way to display article titles directly inside OG images.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/og-image-generation","distance":0.2102},{"site":"vercel-kb","path":"/kb/guide/using-tailwind","distance":0.2621},{"site":"vercel-kb","path":"/kb/guide/dynamic-text-as-image","distance":0.2652},{"site":"vercel-kb","path":"/kb/guide/using-svg-image","distance":0.2715},{"site":"vercel-kb","path":"/kb/guide/using-custom-font","distance":0.2725}],"related":[{"site":"vercel-docs","path":"/docs/og-image-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/og-image-generation/examples","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/og-image-generation/og-image-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/og-preview","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-tailwind","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/dynamic-text-as-image","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-svg-image","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-custom-font","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-emoji-in-image","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/do-vercel-serverless-functions-support-websocket-connections","title":"Do Vercel Serverless Functions support WebSocket connections?","summary":"Information on Vercel's support for WebSocket connections with Vercel Functions.","outbound":[{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/websockets"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/publish-and-subscribe-to-realtime-data-on-vercel"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/functions/websockets","distance":0.2594},{"site":"vercel-docs","path":"/docs/frameworks/backend","distance":0.3445},{"site":"vercel-kb","path":"/kb/guide/can-i-deploy-discord-bots-to-vercel","distance":0.362},{"site":"vercel-kb","path":"/kb/guide/is-sqlite-supported-in-vercel","distance":0.3897},{"site":"vercel-kb","path":"/kb/guide/npm-run-start-not-working","distance":0.4028}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/backend","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-i-deploy-discord-bots-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/is-sqlite-supported-in-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/npm-run-start-not-working","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/publish-and-subscribe-to-realtime-data-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-lower-my-serverless-function-execution-time","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/docker","title":"Running Docker on Vercel","summary":"Learn how to run Docker on Vercel by deploying OCI container images as Vercel Functions, storing them in Vercel Container Registry \\(VCR\\), and running containers in Vercel Sandbox.","outbound":[{"site":"vercel-docs","path":"/docs/container-registry"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/container-images"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/images"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/runtimes"},{"site":"vercel-kb","path":"/kb/guide/vercel-services"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/deploy-php-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/dot-net-asp-net-on-vercel-with-docker"},{"site":"vercel-kb","path":"/kb/guide/full-stack-preview-deployments-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/test-container-image-vercel-sandbox"},{"site":"vercel-kb","path":"/kb/guide/vercel-docker-python-apps"},{"site":"vercel-kb","path":"/kb/guide/vercel-kubernetes-support"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments","distance":0.0851},{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-container-registry","distance":0.1045},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","distance":0.1497},{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker","distance":0.1504},{"site":"vercel-kb","path":"/kb/guide/migrate-cloud-run-to-vercel","distance":0.1542}],"related":[{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-container-registry","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-cloud-run-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/docker-compose-concepts-on-vercel","title":"How Docker Compose concepts map to Vercel","summary":"Translate your Docker Compose file to Vercel: Compose services become Vercel Services, networks become bindings, and volumes become Marketplace databases and Vercel Blob.","outbound":[{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions/container-images"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/marketplace-storage"},{"site":"vercel-docs","path":"/docs/queues"},{"site":"vercel-docs","path":"/docs/services"},{"site":"vercel-docs","path":"/docs/services/bindings"},{"site":"vercel-docs","path":"/docs/storage"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments"},{"site":"vercel-kb","path":"/kb/guide/vercel-services"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/migrate-cloud-run-to-vercel","distance":0.1752},{"site":"vercel-kb","path":"/kb/guide/kubernetes-manifests-to-vercel-json","distance":0.1901},{"site":"vercel-kb","path":"/kb/guide/migrate-render-to-vercel","distance":0.1931},{"site":"vercel-kb","path":"/kb/guide/migrate-fly-io-to-vercel","distance":0.1968},{"site":"vercel-kb","path":"/kb/guide/vercel-services","distance":0.2029}],"related":[{"site":"vercel-kb","path":"/kb/guide/migrate-cloud-run-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/kubernetes-manifests-to-vercel-json","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-render-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-fly-io-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/docker","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/docker-on-vercel-vs-render","title":"Running Docker on Vercel vs Render","summary":"Compare how Vercel and Render run Docker workloads, including deployment model, scaling, image sources, state, and networking.","outbound":[{"site":"vercel-docs","path":"/docs/container-registry"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/container-images"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-docs","path":"/docs/services"},{"site":"vercel-kb","path":"/kb/guide/vercel-services"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-render"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/migrate-render-to-vercel"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/migrate-render-to-vercel","distance":0.1115},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments","distance":0.1557},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-kubernetes","distance":0.175},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-render","distance":0.1785},{"site":"vercel-kb","path":"/kb/guide/migrate-cloud-run-to-vercel","distance":0.179}],"related":[{"site":"vercel-kb","path":"/kb/guide/migrate-render-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-kubernetes","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-cloud-run-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/docker","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/does-streaming-affect-seo","title":"Does streaming affect SEO and can streamed content be indexed?","summary":"Streamed content does not affect SEO and will still be indexed by Google. Learn more in this guide.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found"},{"site":"nextjs","path":"/docs/app/api-reference/functions/redirect"}],"inbound":[{"site":"vercel-docs","path":"/docs/functions/streaming-functions"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/what-is-streaming","distance":0.2789},{"site":"vercel-docs","path":"/docs/functions/streaming-functions","distance":0.2957},{"site":"vercel-kb","path":"/kb/guide/best-practices-for-hosting-videos-on-vercel-nextjs-mp4-gif","distance":0.3844},{"site":"vercel-kb","path":"/kb/guide/avoiding-duplicate-content-with-vercel-app-urls","distance":0.3845},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/streaming","distance":0.3862}],"related":[{"site":"vercel-docs","path":"/docs/functions/streaming-functions","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/streaming","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/videos","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/streaming","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/streaming","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/streaming","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-streaming","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/best-practices-for-hosting-videos-on-vercel-nextjs-mp4-gif","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/avoiding-duplicate-content-with-vercel-app-urls","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-site-performance-matters","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/streaming-from-llm","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/does-using-vercel-s-nameserver-s-lock-you-in","title":"Does using Vercel's Nameserver's lock you in?","summary":"Learn about how using Vercel's Nameservers doesn't lock you to anything.","outbound":[{"site":"vercel-docs","path":"/docs/cli"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/domains/working-with-nameservers","distance":0.2145},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","distance":0.2321},{"site":"vercel-kb","path":"/kb/guide/how-do-i-change-my-nameservers-on-vercel","distance":0.2423},{"site":"vercel-docs","path":"/docs/domains/working-with-dns","distance":0.2465},{"site":"vercel-docs","path":"/docs/domains","distance":0.2469}],"related":[{"site":"vercel-docs","path":"/docs/domains/working-with-nameservers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-dns","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-change-my-nameservers-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-vercel-domain-unverified","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/pointing-subdomains-to-external-services","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments","title":"Does Vercel support Docker deployments?","summary":"Vercel supports deploying OCI-compatible container images through Vercel Functions and Vercel Container Registry, with Active CPU pricing and automatic scaling.","outbound":[{"site":"vercel-docs","path":"/docs/container-registry"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/container-images"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-kb","path":"/kb/guide/vercel-services"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/docker-compose-concepts-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-cloud-run-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-fly-io-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-railway-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-render-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/vercel-docker-python-apps"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/docker","distance":0.0851},{"site":"vercel-docs","path":"/docs/functions/container-images","distance":0.0979},{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-container-registry","distance":0.1385},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","distance":0.1479},{"site":"vercel-kb","path":"/kb/guide/migrate-cloud-run-to-vercel","distance":0.1542}],"related":[{"site":"vercel-kb","path":"/kb/guide/docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-container-registry","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-cloud-run-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/docker-on-vercel-vs-render","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-htaccess-files","title":"Does Vercel support .htaccess files?","summary":"Information on Vercel's support for .htaccess files.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/cloudflare-with-vercel","distance":0.3718},{"site":"vercel-docs","path":"/docs/security/reverse-proxy","distance":0.3772},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-permanent-redirects","distance":0.379},{"site":"vercel-kb","path":"/kb/guide/can-i-route-based-on-letter-casing-on-vercel","distance":0.4151},{"site":"vercel-kb","path":"/kb/guide/vercel-reverse-proxy-rewrites-external","distance":0.4177}],"related":[{"site":"vercel-docs","path":"/docs/security/reverse-proxy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/global-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects/configuration-redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-ssl","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security/encryption","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/cloudflare-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-permanent-redirects","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-i-route-based-on-letter-casing-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-reverse-proxy-rewrites-external","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-using-vercel-s-nameserver-s-lock-you-in","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-permanent-redirects","title":"Does Vercel support permanent redirects?","summary":"Information on Vercel's support for permanent redirects.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/routing/redirects/configuration-redirects","distance":0.1898},{"site":"vercel-docs","path":"/docs/routing/redirects","distance":0.2002},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting","distance":0.258},{"site":"vercel-kb","path":"/kb/guide/how-do-i-perform-vercel-redirects-based-on-query-strings","distance":0.2591},{"site":"vercel-docs","path":"/docs/routing/redirects/manage-redirects-at-scale","distance":0.277}],"related":[{"site":"vercel-docs","path":"/docs/routing/redirects/configuration-redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects/manage-redirects-at-scale","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/redirects","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/redirects","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-perform-vercel-redirects-based-on-query-strings","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-increase-the-limit-of-redirects-or-use-dynamic-redirects-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/dynamic-redirects-with-global-config-and-next-js-proxy","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/emergency-redirect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-reverse-proxy-rewrites-external","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-ruby-on-rails-applications","title":"Does Vercel support Ruby on Rails applications?","summary":"Learn how you can use Ruby on Rails with your frontend on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/project-configuration"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes","distance":0.2187},{"site":"vercel-docs","path":"/docs/incremental-migration","distance":0.2551},{"site":"vercel-docs","path":"/docs/frameworks","distance":0.2559},{"site":"vercel-kb","path":"/kb/guide/using-express-with-vercel","distance":0.2562},{"site":"vercel-kb","path":"/kb/guide/deploying-react-with-vercel","distance":0.2609}],"related":[{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/incremental-migration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/builds","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-express-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-react-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-redwood-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-preact-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-yarn-2","title":"Does Vercel support Yarn 2?","summary":"Information on Vercel's support for Yarn 2.","outbound":[{"site":"vercel-docs","path":"/docs/builds/configure-a-build"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-yarn-3","distance":0.1438},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-yarn-4","distance":0.1683},{"site":"vercel-kb","path":"/kb/guide/how-to-get-vercel-support","distance":0.3982},{"site":"vercel-docs","path":"/docs/monorepos/monorepo-faq","distance":0.3985},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/node-js-versions","distance":0.3992}],"related":[{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-yarn-3","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-yarn-4","via":"neighbor"},{"site":"vercel-docs","path":"/docs/monorepos/monorepo-faq","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/node-js-versions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/package-managers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/advanced-node-configuration","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/ci-vendors/vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-get-vercel-support","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-the-latest-npm-version-for-my-vercel-deployment","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-ruby-on-rails-applications","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-yarn-3","title":"Does Vercel support Yarn 3?","summary":"Information on Vercel's support for Yarn 3.","outbound":[{"site":"vercel-docs","path":"/docs/builds/configure-a-build"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-yarn-2","distance":0.1438},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-yarn-4","distance":0.1453},{"site":"vercel-kb","path":"/kb/guide/how-to-get-vercel-support","distance":0.3992},{"site":"vercel-docs","path":"/docs/monorepos/monorepo-faq","distance":0.4001},{"site":"vercel-docs","path":"/docs/frameworks","distance":0.4076}],"related":[{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-yarn-2","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-yarn-4","via":"neighbor"},{"site":"vercel-docs","path":"/docs/monorepos/monorepo-faq","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/ci-vendors/vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/build","via":"neighbor"},{"site":"vercel-docs","path":"/docs/package-managers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/advanced-node-configuration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-get-vercel-support","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-the-latest-npm-version-for-my-vercel-deployment","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-ruby-on-rails-applications","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-yarn-4","title":"Does Vercel support Yarn 4?","summary":"Information on Vercel's support for Yarn 4.","outbound":[{"site":"vercel-docs","path":"/docs/builds/configure-a-build"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-yarn-3","distance":0.1453},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-yarn-2","distance":0.1683},{"site":"vercel-docs","path":"/docs/frameworks","distance":0.4111},{"site":"vercel-docs","path":"/docs/package-managers","distance":0.4174},{"site":"vercel-docs","path":"/docs/monorepos/monorepo-faq","distance":0.4177}],"related":[{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-yarn-3","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-yarn-2","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/package-managers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/monorepos/monorepo-faq","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/advanced-node-configuration","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/ci-vendors/vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/build","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-get-vercel-support","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-the-latest-npm-version-for-my-vercel-deployment","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/domain-linked-to-another-account","title":"Domain Linked to Another Account","summary":"This guide explains how to claim a domain already linked to another Vercel account and add it to your team using the domain claim flow.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains/claim-domain-ownership","distance":0.1656},{"site":"vercel-docs","path":"/docs/rest-api/domains/claim-domain-ownership","distance":0.257},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/transfer-your-domain","distance":0.2617},{"site":"vercel-kb","path":"/kb/guide/how-can-i-move-a-domain-to-a-team","distance":0.2686},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","distance":0.2716}],"related":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains/claim-domain-ownership","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains/claim-domain-ownership","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/transfer-your-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-move-a-domain-to-a-team","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-domain-using-the-vercel-api","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-out-of-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/domain-not-generating-ssl-certificate","title":"Why is my domain not automatically generating an SSL/TLS certificate?","summary":"Information on why a domain may not be automatically generating an SSL/TLS certificate.","outbound":[{"site":"vercel-docs","path":"/docs/security/reverse-proxy"},{"site":"vercel-kb","path":"/kb/guide/resolve-err-too-many-redirects-when-using-cloudflare-proxy-with-vercel"}],"inbound":[{"site":"vercel-docs","path":"/docs/domains/troubleshooting"},{"site":"vercel-kb","path":"/kb/guide/resolve-err-ssl-protocol-error-with-vercel"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/domains/troubleshooting","distance":0.1755},{"site":"vercel-kb","path":"/kb/guide/a-record-and-caa-with-vercel","distance":0.2049},{"site":"vercel-docs","path":"/docs/domains/working-with-ssl","distance":0.2325},{"site":"vercel-docs","path":"/docs/domains/pre-generating-ssl-certs","distance":0.2522},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records","distance":0.2539}],"related":[{"site":"vercel-docs","path":"/docs/domains/troubleshooting","via":"inbound"},{"site":"vercel-docs","path":"/docs/domains/working-with-ssl","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/pre-generating-ssl-certs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/a-record-and-caa-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-vercel-domain-unverified","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/resolve-err-ssl-protocol-error-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-connectivity-issues","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/dot-net-asp-net-on-vercel-with-docker","title":"Deploy ASP.NET Core on Vercel with Docker","summary":"Build a .NET application with Docker and deploy it to Vercel Functions. Learn how to configure environment variables, integrations, and preview deployments for your ASP.NET Core application.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/container-registry"},{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/functions/container-images"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/services"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/workflows"},{"site":"vercel-kb","path":"/kb/guide/docker"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","distance":0.124},{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker","distance":0.1401},{"site":"vercel-kb","path":"/kb/guide/deploy-php-on-vercel-with-docker","distance":0.1603},{"site":"vercel-kb","path":"/kb/guide/docker","distance":0.1752},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments","distance":0.1901}],"related":[{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-php-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-docker-python-apps","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/durable-web-research-agent-with-workflow-sdk","title":"Build a web research agent with Workflow SDK","summary":"Build a web research agent that searches the web and returns a cited report. Powered by AI SDK and Workflow SDK, it journals every step so progress survives any crash or retries.","outbound":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin"},{"site":"vercel-docs","path":"/docs/oidc"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-run-a-multi-step-research-agent-on-vercel","distance":0.2158},{"site":"vercel-kb","path":"/kb/guide/building-human-in-the-loop-agents-for-community-moderation-with-durable-workflows","distance":0.2304},{"site":"vercel-kb","path":"/kb/guide/building-a-slack-agent-with-durable-workflows","distance":0.2573},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agent-vercel","distance":0.274},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel","distance":0.2829}],"related":[{"site":"workflow","path":"/docs/foundations/versioning","via":"neighbor"},{"site":"workflow","path":"/docs/ai","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/streaming","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/workflow-utilities","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/next","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-run-a-multi-step-research-agent-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-human-in-the-loop-agents-for-community-moderation-with-durable-workflows","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-a-slack-agent-with-durable-workflows","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agent-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/durableagent-to-workflowagent","title":"How to migrate from DurableAgent to WorkflowAgent","summary":"Switch your app from \\`DurableAgent\\` \\(@workflow/ai\\) to \\`WorkflowAgent\\` \\(@ai-sdk/workflow\\) by updating imports, stream output, message conversion, stop conditions, tool approval, and context.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/what-is-workflowagent","distance":0.114},{"site":"ai-sdk","path":"/docs/agents/workflow-agent","distance":0.1474},{"site":"workflow","path":"/docs/ai","distance":0.2093},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","distance":0.2402},{"site":"vercel-kb","path":"/kb/guide/migrate-cloudflare-workflows-to-vercel-workflows","distance":0.2972}],"related":[{"site":"ai-sdk","path":"/docs/agents/workflow-agent","via":"neighbor"},{"site":"workflow","path":"/docs/ai","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-workflowagent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/workflow-utilities","via":"neighbor"},{"site":"eve","path":"/docs/concepts/built-in-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/building-agents","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-cloudflare-workflows-to-vercel-workflows","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-a-slack-agent-with-durable-workflows","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/durable-web-research-agent-with-workflow-sdk","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/dynamic-build-commands","title":"Dynamically run build commands","summary":"Learn how to run different scripts based on the environment or branch.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/per-environment-and-per-branch-build-commands","distance":0.102},{"site":"vercel-docs","path":"/docs/cli/build","distance":0.2857},{"site":"vercel-kb","path":"/kb/guide/how-can-i-add-a-custom-build-step-to-my-project","distance":0.2932},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-the-ignored-build-step-field-on-vercel","distance":0.2957},{"site":"vercel-kb","path":"/kb/guide/using-vercel-cli-for-custom-workflows","distance":0.3198}],"related":[{"site":"vercel-kb","path":"/kb/guide/per-environment-and-per-branch-build-commands","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/build","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/builds","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds/managing-builds","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-add-a-custom-build-step-to-my-project","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-the-ignored-build-step-field-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-vercel-cli-for-custom-workflows","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-gitlab-pipelines-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/dynamic-redirects-with-global-config-and-next-js-proxy","title":"Dynamic redirects with Global Config and Next.js proxy","summary":"Learn how to create redirects that update instantly without redeploying by storing rules in Global Config and reading them from your Next.js proxy.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/getting-started/proxy"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/global-config/global-config-limits"},{"site":"vercel-docs","path":"/docs/global-config/global-config-sdk"},{"site":"vercel-docs","path":"/docs/global-config/migration-guide"},{"site":"vercel-docs","path":"/docs/global-config/vercel-api"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/routing/redirects","distance":0.1803},{"site":"vercel-kb","path":"/kb/guide/how-can-i-increase-the-limit-of-redirects-or-use-dynamic-redirects-on-vercel","distance":0.1852},{"site":"vercel-docs","path":"/docs/routing/redirects/configuration-redirects","distance":0.2082},{"site":"vercel-kb","path":"/kb/guide/managing-redirects-from-your-cms-using-vercel-bulk-redirects","distance":0.2188},{"site":"nextjs","path":"/docs/pages/guides/redirecting","distance":0.2469}],"related":[{"site":"vercel-docs","path":"/docs/routing/redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects/configuration-redirects","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/redirecting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects/manage-redirects-at-scale","via":"neighbor"},{"site":"vercel-docs","path":"/docs/incremental-migration","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/redirecting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects/bulk-redirects","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/redirects","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-increase-the-limit-of-redirects-or-use-dynamic-redirects-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-netlify","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-reverse-proxy-rewrites-external","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/dynamic-text-as-image","title":"Using dynamic text as your OG Image","summary":"Learn how to pass the image title as a URL parameter.","outbound":[{"site":"vercel-docs","path":"/docs/og-image-generation"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/using-an-external-dynamic-image","distance":0.1205},{"site":"vercel-kb","path":"/kb/guide/using-emoji-in-image","distance":0.1461},{"site":"vercel-kb","path":"/kb/guide/using-svg-image","distance":0.1605},{"site":"vercel-kb","path":"/kb/guide/using-tailwind","distance":0.1745},{"site":"vercel-kb","path":"/kb/guide/using-different-languages","distance":0.1976}],"related":[{"site":"vercel-docs","path":"/docs/og-image-generation/examples","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-an-external-dynamic-image","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-emoji-in-image","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-svg-image","via":"neighbor"},{"site":"vercel-docs","path":"/docs/og-image-generation/og-image-api","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-tailwind","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-different-languages","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/image-response","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/efficiently-manage-database-connection-pools-with-fluid-compute","title":"Efficiently manage database connection pools with Fluid compute","summary":"How to create high-performance database connection pools without leaking connections","outbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/backend"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package"},{"site":"vercel-docs","path":"/docs/fundamentals/what-is-compute"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/connection-pooling-with-functions","distance":0.1035},{"site":"vercel-docs","path":"/docs/fundamentals/what-is-compute","distance":0.2942},{"site":"vercel-docs","path":"/docs/frameworks/backend","distance":0.3076},{"site":"vercel-kb","path":"/kb/guide/vercel-services-fluid-compute","distance":0.3183},{"site":"vercel-docs","path":"/docs/fluid-compute","distance":0.3276}],"related":[{"site":"vercel-kb","path":"/kb/guide/connection-pooling-with-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-services-fluid-compute","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/hosting-backend-apis","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-lower-my-serverless-function-execution-time","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/emergency-redirect","title":"Emergency Redirect","summary":"Learn how to implement an emergency redirect without re-deploying your site.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/routing/redirects","distance":0.2609},{"site":"vercel-docs","path":"/docs/routing/redirects/configuration-redirects","distance":0.2768},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting","distance":0.2844},{"site":"vercel-kb","path":"/kb/guide/suspicious-traffic-in-specific-countries","distance":0.3055},{"site":"vercel-docs","path":"/docs/routing/redirects/manage-redirects-at-scale","distance":0.3118}],"related":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples","via":"inbound"},{"site":"vercel-docs","path":"/docs/routing/redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects/configuration-redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects/manage-redirects-at-scale","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/suspicious-traffic-in-specific-countries","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-permanent-redirects","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-increase-the-limit-of-redirects-or-use-dynamic-redirects-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-reverse-proxy-rewrites-external","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/dynamic-redirects-with-global-config-and-next-js-proxy","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/encrypting-parameters","title":"Encrypting parameters","summary":"Learn how to encrypt parameters so that only certain values can be passed to generate your image.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image"},{"site":"vercel-docs","path":"/docs/og-image-generation"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/using-svg-image","distance":0.2108},{"site":"vercel-kb","path":"/kb/guide/using-emoji-in-image","distance":0.2236},{"site":"vercel-docs","path":"/docs/og-image-generation","distance":0.2428},{"site":"vercel-kb","path":"/kb/guide/using-tailwind","distance":0.2461},{"site":"vercel-kb","path":"/kb/guide/using-an-external-dynamic-image","distance":0.2496}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-svg-image","via":"neighbor"},{"site":"vercel-docs","path":"/docs/botid/get-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/og-image-generation/og-image-api","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-emoji-in-image","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/client-upload","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-tailwind","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-an-external-dynamic-image","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/dynamic-text-as-image","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/enhancing-security-for-redirects-and-rewrites","title":"Enhancing Security for Redirects and Rewrites","summary":"Learn how security measures in URI handling can prevent semantic attacks, where malicious hosts exploit redirects and rewrites to mimic trusted sites, leading to phishing and data breaches.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/understanding-csrf-attacks","distance":0.2694},{"site":"vercel-kb","path":"/kb/guide/understanding-xss-attacks","distance":0.3},{"site":"vercel-docs","path":"/docs/routing/redirects","distance":0.3359},{"site":"vercel-docs","path":"/docs/cdn-security/security-headers","distance":0.3596},{"site":"vercel-kb","path":"/kb/guide/avoiding-duplicate-content-with-vercel-app-urls","distance":0.3618}],"related":[{"site":"vercel-docs","path":"/docs/routing/redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security/security-headers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects/configuration-redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/security","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/understanding-csrf-attacks","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/understanding-xss-attacks","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/avoiding-duplicate-content-with-vercel-app-urls","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/understanding-the-samesite-cookie-attribute","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/emergency-redirect","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/ensuring-safe-and-effective-infrastructure-testing","title":"Ensuring safe and effective infrastructure testing","summary":"We conduct regular penetration testing through certified third-party assessors to secure the Vercel platform. This guide explains why we handle infrastructure testing centrally and what security resources are available to customers.","outbound":[{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/security/shared-responsibility"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/security/compliance","distance":0.1771},{"site":"vercel-kb","path":"/kb/guide/penetration-testing-on-vercel","distance":0.2016},{"site":"vercel-docs","path":"/docs/security","distance":0.2029},{"site":"vercel-docs","path":"/docs/security/shared-responsibility","distance":0.2251},{"site":"vercel-kb","path":"/kb/guide/how-to-conduct-pci-scans-on-vercel-guide","distance":0.2493}],"related":[{"site":"vercel-docs","path":"/docs/security/compliance","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall","via":"neighbor"},{"site":"v0","path":"/docs/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security/encryption","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/penetration-testing-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-conduct-pci-scans-on-vercel-guide","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-effectively-load-test-your-vercel-application","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/is-vercel-soc-2-compliant","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/is-vercel-pci-compliant","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/eve-agent-prompt-injection","title":"How to protect your eve agent from prompt injection with Arcjet","summary":"Detect and block prompt injection in your eve agent with Arcjet Guards. Screen tool results and incoming Slack messages before they reach your AI model.","outbound":[{"site":"eve","path":"/docs/channels/slack"},{"site":"eve","path":"/docs/guides/auth-and-route-protection"},{"site":"eve","path":"/docs/guides/dev-tui"},{"site":"eve","path":"/docs/guides/hooks"},{"site":"eve","path":"/docs/tools"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","distance":0.2793},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","distance":0.3193},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","distance":0.3227},{"site":"vercel-kb","path":"/kb/guide/give-eve-agent-secure-access-to-aws-rds-database","distance":0.3331},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","distance":0.3399}],"related":[{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"eve","path":"/docs/concepts/security-model","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/give-eve-agent-secure-access-to-aws-rds-database","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/eve-agent-with-resend","title":"Give your eve agent an email inbox with Resend","summary":"Connect an eve agent to email using the Chat SDK channel and the Resend adapter. Handle inbound email, threaded replies, attachments, and proactive sends.","outbound":[{"site":"eve","path":"/docs/channels/chat-sdk"},{"site":"eve","path":"/docs/channels/overview"},{"site":"vercel-kb","path":"/kb/guide/marketing-team-eve"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/chat-sdk-and-eve","distance":0.1649},{"site":"eve","path":"/docs/channels/chat-sdk","distance":0.2116},{"site":"eve","path":"/docs/guides/frontend/overview","distance":0.2911},{"site":"eve","path":"/docs/channels/overview","distance":0.2958},{"site":"vercel-kb","path":"/kb/guide/marketing-team-eve","distance":0.3031}],"related":[{"site":"eve","path":"/docs/guides/frontend/overview","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/chat-sdk-and-eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/triage-form-submissions-with-chat-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/sending-emails-from-an-application-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","title":"Draft content in your voice from Slack with eve","summary":"Deploy the eve content agent template, a Slack bot that drafts blog posts, LinkedIn posts, release notes, and newsletters in your house voice from Notion, using Vercel Connect, Vercel Blob, and AI Gateway.","outbound":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/connect"},{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/oidc"},{"site":"vercel-docs","path":"/docs/vercel-blob"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","distance":0.1082},{"site":"vercel-kb","path":"/kb/guide/eve-typefully-social-media-agent","distance":0.1381},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot","distance":0.1574},{"site":"vercel-docs","path":"/docs/eve/concepts","distance":0.1863},{"site":"vercel-docs","path":"/docs/eve","distance":0.1925}],"related":[{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/ship-it","via":"neighbor"},{"site":"eve","path":"/docs/concepts/security-model","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-typefully-social-media-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/sanity-eve-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot","title":"Manage your Sanity project from Slack with eve","summary":"A Slack-based Sanity copilot built on eve. It queries and edits content with GROQ, shapes schemas, manages releases, and drafts long-form pieces into Notion.","outbound":[{"site":"eve","path":"/docs/channels/overview"},{"site":"eve","path":"/docs/guides/remote-agents"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/connect"},{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/oidc"},{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-kb","path":"/kb/guide/marketing-team-eve"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/eve-typefully-social-media-agent","distance":0.1179},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","distance":0.1574},{"site":"vercel-kb","path":"/kb/guide/sanity-eve-agent","distance":0.1966},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","distance":0.2022},{"site":"vercel-kb","path":"/kb/guide/marketing-team-eve","distance":0.206}],"related":[{"site":"eve","path":"/docs/concepts/security-model","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","via":"neighbor"},{"site":"eve","path":"/docs/agent-config","via":"neighbor"},{"site":"eve","path":"/docs/reference/typescript-api","via":"neighbor"},{"site":"eve","path":"/docs/concepts/built-in-tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-typefully-social-media-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/sanity-eve-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","title":"Build your first Slack agent with eve","summary":"Deploy the eve Slack agent template: a starter Slack bot built on the eve framework with an example tool and skill.","outbound":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/connect"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","distance":0.1082},{"site":"vercel-kb","path":"/kb/guide/eve-typefully-social-media-agent","distance":0.1656},{"site":"eve","path":"/docs/getting-started","distance":0.1829},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","distance":0.1947},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot","distance":0.2022}],"related":[{"site":"eve","path":"/docs/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/ship-it","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-typefully-social-media-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/eve-typefully-social-media-agent","title":"Ship social posts from Slack with eve and Typefully","summary":"A Slack-based social media agent built on eve. It drafts posts and threads for X, LinkedIn, Threads, Bluesky, and Mastodon through Typefully, manages the publishing queue, reads analytics, and drafts long-form pieces into Notion.","outbound":[{"site":"eve","path":"/docs/channels/overview"},{"site":"eve","path":"/docs/guides/remote-agents"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/connect"},{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/oidc"},{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-kb","path":"/kb/guide/marketing-team-eve"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot","distance":0.1179},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","distance":0.1381},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","distance":0.1656},{"site":"vercel-kb","path":"/kb/guide/marketing-team-eve","distance":0.1659},{"site":"vercel-kb","path":"/kb/guide/sanity-eve-agent","distance":0.232}],"related":[{"site":"eve","path":"/docs/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/ship-it","via":"neighbor"},{"site":"eve","path":"/docs/reference/typescript-api","via":"neighbor"},{"site":"eve","path":"/docs/agent-config","via":"neighbor"},{"site":"eve","path":"/docs/subagents","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/sanity-eve-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-eve-subagents","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/export-domain-dns-records-via-api","title":"How to Export Your Domain's DNS Records from Vercel","summary":"Learn how to utilize our API to export your domain's DNS records from Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","distance":0.2113},{"site":"vercel-docs","path":"/docs/domains/working-with-dns","distance":0.2603},{"site":"vercel-docs","path":"/docs/domains","distance":0.2795},{"site":"vercel-docs","path":"/docs/cli/dns","distance":0.2801},{"site":"vercel-kb","path":"/kb/guide/zero-downtime-migration-for-dns","distance":0.2859}],"related":[{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-dns","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/dns","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/dns/list-existing-dns-records","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/zero-downtime-migration-for-dns","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-domain-using-the-vercel-api","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/zero-downtime-migration","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/filter-query-parameters","title":"Filtering query parameters","summary":"Learn how to filter query parameters in your Middleware.","outbound":[{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/routing-middleware/api"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/modify-request-headers","distance":0.2679},{"site":"vercel-kb","path":"/kb/guide/rendering-content-based-on-device","distance":0.3255},{"site":"vercel-docs","path":"/docs/routing-middleware/getting-started","distance":0.3444},{"site":"vercel-kb","path":"/kb/guide/add-response-header","distance":0.3464},{"site":"vercel-docs","path":"/docs/routing-middleware","distance":0.359}],"related":[{"site":"vercel-docs","path":"/docs/routing-middleware/getting-started","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/modify-request-headers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/middleware-and-routing","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/redirecting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/filtering","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-params","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects/configuration-redirects","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/proxy","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/rendering-content-based-on-device","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/add-response-header","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/use-crypto-web-api","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/fine-tuning-openai-nextjs","title":"Fine-tuning GPT with OpenAI, Next.js, and Vercel AI SDK","summary":"In this guide, we will build Shooketh – an AI bot fine-tuned on Shakespeare's literary works with OpenAI GPT-4o and the Vercel AI SDK.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.2771},{"site":"vercel-kb","path":"/kb/guide/openai-function-calling","distance":0.3283},{"site":"ai-sdk","path":"/cookbook/guides/o3","distance":0.3411},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","distance":0.3447},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","distance":0.3461}],"related":[{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/o3","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/prompt-engineering","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/text","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/openai-function-calling","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ml-models-hugging-face","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/firewall-terraform-configuration","title":"Firewall Terraform Configuration","summary":"Learn how to create scalable firewall configurations with Terraform","outbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/project-configuration/general-settings"},{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-api"},{"site":"vercel-kb","path":"/kb/guide/vercel-waf-vs-cloudflare-waf"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/managed-rulesets","distance":0.35},{"site":"vercel-docs","path":"/docs/cli/firewall","distance":0.3535},{"site":"vercel-kb","path":"/kb/guide/migrate-containers-from-aws-to-vercel","distance":0.3686},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules","distance":0.3694},{"site":"vercel-docs","path":"/docs/rest-api/security/read-firewall-configuration","distance":0.3705}],"related":[{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-api","via":"inbound"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/managed-rulesets","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/firewall","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/read-firewall-configuration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-containers-from-aws-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/integrating-terraform-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/first-input-delay-vs-interaction-to-next-paint","title":"First Input Delay \\(FID\\) vs. Interaction to Next Paint \\(INP\\)","summary":"Learn about the differences between FID and INP and how to optimize your website's INP score.","outbound":[{"site":"vercel-docs","path":"/docs/speed-insights"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/speed-insights/metrics","distance":0.2941},{"site":"vercel-kb","path":"/kb/guide/how-to-improve-core-web-vitals","distance":0.3115},{"site":"vercel-kb","path":"/kb/guide/why-site-performance-matters","distance":0.3788},{"site":"vercel-docs","path":"/docs/vercel-toolbar/interaction-timing-tool","distance":0.3987},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-next.js-sitecore-jss","distance":0.412}],"related":[{"site":"vercel-docs","path":"/docs/speed-insights/metrics","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/interaction-timing-tool","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/analytics","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/analytics","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/using-speed-insights","via":"neighbor"},{"site":"vercel-docs","path":"/docs/partial-prerendering","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-report-web-vitals","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-site-performance-matters","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/optimizing-hard-navigations","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-reduce-my-build-time-with-next-js-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/fix-shared-array-buffer-not-defined-nextjs-react","title":"How can I fix SharedArrayBuffer is not defined?","summary":"Learn how to enable cross-origin isolation to fix SharedArrayBuffer not being defined.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/troubleshooting-cross-origin-errors-neterr-blocked-by-orb-with-deployment-protection","distance":0.4215},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-when-i-run-into-build-output-limits-with-next-js-on-vercel","distance":0.4427},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/advanced-node-configuration","distance":0.443},{"site":"vercel-kb","path":"/kb/guide/how-to-enable-cors","distance":0.4442},{"site":"nextjs","path":"/docs/app/guides/memory-usage","distance":0.4488}],"related":[{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/advanced-node-configuration","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/memory-usage","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/videos","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/shared-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/skew-protection","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/local-development","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-cross-origin-errors-neterr-blocked-by-orb-with-deployment-protection","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-enable-cors","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/understanding-xss-attacks","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/library-sdk-compatible-with-vercel-edge-runtime-and-functions","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/isr-observability-framework-discrepancies","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/fixing-deployments-that-hang-after-the-build-step-succeeds","title":"Fixing deployments that hang after the build step succeeds","summary":"Vercel deployment stuck in \"Building\" after the build succeeds, with checks and domain assignment pending? The cause is usually a Node.js process that does its work but never exits. This guide shows you how to unblock, diagnose, and resolve it.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/troubleshooting-build-error-build-step-did-not-complete-within-45-minutes","distance":0.2509},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","distance":0.2798},{"site":"vercel-kb","path":"/kb/guide/how-do-i-resolve-a-module-not-found-error","distance":0.3138},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-404-errors","distance":0.3285},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-sigkill-out-of-memory-errors","distance":0.3321}],"related":[{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/debug-cache-issues","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability/debug-production-errors","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/rollback-production-deployment","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-build-error-build-step-did-not-complete-within-45-minutes","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-resolve-a-module-not-found-error","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-404-errors","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-aren-t-commits-triggering-deployments-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-deployed-project-giving-404","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/fluid-compute-vs-cloud-cost","title":"How Fluid compute pricing compares to EC2, Fargate, and EKS","summary":"Compare Fluid compute with Active CPU pricing to Amazon EC2, AWS Fargate, and Amazon EKS on cost per active vCPU-hour, and see why provisioned pricing hides the cost of idle CPU.","outbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/vercel-vs-kubernetes"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing","distance":0.2237},{"site":"vercel-docs","path":"/docs/fluid-compute","distance":0.2428},{"site":"vercel-docs","path":"/docs/fundamentals/what-is-compute","distance":0.2782},{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel","distance":0.2787},{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute","distance":0.2971}],"related":[{"site":"vercel-docs","path":"/docs/fundamentals/what-is-compute","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-cloudflare","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-services-fluid-compute","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/full-stack-preview-deployments-on-vercel","title":"Full-stack previews on Vercel","summary":"Learn how to use full-stack previews for your Vercel projects. Deploy Next.js, FastAPI, and a containerized Go service together in one project, then review every cross-service change through one preview URL.","outbound":[{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/environment-variables/manage-across-environments"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/functions/container-images"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/services/routing"},{"site":"vercel-kb","path":"/kb/guide/docker"},{"site":"vercel-kb","path":"/kb/guide/vercel-services"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-services","distance":0.1744},{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker","distance":0.2063},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","distance":0.2087},{"site":"vercel-kb","path":"/kb/guide/docker-compose-concepts-on-vercel","distance":0.2217},{"site":"vercel-docs","path":"/docs/services","distance":0.2261}],"related":[{"site":"vercel-docs","path":"/docs/services","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/services/experimental","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-php-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-containers-from-aws-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/geo-ip-headers-geolocation-vercel-functions","title":"How can I use geolocation IP headers?","summary":"Learn how to read geolocation headers on Vercel with Next.js or any frontend framework.","outbound":[{"site":"vercel-docs","path":"/docs/functions/functions-api-reference"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/routing-middleware/api","distance":0.2886},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","distance":0.3229},{"site":"vercel-docs","path":"/docs/functions","distance":0.3327},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","distance":0.3368},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference","distance":0.3384}],"related":[{"site":"vercel-docs","path":"/docs/routing-middleware/api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","via":"neighbor"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-configure-the-cache-control-response-header-in-vercel-projects","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-netlify","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/posthog-nextjs-vercel-feature-flags-analytics","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/geolocation-script","title":"Load Google Analytics script based on user location in Next.js","summary":"Learn how you can conditionally load a Google Analytics script based on your user's location","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/script"},{"site":"nextjs","path":"/docs/app/api-reference/functions/headers"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/geo-ip-headers-geolocation-vercel-functions","distance":0.3861},{"site":"vercel-shop","path":"/docs/skills/enable-analytics","distance":0.3876},{"site":"vercel-kb","path":"/kb/guide/deploying-nextjs-using-fathom-analytics-with-vercel","distance":0.4062},{"site":"vercel-docs","path":"/docs/analytics/package","distance":0.4121},{"site":"vercel-docs","path":"/docs/analytics/redacting-sensitive-data","distance":0.4132}],"related":[{"site":"vercel-shop","path":"/docs/skills/enable-analytics","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/package","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/redacting-sensitive-data","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/scripts","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/analytics","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/third-party-libraries","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/scripts","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/third-party-libraries","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/privacy-policy","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/getting-started-with-nextjs-typescript-stripe","title":"Getting started with Next.js, TypeScript, and Stripe Checkout","summary":"Add payments functionality to your Next.js applications with Stripe and deploy to Vercel.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/cli/create-next-app"}],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-deploy-a-next-js-online-store-with-stripe","distance":0.1215},{"site":"vercel-docs","path":"/docs/integrations/ecommerce/stripe","distance":0.2048},{"site":"vercel-kb","path":"/kb/guide/deploying-crystallize-with-vercel","distance":0.2379},{"site":"vercel-kb","path":"/kb/guide/build-commission-free-ios-checkouts-with-vercel-and-paddle","distance":0.2438},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-shopify-storefront-with-vercel","distance":0.2556}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"inbound"},{"site":"vercel-docs","path":"/docs/integrations/ecommerce/stripe","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-deploy-a-next-js-online-store-with-stripe","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/sitecore","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-crystallize-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-commission-free-ios-checkouts-with-vercel-and-paddle","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/integrate-vercel-and-contentstack","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","title":"How to build a GitHub agent with eve and GitHub Tools","summary":"Build a GitHub agent with eve, GitHub Tools, and Vercel Connect. Register AI-callable GitHub tools, gate writes behind durable approval, and reply to @mentions in issues and pull requests with no stored GitHub credentials.","outbound":[{"site":"eve","path":"/docs/channels/github"},{"site":"eve","path":"/docs/tools"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/connect/concepts"},{"site":"vercel-docs","path":"/docs/oidc"}],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/channels/github","distance":0.1597},{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect","distance":0.1771},{"site":"vercel-kb","path":"/kb/guide/build-a-browser-agent","distance":0.19},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","distance":0.1971},{"site":"vercel-docs","path":"/docs/eve","distance":0.2033}],"related":[{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/ship-it","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/nextjs","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/give-eve-agent-secure-access-to-aws-rds-database","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect","title":"Build a GitHub agent with Vercel Connect","summary":"Build a GitHub agent that helps your team work through issues and PRs. Chat SDK handles the interactivity and AI SDK runs the tool-calling loop.","outbound":[{"site":"ai-sdk","path":"/docs/agents/building-agents"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway"},{"site":"chat-sdk","path":"/docs/create-chat-sdk"},{"site":"chat-sdk","path":"/docs/streaming"},{"site":"chat-sdk","path":"/docs/vercel-connect"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/connect/legal"},{"site":"vercel-docs","path":"/docs/connect/quickstart"},{"site":"vercel-docs","path":"/docs/connect/ts-sdk-reference"},{"site":"vercel-kb","path":"/kb/guide/ship-a-github-code-review-bot-with-hono-and-redis"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/linear-agent-vercel-connect","distance":0.1535},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect","distance":0.1554},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","distance":0.165},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","distance":0.1771},{"site":"vercel-kb","path":"/kb/guide/slack-bot-vercel-blob","distance":0.1918}],"related":[{"site":"eve","path":"/docs/channels/github","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/slackbot","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/linear-agent-vercel-connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/slack-bot-vercel-blob","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/give-eve-agent-secure-access-to-aws-rds-database","title":"Give your eve agent secure access to your private AWS RDS database","summary":"Connect an eve agent to a private AWS RDS database using Vercel Secure Compute and VPC peering, with a read-only query tool.","outbound":[{"site":"vercel-docs","path":"/docs/eve"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/eve","distance":0.1886},{"site":"vercel-docs","path":"/docs/eve/concepts","distance":0.2134},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","distance":0.2273},{"site":"vercel-kb","path":"/kb/guide/build-a-browser-agent","distance":0.2373},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","distance":0.2382}],"related":[{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/vercel","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/ship-it","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/overview","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/nextjs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/observability","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-a-browser-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/google-stitch-vercel-drop","title":"Deploy a Google Stitch design with Vercel Drop","summary":"Download the HTML from your Google Stitch screens and deploy them to production with Vercel Drop, with no Git or CLI required.","outbound":[{"site":"vercel-docs","path":"/docs/deployments/managing-deployments"},{"site":"vercel-docs","path":"/docs/drop"},{"site":"vercel-docs","path":"/docs/git"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/vercel-drop-vs-cloudflare-direct-upload"},{"site":"vercel-kb","path":"/kb/guide/vercel-drop-vs-netlify-drop"},{"site":"vercel-kb","path":"/kb/guide/webflow-vercel-drop"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/drop","distance":0.2177},{"site":"vercel-kb","path":"/kb/guide/deploying-stencil-with-vercel","distance":0.2324},{"site":"vercel-kb","path":"/kb/guide/webflow-vercel-drop","distance":0.2404},{"site":"vercel-kb","path":"/kb/guide/claude-design","distance":0.2421},{"site":"vercel-kb","path":"/kb/guide/vercel-drop-vs-netlify-drop","distance":0.2465}],"related":[{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-stencil-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/webflow-vercel-drop","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/claude-design","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-drop-vs-netlify-drop","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/handling-backpressure","title":"Handling Backpressure","summary":"Learn how to handle backpressure by pushing data into a steam as it's needed, rather than as it's ready.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/functions/streaming-functions"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/what-is-streaming","distance":0.2221},{"site":"vercel-kb","path":"/kb/guide/processing-data-chunks","distance":0.233},{"site":"vercel-docs","path":"/docs/functions/streaming-functions","distance":0.2718},{"site":"vercel-kb","path":"/kb/guide/streaming-from-llm","distance":0.3067},{"site":"nextjs","path":"/docs/app/guides/streaming","distance":0.3322}],"related":[{"site":"vercel-docs","path":"/docs/functions/streaming-functions","via":"inbound"},{"site":"nextjs","path":"/docs/app/guides/streaming","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/backpressure","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/streaming","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/edge","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/streaming","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/streaming","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/processing-data-chunks","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/streaming-from-llm","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/handling-node-request-body","title":"Handling Node.js Request Bodies with Vercel","summary":"Parse Node.js request bodies for use inside Serverless Functions deployed with Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-get-the-raw-body-of-a-serverless-function","distance":0.2515},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","distance":0.2846},{"site":"vercel-kb","path":"/kb/guide/how-to-bypass-vercel-body-size-limit-serverless-functions","distance":0.3249},{"site":"vercel-kb","path":"/kb/guide/using-express-with-vercel","distance":0.3352},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-files-in-serverless-functions","distance":0.3472}],"related":[{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/advanced-node-configuration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-get-the-raw-body-of-a-serverless-function","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-bypass-vercel-body-size-limit-serverless-functions","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-express-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-aws-s3-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/processing-data-chunks","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/hipaa-compliance-guide-vercel","title":"How to build and maintain HIPAA-compliant applications on Vercel","summary":"Deploy HIPAA-compliant healthcare apps on Vercel with built-in security, BAAs, and scalable serverless infrastructure.","outbound":[{"site":"vercel-docs","path":"/docs/audit-log"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-docs","path":"/docs/rbac"},{"site":"vercel-docs","path":"/docs/security/compliance"},{"site":"vercel-docs","path":"/docs/security/shared-responsibility"},{"site":"vercel-docs","path":"/docs/vercel-firewall"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/is-vercel-hipaa-compliant","distance":0.1367},{"site":"vercel-docs","path":"/docs/security/compliance","distance":0.2163},{"site":"vercel-kb","path":"/kb/guide/is-vercel-soc-2-compliant","distance":0.298},{"site":"vercel-docs","path":"/docs/security/shared-responsibility","distance":0.3048},{"site":"vercel-kb","path":"/kb/guide/ensuring-safe-and-effective-infrastructure-testing","distance":0.3101}],"related":[{"site":"vercel-kb","path":"/kb/guide/is-vercel-hipaa-compliant","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/is-vercel-soc-2-compliant","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ensuring-safe-and-effective-infrastructure-testing","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/hosting-backend-apis","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/hosting-backend-apis","title":"Hosting your API on Vercel","summary":"Learn how to build and scale performant APIs on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/observability"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/how-to-allowlist-deployment-ip-address"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","distance":0.1631},{"site":"vercel-docs","path":"/docs/functions","distance":0.176},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify","distance":0.1806},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud","distance":0.1881},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","distance":0.1978}],"related":[{"site":"vercel-docs","path":"/docs/fundamentals/what-is-compute","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-services-fluid-compute","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-can-i-add-a-custom-build-step-to-my-project","title":"How can I add a custom build step to my project? ","summary":"Learn how to add a custom build step for your project.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/per-environment-and-per-branch-build-commands","distance":0.2836},{"site":"vercel-kb","path":"/kb/guide/dynamic-build-commands","distance":0.2932},{"site":"vercel-docs","path":"/docs/cli/build","distance":0.2965},{"site":"vercel-docs","path":"/docs/builds/build-features","distance":0.3077},{"site":"vercel-kb","path":"/kb/guide/using-vercel-cli-for-custom-workflows","distance":0.3199}],"related":[{"site":"vercel-docs","path":"/docs/cli/build","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds/build-features","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/builds","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds/build-image","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/per-environment-and-per-branch-build-commands","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/dynamic-build-commands","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-vercel-cli-for-custom-workflows","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-the-ignored-build-step-field-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-locally-built-nextjs","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-can-i-disable-auto-renewals-for-a-domain-registered-with-vercel","title":"Can I disable auto renewals for a domain registered with Vercel?","summary":"Learn about disabling auto-renewal of domains registered with Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains/renew-a-domain","distance":0.2516},{"site":"vercel-kb","path":"/kb/guide/how-do-i-remove-a-domain-from-my-vercel-account","distance":0.2878},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/update-auto-renew-for-a-domain","distance":0.3271},{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-refund-for-a-domain-purchased-or-renewed-with-vercel","distance":0.3286},{"site":"vercel-kb","path":"/kb/guide/transferring-domains-to-vercel","distance":0.3393}],"related":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains/renew-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/update-auto-renew-for-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/remove-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/registrar-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-remove-a-domain-from-my-vercel-account","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-refund-for-a-domain-purchased-or-renewed-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-change-my-nameservers-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-delete-a-vercel-team","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-can-i-increase-the-limit-of-redirects-or-use-dynamic-redirects-on-vercel","title":"How can I increase the limit of redirects or use dynamic redirects on Vercel?","summary":"Instructions on how to use Serverless Functions to handle redirects on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/project-configuration"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts"},{"site":"vercel-docs","path":"/docs/routing-middleware"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/routing/redirects","distance":0.1617},{"site":"vercel-kb","path":"/kb/guide/dynamic-redirects-with-global-config-and-next-js-proxy","distance":0.1852},{"site":"vercel-docs","path":"/docs/routing/redirects/configuration-redirects","distance":0.1883},{"site":"vercel-kb","path":"/kb/guide/managing-redirects-from-your-cms-using-vercel-bulk-redirects","distance":0.2113},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-netlify","distance":0.2172}],"related":[{"site":"vercel-docs","path":"/docs/routing/redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects/configuration-redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects/manage-redirects-at-scale","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/redirecting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects/bulk-redirects/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects/bulk-redirects","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/redirecting","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/dynamic-redirects-with-global-config-and-next-js-proxy","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-netlify","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-reverse-proxy-rewrites-external","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-permanent-redirects","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-can-i-move-a-domain-to-a-team","title":"How can I move a domain to a Vercel team?","summary":"Information on how to move domains between accounts on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/projects/transferring-projects"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains/transfer-your-domain","distance":0.1201},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-to-vercel","distance":0.1471},{"site":"vercel-kb","path":"/kb/guide/transferring-domains-to-vercel","distance":0.1586},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-out-of-vercel","distance":0.1869},{"site":"vercel-kb","path":"/kb/guide/how-to-move-a-domain-between-vercel-projects-with-zero-downtime","distance":0.1889}],"related":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains/transfer-your-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/move-a-project-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/transferring-domains-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-out-of-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-move-a-domain-between-vercel-projects-with-zero-downtime","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/zero-downtime-migration","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-can-i-prerender-my-application-on-vercel","title":"How can I prerender my application on Vercel?","summary":"Learn how to enable prerendering with your frontend framework on Vercel for better performance and SEO.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/partial-prerendering/quickstart","distance":0.262},{"site":"vercel-docs","path":"/docs/partial-prerendering","distance":0.2665},{"site":"vercel-kb","path":"/kb/guide/deploying-preact-with-vercel","distance":0.2804},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks","distance":0.2831},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-ruby-on-rails-applications","distance":0.2855}],"related":[{"site":"vercel-docs","path":"/docs/partial-prerendering/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/partial-prerendering","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/static-site-generation","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-preact-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-ruby-on-rails-applications","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/integration-guide-for-sap-composable-storefront","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/optimizing-hard-navigations","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-react-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel","title":"How can I reduce my Vercel Functions usage on Vercel?","summary":"Reduce Vercel Functions usage and cost under Fluid compute pricing with caching, rendering strategies, and function configuration.","outbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/memory"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing"},{"site":"vercel-docs","path":"/docs/limits/fair-use-guidelines"},{"site":"vercel-docs","path":"/docs/project-configuration"}],"inbound":[{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing","distance":0.0984},{"site":"vercel-docs","path":"/docs/functions","distance":0.1732},{"site":"vercel-docs","path":"/docs/fluid-compute","distance":0.1827},{"site":"vercel-docs","path":"/docs/functions/limitations","distance":0.191},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing","distance":0.1911}],"related":[{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/what-is-compute","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/nextjs-on-vercel-vs-netlify","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-services-fluid-compute","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/hosting-backend-apis","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-can-i-run-end-to-end-tests-after-my-vercel-preview-deployment","title":"How can I run end-to-end tests after my Vercel Preview Deployment?","summary":"Learn how to use the Vercel CLI in combination with your CI/CD provider to run end-to-end tests for every code change.","outbound":[{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation"},{"site":"vercel-docs","path":"/docs/webhooks"}],"inbound":[{"site":"vercel-docs","path":"/docs/git/vercel-for-github"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/using-vercel-cli-for-custom-workflows","distance":0.2428},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-circleci-with-vercel","distance":0.2592},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","distance":0.2594},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-bitbucket-pipelines-with-vercel","distance":0.2658},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-gitlab-pipelines-with-vercel","distance":0.2804}],"related":[{"site":"vercel-docs","path":"/docs/git/vercel-for-github","via":"inbound"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-checks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-vercel-cli-for-custom-workflows","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-circleci-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-bitbucket-pipelines-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-gitlab-pipelines-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-can-i-serve-multiple-projects-under-a-single-domain","title":"How can I serve multiple projects under a single domain?","summary":"Learn how to serve multiple Vercel projects from a single domain.","outbound":[{"site":"vercel-docs","path":"/docs/microfrontends"},{"site":"vercel-docs","path":"/docs/microfrontends/quickstart"},{"site":"vercel-docs","path":"/docs/project-configuration"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/quickstart","distance":0.2165},{"site":"vercel-docs","path":"/docs/microfrontends/routing","distance":0.2394},{"site":"vercel-docs","path":"/docs/microfrontends/quickstart","distance":0.2508},{"site":"vercel-kb","path":"/kb/guide/structure-your-application","distance":0.2533},{"site":"vercel-kb","path":"/kb/guide/nextjs-multi-tenant-application","distance":0.2569}],"related":[{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/routing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/monorepos","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/structure-your-application","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/nextjs-multi-tenant-application","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-do-my-vercel-deployments-have-multiple-domains","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-aws-s3-with-vercel","title":"How can I use AWS S3 with Vercel?","summary":"Example how to use AWS S3 library on Vercel","outbound":[{"site":"vercel-docs","path":"/docs/vercel-blob"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-bypass-vercel-body-size-limit-serverless-functions","distance":0.2085},{"site":"vercel-docs","path":"/docs/vercel-blob/client-upload","distance":0.2186},{"site":"vercel-docs","path":"/docs/vercel-blob/server-upload","distance":0.2257},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nextjs","distance":0.234},{"site":"vercel-kb","path":"/kb/guide/vercel-blob","distance":0.2389}],"related":[{"site":"vercel-docs","path":"/docs/vercel-blob/client-upload","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/server-upload","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/examples","via":"neighbor"},{"site":"vercel-docs","path":"/docs/oidc/aws","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-bypass-vercel-body-size-limit-serverless-functions","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nextjs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-upload-and-store-files-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/best-practices-for-hosting-videos-on-vercel-nextjs-mp4-gif","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/user-uploaded-files-vercel-sandbox-and-blob","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-aws-sdk-environment-variables-on-vercel","title":"How can I use AWS SDK Environment Variables on Vercel?","summary":"How to use AWS SDK Environment Variables on Vercel","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/environment-variables/reserved-environment-variables"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/environment-variables/reserved-environment-variables","distance":0.2147},{"site":"vercel-docs","path":"/docs/environment-variables","distance":0.2401},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","distance":0.2773},{"site":"vercel-docs","path":"/docs/environment-variables/managing-environment-variables","distance":0.2806},{"site":"vercel-docs","path":"/docs/environment-variables/manage-across-environments","distance":0.3075}],"related":[{"site":"vercel-docs","path":"/docs/environment-variables/reserved-environment-variables","via":"inbound"},{"site":"vercel-docs","path":"/docs/environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/managing-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/manage-across-environments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/advanced-node-configuration","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/env-vars","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-aws-s3-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-private-dependencies-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-does-my-serverless-function-work-locally-but-not-when-deployed","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-bitbucket-pipelines-with-vercel","title":"How can I use Bitbucket Pipelines with Vercel?","summary":"Learn how to use Bitbucket Pipelines to deploy to Vercel including support for Bitbucket Data Center.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-gitlab-pipelines-with-vercel","distance":0.0997},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-circleci-with-vercel","distance":0.1326},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket","distance":0.1656},{"site":"vercel-kb","path":"/kb/guide/can-i-use-bitbucket-data-center-with-vercel","distance":0.18},{"site":"vercel-docs","path":"/docs/git","distance":0.1911}],"related":[{"site":"vercel-docs","path":"/docs/git","via":"inbound"},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket","via":"inbound"},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-gitlab-pipelines-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-circleci-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-i-use-bitbucket-data-center-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-vercel-cli-for-custom-workflows","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-circleci-with-vercel","title":"How can I use CircleCI with Vercel?","summary":"Learn how to use CircleCI to deploy to Vercel with custom CI/CD.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-gitlab-pipelines-with-vercel","distance":0.1267},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-bitbucket-pipelines-with-vercel","distance":0.1326},{"site":"vercel-kb","path":"/kb/guide/using-vercel-cli-for-custom-workflows","distance":0.1721},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","distance":0.1997},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","distance":0.2062}],"related":[{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/builds","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-gitlab-pipelines-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-bitbucket-pipelines-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-vercel-cli-for-custom-workflows","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-files-in-serverless-functions","title":"How can I use files in Vercel Functions?","summary":"Learn how to import files inside Serverless Functions on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/monorepos"}],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/frontend"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack"},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-aws-s3-with-vercel","distance":0.2553},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","distance":0.2656},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/advanced-configuration","distance":0.2687},{"site":"vercel-kb","path":"/kb/guide/loading-static-file-nextjs-api-route","distance":0.2793},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/advanced-node-configuration","distance":0.2865}],"related":[{"site":"vercel-docs","path":"/docs/frameworks","via":"inbound"},{"site":"vercel-docs","path":"/docs/frameworks/frontend","via":"inbound"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack","via":"inbound"},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks","via":"inbound"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-aws-s3-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/loading-static-file-nextjs-api-route","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-express-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nuxt","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-function-250mb-limit","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-github-actions-with-vercel","title":"How can I use GitHub Actions with Vercel?","summary":"GitHub Actions with Vercel works best when you skip duplicate builds. Learn the 4-command CLI pattern, --prebuilt flag, test gates, and rollback parity.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/git/vercel-for-github"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/why-aren-t-commits-triggering-deployments-on-vercel","distance":0.2066},{"site":"vercel-docs","path":"/docs/git","distance":0.2551},{"site":"vercel-docs","path":"/docs/git/vercel-for-github","distance":0.2587},{"site":"vercel-docs","path":"/docs/deployment-checks","distance":0.2602},{"site":"vercel-kb","path":"/kb/guide/full-stack-preview-deployments-on-vercel","distance":0.2775}],"related":[{"site":"vercel-docs","path":"/docs/git","via":"inbound"},{"site":"vercel-docs","path":"/docs/git/vercel-for-github","via":"inbound"},{"site":"vercel-docs","path":"/docs/deployment-checks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-aren-t-commits-triggering-deployments-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/full-stack-preview-deployments-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-react-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-gitlab-pipelines-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-gitlab-pipelines-with-vercel","title":"How can I use GitLab Pipelines with Vercel?","summary":"Learn how to use GitLab Pipelines to deploy to Vercel including support for self-managed GitLab.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-bitbucket-pipelines-with-vercel","distance":0.0997},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-circleci-with-vercel","distance":0.1267},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","distance":0.1552},{"site":"vercel-docs","path":"/docs/git","distance":0.1714},{"site":"vercel-kb","path":"/kb/guide/can-i-use-self-managed-gitlab-with-vercel","distance":0.1754}],"related":[{"site":"vercel-docs","path":"/docs/git","via":"inbound"},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","via":"inbound"},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-bitbucket-pipelines-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-circleci-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-i-use-self-managed-gitlab-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-vercel-cli-for-custom-workflows","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-special-characters-in-my-custom-domain","title":"How can I use special characters in my custom domain on Vercel?","summary":"How to resolve error 'The specified value \"yöur-domaín.com\" is not a fully qualified domain name' when using special characters for a custom domain in Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","distance":0.2963},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","distance":0.3365},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","distance":0.3381},{"site":"vercel-docs","path":"/docs/domains/troubleshooting","distance":0.3523},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-domain-using-the-vercel-api","distance":0.3649}],"related":[{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/troubleshooting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-domain-using-the-vercel-api","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-vercel-domain-unverified","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/wildcard-domain-without-vercel-nameservers","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","title":"How do I add a custom domain to my Vercel project?","summary":"Learn how to add a custom domain to your Vercel project.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","distance":0.0999},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","distance":0.1501},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","distance":0.1618},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting","distance":0.1702},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","distance":0.1902}],"related":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","via":"neighbor"},{"site":"v0","path":"/docs/custom-domains","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-vercel-domain-unverified","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-do-my-vercel-deployments-have-multiple-domains","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-domain-using-the-vercel-api","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-domain-using-the-vercel-api","title":"How do I add a domain using the Vercel API?","summary":"Information on adding a domain using the Vercel API.","outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/domains/add-an-existing-domain-to-the-vercel-platform","distance":0.2154},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","distance":0.2322},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","distance":0.2389},{"site":"vercel-docs","path":"/docs/rest-api/projects/add-a-domain-to-a-project","distance":0.2441},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-to-vercel","distance":0.2585}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/domains/add-an-existing-domain-to-the-vercel-platform","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/add-a-domain-to-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-a-vercel-api-access-token","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-move-a-domain-to-a-team","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/export-domain-dns-records-via-api","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-password-protection-to-my-vercel-deployment","title":"How do I add password protection to my Vercel deployment?","summary":"Enable Password Protection on a Vercel deployment, configure automation and CORS bypasses, and verify the gate before your next CI run.","outbound":[{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/automated-agent-access"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/options-allowlist"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/password-protection"},{"site":"vercel-kb","path":"/kb/guide/how-to-enable-cors"},{"site":"vercel-kb","path":"/kb/guide/structure-your-application"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/deployment-protection","distance":0.1669},{"site":"vercel-docs","path":"/docs/deployment-protection/automated-agent-access","distance":0.1788},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/password-protection","distance":0.1928},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication","distance":0.211},{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","distance":0.2121}],"related":[{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/access-control","via":"neighbor"},{"site":"vercel-docs","path":"/docs/passport","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/application-authentication-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-do-i-change-my-nameservers-on-vercel","title":"How do I change my Nameservers on Vercel?","summary":"Learn about how to change Nameservers for domains registered with Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/domains/managing-nameservers","distance":0.1315},{"site":"vercel-docs","path":"/docs/domains/working-with-nameservers","distance":0.1818},{"site":"vercel-kb","path":"/kb/guide/does-using-vercel-s-nameserver-s-lock-you-in","distance":0.2423},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","distance":0.2531},{"site":"vercel-kb","path":"/kb/guide/how-long-to-update-dns-records","distance":0.2768}],"related":[{"site":"vercel-docs","path":"/docs/domains/managing-nameservers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-nameservers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/update-nameservers-for-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-using-vercel-s-nameserver-s-lock-you-in","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-long-to-update-dns-records","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-vercel-domain-unverified","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-change-my-vercel-username","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-do-i-change-my-vercel-avatar","title":"How do I change my Vercel avatar?","summary":"Information on changing your Vercel avatar.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-change-my-vercel-username","distance":0.1723},{"site":"vercel-kb","path":"/kb/guide/how-do-i-select-a-team-on-vercel","distance":0.3409},{"site":"vercel-kb","path":"/kb/guide/how-do-i-change-my-nameservers-on-vercel","distance":0.3655},{"site":"vercel-kb","path":"/kb/guide/update-icann-domain-information-for-vercel-domain","distance":0.3656},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-to-vercel","distance":0.3756}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-change-my-vercel-username","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/general-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/manage-from-dashboard","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-select-a-team-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-change-my-nameservers-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/update-icann-domain-information-for-vercel-domain","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-do-i-change-my-vercel-username","title":"How do I change my Vercel username?","summary":"Information on changing your Vercel username.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-change-my-vercel-avatar","distance":0.1723},{"site":"vercel-kb","path":"/kb/guide/how-do-i-change-my-nameservers-on-vercel","distance":0.2951},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-to-vercel","distance":0.3338},{"site":"vercel-kb","path":"/kb/guide/update-icann-domain-information-for-vercel-domain","distance":0.3407},{"site":"vercel-kb","path":"/kb/guide/how-do-i-select-a-team-on-vercel","distance":0.375}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-change-my-vercel-avatar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/login","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/whoami","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-change-my-nameservers-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/update-icann-domain-information-for-vercel-domain","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-select-a-team-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-do-i-change-the-name-of-my-vercel-project","title":"How do I change the name of my Vercel Project?","summary":"Change your Vercel project name in the dashboard, CLI, or REST API, then update the environment variables, callbacks, and hooks that store the old name.","outbound":[{"site":"vercel-docs","path":"/docs/cli/project"},{"site":"vercel-docs","path":"/docs/cli/project-linking"},{"site":"vercel-docs","path":"/docs/deployments/generated-urls"},{"site":"vercel-docs","path":"/docs/project-configuration/general-settings"},{"site":"vercel-docs","path":"/docs/projects/managing-projects"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","distance":0.3113},{"site":"vercel-docs","path":"/docs/projects/transferring-projects","distance":0.3155},{"site":"vercel-docs","path":"/docs/cli","distance":0.3266},{"site":"vercel-docs","path":"/docs/projects/managing-projects","distance":0.3294},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","distance":0.3326}],"related":[{"site":"vercel-docs","path":"/docs/projects/transferring-projects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-move-a-domain-between-vercel-projects-with-zero-downtime","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-do-i-delete-a-vercel-team","title":"How do I delete a Vercel team?","summary":"Information on deleting a Vercel team.","outbound":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains/transfer-your-domain"},{"site":"vercel-docs","path":"/docs/projects/transferring-projects"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-delete-my-vercel-account","distance":0.1676},{"site":"vercel-kb","path":"/kb/guide/how-do-i-select-a-team-on-vercel","distance":0.231},{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-team","distance":0.2381},{"site":"vercel-kb","path":"/kb/guide/how-do-i-remove-a-domain-from-my-vercel-account","distance":0.2504},{"site":"vercel-docs","path":"/docs/rest-api/teams/remove-a-team-member","distance":0.2783}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/remove-a-team-member","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rbac/managing-team-members","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/remove-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/accounts","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-delete-my-vercel-account","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-select-a-team-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-remove-a-domain-from-my-vercel-account","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-move-a-domain-to-a-team","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-domain-using-the-vercel-api","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-do-i-delete-an-individual-deployment","title":"How do I delete an individual deployment?","summary":"Information on deleting an individual deployment.","outbound":[{"site":"vercel-docs","path":"/docs/deployments/managing-deployments"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/deployment-retention","distance":0.1195},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments","distance":0.205},{"site":"vercel-docs","path":"/docs/rest-api/deployments/delete-a-deployment","distance":0.2475},{"site":"vercel-docs","path":"/docs/deployments","distance":0.2684},{"site":"v0","path":"/docs/api/v1/reference/deployments/delete","distance":0.276}],"related":[{"site":"vercel-docs","path":"/docs/deployment-retention","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/delete-a-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/delete","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/remove","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/rollback-production-deployment","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-do-i-delete-my-vercel-account","title":"How do I delete my Vercel account?","summary":"This guide covers how to delete your personal or team account on Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-delete-a-vercel-team","distance":0.1676},{"site":"vercel-kb","path":"/kb/guide/how-do-i-remove-a-domain-from-my-vercel-account","distance":0.2521},{"site":"vercel-docs","path":"/docs/rest-api/user/delete-user-account","distance":0.2776},{"site":"vercel-docs","path":"/docs/accounts","distance":0.284},{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-team","distance":0.3115}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/user/delete-user-account","via":"neighbor"},{"site":"vercel-docs","path":"/docs/accounts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/delete-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/remove-a-domain","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-delete-a-vercel-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/managing-projects","via":"neighbor"},{"site":"v0","path":"/docs/account","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-remove-a-domain-from-my-vercel-account","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-select-a-team-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-can-i-not-signup","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-domain-using-the-vercel-api","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-do-i-disable-git-notifications-from-deployments","title":"How do I disable Git Notifications from Deployments?","summary":"If your project is connected via a Git account to your deployment, you will receive email notifications whenever the deployment has completed. How can you disable these notifications?","outbound":[{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket"},{"site":"vercel-docs","path":"/docs/git/vercel-for-github"},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/git/vercel-for-github","distance":0.2401},{"site":"vercel-kb","path":"/kb/guide/how-to-prevent-vercel-github-comments","distance":0.2632},{"site":"vercel-docs","path":"/docs/project-configuration/git-settings","distance":0.2913},{"site":"vercel-kb","path":"/kb/guide/how-do-i-get-notified-when-my-vercel-deployment-fails","distance":0.3118},{"site":"vercel-docs","path":"/docs/project-configuration/git-configuration","distance":0.3182}],"related":[{"site":"vercel-docs","path":"/docs/project-configuration/git-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/git-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/notifications","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-project-collaboration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/protected-git-scopes","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-prevent-vercel-github-comments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-get-notified-when-my-vercel-deployment-fails","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-aren-t-commits-triggering-deployments-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-do-i-generate-a-sitemap-for-my-nextjs-app-on-vercel","title":"How do I generate a “sitemap.xml” for my Next.js app on Vercel?","summary":"Guidance on how to generate a \"sitemap.xml\" at build time and runtime.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/sitemap"}],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"}],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/sitemap","distance":0.2901},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-sitemaps","distance":0.3096},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost/add-to-localhost","distance":0.3209},{"site":"vercel-kb","path":"/kb/guide/deploying-locally-built-nextjs","distance":0.3407},{"site":"vercel-docs","path":"/docs/integrations/cms/sitecore","distance":0.3448}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"inbound"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-sitemaps","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost/add-to-localhost","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/sitecore","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/serving-static-files","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/builds","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/avoiding-duplicate-content-with-vercel-app-urls","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-serve-documentation-for-agents","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-do-i-generate-an-sha-for-uploading-a-file-to-the-vercel-api","title":"How do I generate an SHA for uploading a file to the Vercel API?","summary":"When using the Vercel API to create a deployment, you first need to upload your files. An SHA is required to upload these files.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/deployments"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/deployments/upload-deployment-files","distance":0.299},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","distance":0.3311},{"site":"vercel-kb","path":"/kb/guide/deploying-jekyll-with-vercel","distance":0.3491},{"site":"vercel-kb","path":"/kb/guide/deploying-hexo-with-vercel","distance":0.3539},{"site":"vercel-docs","path":"/docs/deployments","distance":0.3558}],"related":[{"site":"vercel-docs","path":"/docs/deployments","via":"inbound"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/upload-deployment-files","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/curl","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-jekyll-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-hexo-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-angular-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-aurelia-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-hugo-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-do-i-get-notified-when-my-vercel-deployment-fails","title":"How do I get notified when my Vercel deployment fails?","summary":"When your Vercel deployment fails, both a web notification and an email notification are sent to the creator of the deployment.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-disable-git-notifications-from-deployments","distance":0.3118},{"site":"vercel-docs","path":"/docs/notifications","distance":0.3461},{"site":"vercel-kb","path":"/kb/guide/why-can-i-not-signup","distance":0.3809},{"site":"vercel-docs","path":"/docs/alerts/configure-alerts","distance":0.3968},{"site":"vercel-kb","path":"/kb/guide/why-is-my-vercel-deployment-url-being-shortened","distance":0.4044}],"related":[{"site":"vercel-docs","path":"/docs/notifications","via":"neighbor"},{"site":"vercel-docs","path":"/docs/alerts/configure-alerts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments/managing-comments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-disable-git-notifications-from-deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-can-i-not-signup","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-vercel-deployment-url-being-shortened","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-get-vercel-support","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-determine-which-vercel-deployment-introduced-an-issue","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-do-i-get-the-raw-body-of-a-serverless-function","title":"How do I get the raw body of a Serverless Function?","summary":"Learn how to disable body parsing for Vercel Serverless Functions to enable reading the raw data from a POST request.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/handling-node-request-body","distance":0.2515},{"site":"vercel-kb","path":"/kb/guide/how-to-bypass-vercel-body-size-limit-serverless-functions","distance":0.3348},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-a-502-error","distance":0.3792},{"site":"vercel-docs","path":"/docs/functions/quickstart","distance":0.4005},{"site":"vercel-kb","path":"/kb/guide/why-does-my-serverless-function-work-locally-but-not-when-deployed","distance":0.4029}],"related":[{"site":"vercel-docs","path":"/docs/functions/quickstart","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/handling-node-request-body","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/rust","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-bypass-vercel-body-size-limit-serverless-functions","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-a-502-error","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-does-my-serverless-function-work-locally-but-not-when-deployed","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/processing-data-chunks","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-do-i-lower-my-serverless-function-execution-time","title":"How do I lower my Vercel Function execution time?","summary":"Learn how to lower your Serverless Function execution time.","outbound":[{"site":"vercel-docs","path":"/docs/observability"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out","distance":0.1901},{"site":"vercel-kb","path":"/kb/guide/improve-function-cold-start-performance-on-vercel","distance":0.2389},{"site":"vercel-docs","path":"/docs/functions","distance":0.2556},{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel","distance":0.2562},{"site":"vercel-docs","path":"/docs/functions/debug-slow-functions","distance":0.2708}],"related":[{"site":"vercel-docs","path":"/docs/functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/debug-slow-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/what-is-compute","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/timeout-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/investigate-latency-issues-and-slowness","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-function-250mb-limit","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-do-i-migrate-away-from-vercel-json-env-and-build-env","title":"How do I migrate away from \\`vercel.json\\` env and build.env?","summary":"Information on how to migrate your \\`vercel.json\\` environment variables to the Environment Variables UI.","outbound":[{"site":"vercel-docs","path":"/docs/environment-variables"}],"inbound":[{"site":"vercel-docs","path":"/docs/projects/transferring-projects"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/environment-variables/managing-environment-variables","distance":0.2441},{"site":"vercel-docs","path":"/docs/environment-variables/manage-across-environments","distance":0.2883},{"site":"vercel-docs","path":"/docs/environment-variables","distance":0.2997},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","distance":0.303},{"site":"vercel-docs","path":"/docs/environment-variables/shared-environment-variables","distance":0.3313}],"related":[{"site":"vercel-docs","path":"/docs/projects/transferring-projects","via":"inbound"},{"site":"vercel-docs","path":"/docs/environment-variables/managing-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/manage-across-environments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/shared-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/sensitive-environment-variables","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/set-up-a-staging-environment-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-resolve-a-process-env-ci-true-error","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-aws-sdk-environment-variables-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-do-i-perform-vercel-redirects-based-on-query-strings","title":"How do I perform Vercel redirects based on query strings?","summary":"When using redirects with the \\`vercel.json\\` or \\`next.config.js\\` configuration file, your URL may contain query parameters that you would like to use in your re-direction, this is possible with 2 different methods.","outbound":[{"site":"vercel-docs","path":"/docs/project-configuration"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/routing/redirects/configuration-redirects","distance":0.2525},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-permanent-redirects","distance":0.2591},{"site":"vercel-kb","path":"/kb/guide/can-i-redirect-from-a-subdomain-to-a-subpath","distance":0.261},{"site":"vercel-kb","path":"/kb/guide/how-can-i-increase-the-limit-of-redirects-or-use-dynamic-redirects-on-vercel","distance":0.2894},{"site":"vercel-docs","path":"/docs/routing/redirects","distance":0.3088}],"related":[{"site":"vercel-docs","path":"/docs/routing/redirects/configuration-redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects/manage-redirects-at-scale","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-permanent-redirects","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-i-redirect-from-a-subdomain-to-a-subpath","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-increase-the-limit-of-redirects-or-use-dynamic-redirects-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-reverse-proxy-rewrites-external","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/dynamic-redirects-with-global-config-and-next-js-proxy","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-do-i-reduce-my-build-time-with-next-js-on-vercel","title":"How do I reduce my build time with Next.js on Vercel?","summary":"Reduce Next.js build times on Vercel by pre-rendering fewer pages at build time, deferring generation with ISR and image optimization, and using faster build machines.","outbound":[{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths"},{"site":"vercel-docs","path":"/docs/builds"},{"site":"vercel-docs","path":"/docs/builds/managing-builds"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/quickstart"},{"site":"vercel-docs","path":"/docs/monorepos"},{"site":"vercel-docs","path":"/docs/speed-insights"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-build-error-build-step-did-not-complete-within-45-minutes"}],"inbound":[{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/troubleshooting-build-error-build-step-did-not-complete-within-45-minutes","distance":0.1893},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","distance":0.2296},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-when-i-run-into-build-output-limits-with-next-js-on-vercel","distance":0.2413},{"site":"vercel-docs","path":"/docs/builds/managing-builds","distance":0.2466},{"site":"vercel-docs","path":"/docs/builds","distance":0.2532}],"related":[{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","via":"inbound"},{"site":"vercel-docs","path":"/docs/fundamentals/builds","via":"neighbor"},{"site":"vercel-docs","path":"/docs/image-optimization/quickstart","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-when-i-run-into-build-output-limits-with-next-js-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-react-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-next.js-sitecore-jss","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-revalidation-costs","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-do-i-remove-a-domain-from-my-vercel-account","title":"How do I remove a domain from my Vercel account?","summary":"Learn how to completely remove a domain from your Vercel account?","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains/remove-a-domain","distance":0.1463},{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-a-domain-from-a-project","distance":0.2433},{"site":"vercel-kb","path":"/kb/guide/how-do-i-delete-a-vercel-team","distance":0.2504},{"site":"vercel-kb","path":"/kb/guide/how-do-i-delete-my-vercel-account","distance":0.2521},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","distance":0.2605}],"related":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains/remove-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/remove-a-domain-from-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains/remove-a-domain-by-name","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-delete-a-vercel-team","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-delete-my-vercel-account","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-resolve-alias-errors-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-disable-auto-renewals-for-a-domain-registered-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-do-i-resolve-a-module-not-found-error","title":"How do I resolve a 'module not found' error?","summary":"Information on resolving a 'module not found' error.","outbound":[{"site":"vercel-docs","path":"/docs/deployments/logs"},{"site":"vercel-kb","path":"/kb/guide/why-are-my-build-logs-loading-infinitely-and-not-showing-up"}],"inbound":[{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/why-is-my-deployed-project-giving-404","distance":0.2997},{"site":"vercel-kb","path":"/kb/guide/fixing-deployments-that-hang-after-the-build-step-succeeds","distance":0.3138},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-404-errors","distance":0.3143},{"site":"vercel-kb","path":"/kb/guide/unable-to-find-github-repository","distance":0.3144},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","distance":0.3176}],"related":[{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","via":"inbound"},{"site":"vercel-docs","path":"/docs/builds/build-features","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/debug-cache-issues","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-deployed-project-giving-404","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/fixing-deployments-that-hang-after-the-build-step-succeeds","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-404-errors","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/unable-to-find-github-repository","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/dependencies-from-package-json-missing-after-install","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-do-i-resolve-a-process-env-ci-true-error","title":"How do I resolve a 'process.env.CI = true' error?","summary":"Information on resolving a 'process.env.CI = true' error.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-migrate-away-from-vercel-json-env-and-build-env","distance":0.3391},{"site":"vercel-docs","path":"/docs/environment-variables/managing-environment-variables","distance":0.4066},{"site":"vercel-docs","path":"/docs/environment-variables/manage-across-environments","distance":0.4206},{"site":"vercel-kb","path":"/kb/guide/dependencies-from-package-json-missing-after-install","distance":0.4253},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","distance":0.4321}],"related":[{"site":"vercel-docs","path":"/docs/environment-variables/managing-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/manage-across-environments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/sensitive-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/env","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-migrate-away-from-vercel-json-env-and-build-env","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/dependencies-from-package-json-missing-after-install","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-resolve-a-module-not-found-error","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-the-ignored-build-step-field-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-do-i-select-a-team-on-vercel","title":"How do I select a team on Vercel?","summary":"Information on selecting a team on Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-delete-a-vercel-team","distance":0.231},{"site":"vercel-docs","path":"/docs/rbac/managing-team-members","distance":0.2927},{"site":"vercel-kb","path":"/kb/guide/how-do-i-delete-my-vercel-account","distance":0.3308},{"site":"vercel-docs","path":"/docs/rest-api/teams/join-a-team","distance":0.3312},{"site":"vercel-docs","path":"/docs/cli/switch","distance":0.3321}],"related":[{"site":"vercel-docs","path":"/docs/rbac/managing-team-members","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/join-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/switch","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/list-all-teams","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/teams","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-delete-a-vercel-team","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-delete-my-vercel-account","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-domain-using-the-vercel-api","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-change-my-vercel-avatar","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-move-a-domain-to-a-team","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-do-i-store-logs-on-vercel","title":"How do I store logs on Vercel?","summary":"Learn how to store logs on Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/logs","distance":0.2453},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-datadog","distance":0.2583},{"site":"vercel-docs","path":"/docs/functions/logs","distance":0.2808},{"site":"vercel-docs","path":"/docs/drains/using-drains","distance":0.2827},{"site":"vercel-kb","path":"/kb/guide/debugging-and-troubleshooting-vercel-logs-with-sematext","distance":0.2874}],"related":[{"site":"vercel-docs","path":"/docs/logs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-datadog","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/logs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/using-drains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logdrains/creates-a-new-integration-log-drain-deprecated","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/debugging-and-troubleshooting-vercel-logs-with-sematext","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/add-structured-application-logs-to-vercel-functions","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-out-of-vercel","title":"How do I transfer my domain out of Vercel?","summary":"Information on how to transfer a domain out of Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-to-vercel","distance":0.1261},{"site":"vercel-kb","path":"/kb/guide/transferring-domains-to-vercel","distance":0.1424},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/transfer-your-domain","distance":0.1662},{"site":"vercel-kb","path":"/kb/guide/how-can-i-move-a-domain-to-a-team","distance":0.1869},{"site":"vercel-docs","path":"/docs/projects/transferring-projects","distance":0.2817}],"related":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains/transfer-your-domain","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-to-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/transferring-projects","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/transferring-domains-to-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/claim-domain-ownership","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/transfer-in-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-a-domain-s-transfer-status","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-move-a-domain-to-a-team","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/zero-downtime-migration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/zero-downtime-migration-for-dns","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-to-vercel","title":"How do I transfer my domain to Vercel?","summary":"Information on how to transfer a domain to Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/transferring-domains-to-vercel","distance":0.085},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-out-of-vercel","distance":0.1261},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/transfer-your-domain","distance":0.1371},{"site":"vercel-kb","path":"/kb/guide/how-can-i-move-a-domain-to-a-team","distance":0.1471},{"site":"vercel-kb","path":"/kb/guide/zero-downtime-migration","distance":0.2236}],"related":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains/transfer-your-domain","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/transferring-domains-to-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/transferring-projects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-out-of-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-move-a-domain-to-a-team","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/zero-downtime-migration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-ownership-of-a-vercel-team","title":"How do I transfer ownership of a Vercel team?","summary":"Learn how to transfer ownership of a Vercel team, including the exact dashboard steps to promote a new Owner and remove the original one.","outbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/trials"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"},{"site":"vercel-docs","path":"/docs/rbac/access-roles/project-level-roles"},{"site":"vercel-docs","path":"/docs/rbac/access-roles/team-level-roles"},{"site":"vercel-docs","path":"/docs/rbac/managing-team-members"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rbac/managing-team-members","distance":0.2687},{"site":"vercel-docs","path":"/docs/projects/transferring-projects","distance":0.2698},{"site":"vercel-docs","path":"/docs/accounts","distance":0.2803},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/transfer-your-domain","distance":0.3},{"site":"vercel-docs","path":"/docs/plans/pro-plan/trials","distance":0.3153}],"related":[{"site":"vercel-docs","path":"/docs/projects/transferring-projects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/transfer-your-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/enterprise-managed-users-account-update","via":"neighbor"},{"site":"vercel-docs","path":"/docs/directory-sync","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/transferring-an-integration","via":"neighbor"},{"site":"v0","path":"/docs/teams","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-move-a-domain-to-a-team","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-out-of-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-delete-a-vercel-team","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-a-vercel-api-access-token","title":"How do I use a Vercel API Access Token?","summary":"An Access Token is required in order to use the Vercel API. Tokens can be created and managed at the level of your account.","outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/sandbox/cli-reference"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/accounts/access-tokens","distance":0.1783},{"site":"vercel-docs","path":"/docs/rest-api/authentication/create-an-auth-token","distance":0.2635},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-domain-using-the-vercel-api","distance":0.268},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/tokens","distance":0.2787},{"site":"vercel-docs","path":"/docs/rest-api/authentication/list-auth-tokens","distance":0.2883}],"related":[{"site":"vercel-docs","path":"/docs/sandbox/cli-reference","via":"inbound"},{"site":"vercel-docs","path":"/docs/accounts/access-tokens","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/authentication/create-an-auth-token","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/tokens","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/authentication/list-auth-tokens","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-domain-using-the-vercel-api","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall","via":"inbound"}]},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-the-ignored-build-step-field-on-vercel","title":"How do I use the \"Ignored Build Step\" field on Vercel?","summary":"Instructions on how to use the \"Ignored Build Step\" field to programmatically prevent a new deployment from being built.","outbound":[{"site":"vercel-docs","path":"/docs/monorepos"}],"inbound":[{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build"},{"site":"vercel-docs","path":"/docs/monorepos"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","distance":0.2775},{"site":"vercel-docs","path":"/docs/builds/build-features","distance":0.2835},{"site":"vercel-kb","path":"/kb/guide/per-environment-and-per-branch-build-commands","distance":0.2837},{"site":"vercel-kb","path":"/kb/guide/dynamic-build-commands","distance":0.2957},{"site":"vercel-docs","path":"/docs/builds","distance":0.3052}],"related":[{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","via":"inbound"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","via":"inbound"},{"site":"vercel-docs","path":"/docs/builds/build-features","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/build","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/per-environment-and-per-branch-build-commands","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/dynamic-build-commands","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-aren-t-commits-triggering-deployments-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-add-a-custom-build-step-to-my-project","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-vercel-cli-for-custom-workflows","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-the-latest-npm-version-for-my-vercel-deployment","title":"How do I use the latest npm version for my Vercel Deployment?","summary":"Learn how to use the latest npm version for Vercel deployments.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/package-managers","distance":0.2394},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/node-js-versions","distance":0.2595},{"site":"vercel-kb","path":"/kb/guide/using-private-dependencies-with-vercel","distance":0.3051},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/advanced-node-configuration","distance":0.3144},{"site":"vercel-docs","path":"/docs/cli/upgrade","distance":0.32}],"related":[{"site":"vercel-docs","path":"/docs/package-managers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/node-js-versions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/advanced-node-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/upgrade","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds/build-features","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-private-dependencies-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/dependencies-from-package-json-missing-after-install","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-locally-built-nextjs","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-does-vercel-handle-copyright-infringement-claims","title":"How does Vercel handle copyright infringement claims?","summary":"Information on the process Vercel will follow when receiving a copyright infringement claim.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-get-vercel-support","distance":0.3789},{"site":"vercel-kb","path":"/kb/guide/why-running-another-cdn-on-top-of-vercel-is-not-recommended","distance":0.4071},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-to-vercel","distance":0.4071},{"site":"vercel-kb","path":"/kb/guide/is-vercel-pci-compliant","distance":0.4125},{"site":"vercel-docs","path":"/docs/security","distance":0.414}],"related":[{"site":"vercel-docs","path":"/docs/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/claim-domain-ownership","via":"neighbor"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/shared-responsibility","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains/claim-domain-ownership","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-get-vercel-support","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-running-another-cdn-on-top-of-vercel-is-not-recommended","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/is-vercel-pci-compliant","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-troubleshoot-stale-content-returned-from-the-edge-network-when-using-an-external-proxy-or-cdn","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-i-use-opencode-with-vercel-ai-gateway-to-build-features-fast","title":"How I use OpenCode with Vercel AI Gateway to build features fast","summary":"How to route different AI models to different coding tasks automatically, cutting token costs by ~70% without losing quality on the work that matters.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/byok"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents","distance":0.1959},{"site":"vercel-docs","path":"/docs/cli/ai-gateway","distance":0.2379},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","distance":0.2403},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/opencode","distance":0.2421},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/claude-code","distance":0.2745}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/opencode","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/claude-code","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-your-own-ai-model-router","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-long-to-update-dns-records","title":"How long will it take for my Vercel DNS records to update?","summary":"Information on the length of time it may take for Vercel DNS changes to take place.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/domains/troubleshooting"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/why-is-my-vercel-domain-unverified","distance":0.1645},{"site":"vercel-docs","path":"/docs/domains/working-with-dns","distance":0.1896},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","distance":0.2182},{"site":"vercel-kb","path":"/kb/guide/zero-downtime-migration-for-dns","distance":0.2311},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records","distance":0.2476}],"related":[{"site":"vercel-docs","path":"/docs/domains/troubleshooting","via":"inbound"},{"site":"vercel-docs","path":"/docs/domains/working-with-dns","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-nameservers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/managing-nameservers","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-vercel-domain-unverified","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/zero-downtime-migration-for-dns","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/zero-downtime-migration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-change-my-nameservers-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-splits-work-in-vercel-flags","title":"How Splits Work in Vercel Flags","summary":"Use weighted splits in Vercel Flags to deterministically bucket users into variants by percentage for gradual rollouts and A/B testing","outbound":[{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/run-ab-test"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/entities"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/feature-flag"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/segments"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-are-evaluated"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-are-evaluated","distance":0.1471},{"site":"vercel-docs","path":"/docs/cli/flags","distance":0.2064},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/feature-flag","distance":0.2226},{"site":"vercel-docs","path":"/docs/flags/vercel-flags","distance":0.2484},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard","distance":0.2676}],"related":[{"site":"vercel-docs","path":"/docs/cli/flags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-are-evaluated","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/roll-out-feature","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/split","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-skills","title":"How to add skills to your eve agent","summary":"Add skills to an eve agent by creating a file under agent/skills/ or installing a published skill with the npx skills add CLI.","outbound":[{"site":"eve","path":"/docs/getting-started"},{"site":"eve","path":"/docs/guides/auth-and-route-protection"},{"site":"eve","path":"/docs/guides/dynamic-capabilities"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/skills"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-eve-subagents"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/skills","distance":0.1373},{"site":"vercel-docs","path":"/docs/agent-resources/skills","distance":0.1813},{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","distance":0.1846},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","distance":0.2039},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","distance":0.2106}],"related":[{"site":"eve","path":"/docs/skills","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/skills","via":"inbound"},{"site":"ai-sdk","path":"/cookbook/guides/agent-skills","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started/extending-with-agents","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/team-playbooks","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-eve-subagents","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","title":"How to add tools to your eve agent","summary":"Add tools to an eve agent by creating a TypeScript file under agent/tools/ with defineTool, and gate sensitive ones on human approval with needsApproval.","outbound":[{"site":"eve","path":"/docs/concepts/default-harness"},{"site":"eve","path":"/docs/getting-started"},{"site":"eve","path":"/docs/guides/dynamic-capabilities"},{"site":"eve","path":"/docs/human-in-the-loop"},{"site":"eve","path":"/docs/sandbox"},{"site":"eve","path":"/docs/skills"},{"site":"eve","path":"/docs/tools"}],"inbound":[{"site":"vercel-docs","path":"/docs/eve/concepts"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/tools","distance":0.1035},{"site":"eve","path":"/docs/concepts/built-in-tools","distance":0.1906},{"site":"vercel-docs","path":"/docs/eve","distance":0.1946},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","distance":0.1947},{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.2023}],"related":[{"site":"vercel-docs","path":"/docs/eve/concepts","via":"inbound"},{"site":"eve","path":"/docs/concepts/built-in-tools","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"},{"site":"eve","path":"/docs/reference/typescript-api","via":"neighbor"},{"site":"eve","path":"/docs/connections","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/give-eve-agent-secure-access-to-aws-rds-database","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-eve-subagents","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","title":"How to add and manage environment variables on Vercel","summary":"Add environment variables to Vercel through the dashboard, CLI, or REST API, scope them to each environment, and pull them into local development.","outbound":[{"site":"nextjs","path":"/docs/pages/guides/environment-variables"},{"site":"vercel-docs","path":"/docs/cli/env"},{"site":"vercel-docs","path":"/docs/cli/pull"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/environment-variables/sensitive-environment-variables"},{"site":"vercel-docs","path":"/docs/environment-variables/shared-environment-variables"},{"site":"vercel-docs","path":"/docs/environment-variables/system-environment-variables"},{"site":"vercel-docs","path":"/docs/limits"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/environment-variables","distance":0.147},{"site":"vercel-docs","path":"/docs/environment-variables/manage-across-environments","distance":0.163},{"site":"vercel-docs","path":"/docs/environment-variables/sensitive-environment-variables","distance":0.1738},{"site":"vercel-docs","path":"/docs/cli/env","distance":0.1785},{"site":"vercel-docs","path":"/docs/environment-variables/managing-environment-variables","distance":0.1968}],"related":[{"site":"vercel-docs","path":"/docs/environment-variables/manage-across-environments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/managing-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/rotating-secrets","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/edit-an-environment-variable","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/set-up-a-staging-environment-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-aws-sdk-environment-variables-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-alias-a-preview-deployment-using-the-cli","title":"How to alias a preview deployment using the CLI","summary":"Learn how to automatically alias a Vercel preview deployment.","outbound":[{"site":"vercel-docs","path":"/docs/cli/alias"},{"site":"vercel-docs","path":"/docs/cli/deploy"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","distance":0.2581},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","distance":0.2616},{"site":"vercel-docs","path":"/docs/cli/alias","distance":0.263},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","distance":0.2818},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-gitlab-pipelines-with-vercel","distance":0.2843}],"related":[{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/generated-urls","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/aliases/assign-an-alias","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-gitlab-pipelines-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-circleci-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-bitbucket-pipelines-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-resolve-alias-errors-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-allow-the-vercel-support-team-to-access-your-deployment-source-code","title":"How to allow the Vercel Support team to access your deployments' source code?","summary":"To help troubleshoot problems, you can allow the Vercel Support team to access your Deployments' source code.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/project-configuration/security-settings","distance":0.2766},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication","distance":0.335},{"site":"vercel-docs","path":"/docs/deployment-protection/protected-source-maps","distance":0.3481},{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","distance":0.3514},{"site":"vercel-docs","path":"/docs/security/access-control","distance":0.3585}],"related":[{"site":"vercel-docs","path":"/docs/project-configuration/security-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/protected-source-maps","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/access-control","via":"neighbor"},{"site":"vercel-docs","path":"/docs/protected-git-scopes","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-allowlist-deployment-ip-address","title":"How can I allowlist IP addresses for a deployment?","summary":"Vercel deployments use dynamic outbound IPs by default. Learn how to allowlist IP addresses for a deployment with Static IPs or Secure Compute.","outbound":[{"site":"vercel-docs","path":"/docs/builds"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/networking"},{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/networking/static-ips"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-kb","path":"/kb/guide/hosting-backend-apis"}],"inbound":[{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes"},{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address","distance":0.1013},{"site":"vercel-docs","path":"/docs/networking/static-ips","distance":0.1464},{"site":"vercel-docs","path":"/docs/networking/static-ips/getting-started","distance":0.2033},{"site":"vercel-docs","path":"/docs/networking","distance":0.2297},{"site":"vercel-docs","path":"/docs/networking/secure-compute","distance":0.2389}],"related":[{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes","via":"inbound"},{"site":"vercel-docs","path":"/docs/networking/static-ips/getting-started","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/networking/configures-static-ip-s-for-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/use-vercel-with-github-ip-restrictions","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-setup-verified-proxy","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/cloudflare-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-i-use-a-proxy-on-top-of-my-vercel-deployment","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-block-bots-openai-gptbot","title":"How to block bots from OpenAI GPTBot","summary":"Learn how to use the Vercel WAF to block, rate limit, or challenge traffic from OpenAI GPTBot.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-protect-your-ai-app-from-bots","distance":0.1859},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","distance":0.1977},{"site":"vercel-docs","path":"/docs/bot-management","distance":0.2167},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall","distance":0.2344},{"site":"vercel-kb","path":"/kb/guide/protect-ai-endpoints-with-vercel-botid","distance":0.2531}],"related":[{"site":"vercel-docs","path":"/docs/bot-management","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/attack-mode","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/ip-blocking","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-protect-your-ai-app-from-bots","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/securing-ai-app-rate-limiting","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel","title":"How to build a durable AI code agent on Vercel","summary":"Build an AI agent that generates code, writes its own tests, and executes them in an isolated microVM with automatic retries.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/queues"},{"site":"vercel-docs","path":"/docs/workflows/concepts"},{"site":"vercel-kb","path":"/kb/guide/running-ai-generated-code-sandbox"},{"site":"workflow","path":"/docs/getting-started"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/how-to-run-a-multi-step-research-agent-on-vercel"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","distance":0.1938},{"site":"vercel-kb","path":"/kb/guide/how-to-execute-ai-generated-code-safely","distance":0.1944},{"site":"vercel-kb","path":"/kb/guide/running-ai-generated-code-sandbox","distance":0.2083},{"site":"vercel-docs","path":"/docs/agent-resources/workflows","distance":0.2086},{"site":"vercel-kb","path":"/kb/guide/python-ai-sdk-vercel-sandbox","distance":0.2182}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/workflows","via":"neighbor"},{"site":"workflow","path":"/docs/ai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/python","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/next","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/openai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall","title":"How to build a honeypot with Vercel Web Application Firewall","summary":"Learn how to build a honeypot with Vercel Web Application Firewall \\(WAF\\) that catches bots ignoring your robots.txt. Capture offending IPs and block them automatically with Vercel WAF Custom Rules and Persistent Actions.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/robots"},{"site":"nextjs","path":"/docs/app/getting-started/proxy"},{"site":"vercel-docs","path":"/docs/botid/get-started"},{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/drains/reference/logs"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack"},{"site":"vercel-docs","path":"/docs/headers/request-headers"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"},{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-docs","path":"/docs/rest-api/authentication/create-an-auth-token"},{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-concepts"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/ip-blocking"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/managed-rulesets"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rule-configuration"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/usage-and-pricing"},{"site":"vercel-kb","path":"/kb/guide/cloudflare-with-vercel"},{"site":"vercel-kb","path":"/kb/guide/deny-traffic-from-a-set-of-ip-addresses"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-a-vercel-api-access-token"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","distance":0.2168},{"site":"vercel-kb","path":"/kb/guide/how-to-block-bots-openai-gptbot","distance":0.2344},{"site":"vercel-kb","path":"/kb/guide/how-to-protect-your-ai-app-from-bots","distance":0.2592},{"site":"vercel-docs","path":"/docs/bot-management","distance":0.2597},{"site":"vercel-kb","path":"/kb/guide/protect-ai-endpoints-with-vercel-botid","distance":0.2742}],"related":[{"site":"vercel-docs","path":"/docs/bot-management","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/attack-mode","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/firewall","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-slack-bot-with-next-js-and-redis","title":"How to build a Slack bot with Next.js and Redis","summary":"This guide walks through building a Slack bot with Next.js, covering project setup, Slack app configuration, event handling, interactive features, and deployment.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/create-a-discord-support-bot-with-nuxt-and-redis","distance":0.128},{"site":"chat-sdk","path":"/docs/create-chat-sdk","distance":0.1859},{"site":"vercel-kb","path":"/kb/guide/run-and-track-deploys-from-slack","distance":0.1888},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","distance":0.193},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect","distance":0.1965}],"related":[{"site":"chat-sdk","path":"/docs/create-chat-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/slackbot","via":"neighbor"},{"site":"v0","path":"/docs/slack","via":"neighbor"},{"site":"chat-sdk","path":"/docs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/create-a-discord-support-bot-with-nuxt-and-redis","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/run-and-track-deploys-from-slack","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-github-code-review-bot-with-hono-and-redis","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/slack-bot-vercel-blob","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk","title":"How to build AI Agents with Vercel and the AI SDK","summary":"Learn how to build, deploy, and scale AI agents on Vercel using the AI SDK. This guide covers calling LLMs, defining tools, creating multi-step agents, and monitoring performance.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/is-step-count"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration"},{"site":"vercel-docs","path":"/docs/functions/limitations"}],"inbound":[{"site":"vercel-docs","path":"/docs/deployment-checks"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/build-ai-agent-weather-api","distance":0.1547},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","distance":0.1665},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","distance":0.1808},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","distance":0.1929},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","distance":0.1987}],"related":[{"site":"vercel-docs","path":"/docs/deployment-checks","via":"inbound"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/coding-agents","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-agents","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","title":"Building AI apps on Vercel: an overview","summary":"Learn the key AI concepts and tools for building and scaling AI apps.","outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/botid"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/vercel-firewall"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk","distance":0.1665},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","distance":0.203},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","distance":0.2101},{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","distance":0.2121},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel","distance":0.2224}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/slackbot","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-agents","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/rag-chatbot-production-architecture-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-protect-your-ai-app-from-bots","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","title":"How to build an AI agent for Slack with Chat SDK and AI SDK","summary":"Build a Slack AI agent using Chat SDK, AI SDK's ToolLoopAgent, and Vercel AI Gateway. Covers project setup, tool definitions, streaming responses, deployment to Vercel, and scaling tool selection with toolpick.","outbound":[{"site":"ai-sdk","path":"/docs/agents/building-agents"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway"},{"site":"chat-sdk","path":"/docs/actions"},{"site":"chat-sdk","path":"/docs/cards"},{"site":"chat-sdk","path":"/docs/streaming"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/building-human-in-the-loop-agents-for-community-moderation-with-durable-workflows"},{"site":"vercel-kb","path":"/kb/guide/human-in-the-loop-with-chat-sdk-and-workflow-sdk"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/liveblocks-chat-sdk-ai-sdk","distance":0.1323},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect","distance":0.1509},{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect","distance":0.165},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","distance":0.1832},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agents-chat-sdk","distance":0.1853}],"related":[{"site":"ai-sdk","path":"/cookbook/guides/slackbot","via":"neighbor"},{"site":"chat-sdk","path":"/docs","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/liveblocks-chat-sdk-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-slack-bot-with-next-js-and-redis","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-mcp-server-with-nuxt","title":"How to build an MCP server with Nuxt","summary":"Add an MCP server to your Nuxt app with the Nuxt MCP Toolkit. Create tools, resources, and prompt templates that AI assistants like Cursor and VS Code can connect to.","outbound":[{"site":"vercel-docs","path":"/docs/functions"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","distance":0.1869},{"site":"vercel-kb","path":"/kb/guide/using-xmcp-with-nextjs","distance":0.1945},{"site":"vercel-kb","path":"/kb/guide/mcp-server-with-weather-tool-express","distance":0.2089},{"site":"vercel-kb","path":"/kb/guide/how-to-create-a-contentful-asset-on-vercel","distance":0.2142},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp","distance":0.2187}],"related":[{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/mcp","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/adapters/mcp-server","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp","via":"neighbor"},{"site":"v0","path":"/docs/MCP","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-tools","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/xmcp","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-apps","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/mcp-server-with-weather-tool-express","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-create-a-contentful-asset-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-mcp-apps","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-on-demand-voice-agent-with-vercel-sandbox","title":"How to build an on-demand voice agent with Vercel Sandbox","summary":"Build a voice AI application that creates isolated LiveKit agent environments using Vercel Sandbox, enabling real-time conversations without maintaining persistent infrastructure.","outbound":[{"site":"vercel-docs","path":"/docs/sandbox"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/building-an-agent-with-openai-agents-sdk-and-vercel-sandbox","distance":0.1771},{"site":"vercel-kb","path":"/kb/guide/using-vercel-sandbox-claude-agent-sdk","distance":0.2154},{"site":"vercel-kb","path":"/kb/guide/running-ai-generated-code-sandbox","distance":0.2193},{"site":"vercel-kb","path":"/kb/guide/build-an-agent-with-vercel-and-flue","distance":0.239},{"site":"vercel-docs","path":"/docs/sandbox","distance":0.2481}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/realtime","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","via":"neighbor"},{"site":"v0","path":"/docs/sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/langchain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/examples/oss-coding-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-an-agent-with-openai-agents-sdk-and-vercel-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/running-ai-generated-code-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/python-ai-sdk-vercel-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agents-chat-sdk","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-build-your-own-ai-model-router","title":"How to build your own AI model router","summary":"Build an AI model router with Vercel AI Gateway. Keep routing, key, and retention decisions in your code while the gateway handles provider integrations, failover, and cost metering","outbound":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/byok"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/model-fallbacks"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/budgets"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/custom-reporting"},{"site":"vercel-docs","path":"/docs/ai-gateway/pricing"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/zdr"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/cost-aware-model-routing-with-ai-gateway","distance":0.1953},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/byok","distance":0.2312},{"site":"vercel-docs","path":"/docs/ai-gateway","distance":0.245},{"site":"vercel-docs","path":"/docs/ai-gateway/pricing","distance":0.2507},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","distance":0.2553}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/regional-inference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/cost-aware-model-routing-with-ai-gateway","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-bypass-vercel-body-size-limit-serverless-functions","title":"How do I bypass the 4.5MB body size limit of Vercel Serverless Functions?","summary":"Learn how to deal with the body size limit of Serverless Functions on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/functions"}],"inbound":[{"site":"vercel-docs","path":"/docs/functions/limitations"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-blob/client-upload","distance":0.2045},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-aws-s3-with-vercel","distance":0.2085},{"site":"vercel-kb","path":"/kb/guide/how-to-upload-and-store-files-with-vercel","distance":0.2526},{"site":"vercel-kb","path":"/kb/guide/vercel-blob","distance":0.2703},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nextjs","distance":0.277}],"related":[{"site":"vercel-docs","path":"/docs/functions/limitations","via":"inbound"},{"site":"vercel-docs","path":"/docs/vercel-blob/client-upload","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/server-upload","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/private-storage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/examples","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-aws-s3-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-upload-and-store-files-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nextjs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-function-250mb-limit","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/best-practices-for-hosting-videos-on-vercel-nextjs-mp4-gif","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-conduct-pci-scans-on-vercel-guide","title":"How to conduct PCI scans on Vercel: A complete guide to IP safelisting","summary":"Scan and verify your Vercel deployments for secure, PCI-compliant payment processing.","outbound":[{"site":"vercel-docs","path":"/docs/security/shared-responsibility"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/is-vercel-pci-compliant","distance":0.2015},{"site":"vercel-kb","path":"/kb/guide/ensuring-safe-and-effective-infrastructure-testing","distance":0.2493},{"site":"vercel-kb","path":"/kb/guide/supporting-compliance-with-vercel-waf","distance":0.2661},{"site":"vercel-docs","path":"/docs/security","distance":0.282},{"site":"vercel-docs","path":"/docs/security/compliance","distance":0.2834}],"related":[{"site":"vercel-docs","path":"/docs/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/compliance","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/pci-dss","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/is-vercel-pci-compliant","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ensuring-safe-and-effective-infrastructure-testing","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/supporting-compliance-with-vercel-waf","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/penetration-testing-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-effectively-load-test-your-vercel-application","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-configure-the-cache-control-response-header-in-vercel-projects","title":"How to Configure the Cache-Control Response Header in Vercel Projects","summary":"After reviewing this guide, you will be able to set a cache-control header of any value to be returned when a specific page of your deployment is requested.","outbound":[{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/project-configuration"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/set-cache-control-headers","distance":0.21},{"site":"vercel-docs","path":"/docs/caching/cache-control-headers","distance":0.2145},{"site":"vercel-docs","path":"/docs/caching/cdn-cache","distance":0.2331},{"site":"vercel-kb","path":"/kb/guide/share-vercel-cache-across-deployments-nextjs","distance":0.2705},{"site":"vercel-docs","path":"/docs/headers/response-headers","distance":0.2866}],"related":[{"site":"vercel-docs","path":"/docs/caching/cache-control-headers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache","via":"neighbor"},{"site":"vercel-docs","path":"/docs/headers/response-headers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/set-cache-control-headers","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-cache-tags-for-external-origins","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-netlify","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-enable-cors","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-contribute-to-the-vercel-community","title":"How to contribute to the Vercel Community","summary":"Discover the ways you can participate, share, and grow with us","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-get-vercel-support","distance":0.2708},{"site":"vercel-kb","path":"/kb/guide/how-to-get-good-answers-on-vercel-community","distance":0.2905},{"site":"vercel-docs","path":"/docs/fundamentals/builds","distance":0.3127},{"site":"nextjs","path":"/docs/community","distance":0.3193},{"site":"v0","path":"/docs/teams","distance":0.3201}],"related":[{"site":"vercel-docs","path":"/docs/fundamentals/builds","via":"neighbor"},{"site":"nextjs","path":"/docs/community","via":"neighbor"},{"site":"v0","path":"/docs/teams","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"v0","path":"/docs/faqs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect","via":"neighbor"},{"site":"v0","path":"/docs/vercel-integration","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-get-vercel-support","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-get-good-answers-on-vercel-community","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-create-a-contentful-asset-on-vercel","title":"How to create a contentful asset on Vercel","summary":"This is my wonderful","outbound":[{"site":"vercel-docs","path":"/docs/mcp"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/mcp-server-with-weather-tool-express","distance":0.0827},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","distance":0.178},{"site":"vercel-kb","path":"/kb/guide/using-xmcp-with-nextjs","distance":0.209},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-mcp-server-with-nuxt","distance":0.2142},{"site":"vercel-docs","path":"/docs/mcp","distance":0.248}],"related":[{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/mcp-server-with-weather-tool-express","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/xmcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/express","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/adapters/mcp-server","via":"neighbor"},{"site":"v0","path":"/docs/MCP","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-xmcp-with-nextjs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-mcp-server-with-nuxt","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/weather-api-with-express","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-404-errors","title":"How to debug 404 errors","summary":"Learn the systematic steps to identify and resolve 404 issues.","outbound":[{"site":"vercel-docs","path":"/docs/deployments/generated-urls"},{"site":"vercel-docs","path":"/docs/deployments/logs"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js"},{"site":"vercel-docs","path":"/docs/functions/runtimes/python"},{"site":"vercel-docs","path":"/docs/monorepos"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/why-is-my-deployed-project-giving-404","distance":0.2089},{"site":"vercel-docs","path":"/docs/deployments","distance":0.2183},{"site":"vercel-kb","path":"/kb/guide/debug-routing-on-vercel","distance":0.2269},{"site":"vercel-docs","path":"/docs/observability/debug-production-errors","distance":0.2335},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","distance":0.2424}],"related":[{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability/debug-production-errors","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"v0","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-deployed-project-giving-404","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/debug-routing-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-cross-origin-errors-neterr-blocked-by-orb-with-deployment-protection","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-does-my-serverless-function-work-locally-but-not-when-deployed","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-a-502-error","title":"How do I debug a 502 error from a Vercel Serverless Function?","summary":"Information on how to debug a 502 error from a Vercel Serverless Function.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/what-should-i-do-if-i-receive-a-503-error-on-vercel","distance":0.2481},{"site":"vercel-kb","path":"/kb/guide/why-does-my-serverless-function-work-locally-but-not-when-deployed","distance":0.2803},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-404-errors","distance":0.2979},{"site":"vercel-docs","path":"/docs/functions/debug-slow-functions","distance":0.3176},{"site":"vercel-docs","path":"/docs/observability/debug-production-errors","distance":0.3274}],"related":[{"site":"vercel-docs","path":"/docs/functions/debug-slow-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability/debug-production-errors","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/logs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-should-i-do-if-i-receive-a-503-error-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-does-my-serverless-function-work-locally-but-not-when-deployed","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-404-errors","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/npm-run-start-not-working","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-lower-my-serverless-function-execution-time","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-deploy-a-next-js-online-store-with-stripe","title":"How to deploy a Next.js online store with Stripe","summary":"Learn how to build and deploy a Next.js e-commerce store with Stripe payments on Vercel. This step-by-step guide covers setup, local development, and going live with your online store.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/ecommerce/stripe","distance":0.1092},{"site":"vercel-kb","path":"/kb/guide/getting-started-with-nextjs-typescript-stripe","distance":0.1215},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-shopify-storefront-with-vercel","distance":0.2159},{"site":"vercel-kb","path":"/kb/guide/deploying-crystallize-with-vercel","distance":0.2187},{"site":"vercel-kb","path":"/kb/guide/deploy-shopify-app-to-vercel","distance":0.2232}],"related":[{"site":"vercel-docs","path":"/docs/integrations/ecommerce/stripe","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/ecommerce","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/getting-started-with-nextjs-typescript-stripe","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-shopify-storefront-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-shopify-app-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/integrate-vercel-and-contentstack","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-determine-which-vercel-deployment-introduced-an-issue","title":"How to determine which Vercel Deployment introduced an issue?","summary":"Process to quickly determine when a deployment issue was introduced using the Vercel CLI","outbound":[{"site":"vercel-docs","path":"/docs/cli/bisect"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli/bisect"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/bisect","distance":0.1623},{"site":"vercel-docs","path":"/docs/deployments/rollback-production-deployment","distance":0.25},{"site":"vercel-docs","path":"/docs/observability/debug-production-errors","distance":0.2855},{"site":"vercel-docs","path":"/docs/deployments","distance":0.3059},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","distance":0.3142}],"related":[{"site":"vercel-docs","path":"/docs/deployments/rollback-production-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability/debug-production-errors","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/instant-rollback","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-404-errors","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-effectively-load-test-your-vercel-application","title":"How to Effectively Load Test Your Vercel Application","summary":"Learn how to safely load test your Next.js app on Vercel. This guide covers realistic, policy-compliant testing of routes, caching, middleware, and databases to uncover performance issues without impacting Vercel’s infrastructure.","outbound":[{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/bot-management"},{"site":"vercel-docs","path":"/docs/botid"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"},{"site":"vercel-docs","path":"/docs/speed-insights"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/system-bypass-rules"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/what-s-vercel-s-policy-regarding-load-testing-deployments","distance":0.1825},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","distance":0.2063},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime","distance":0.2409},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","distance":0.2563},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","distance":0.2595}],"related":[{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","via":"neighbor"},{"site":"vercel-docs","path":"/docs/incremental-migration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/debug-slow-functions","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/compliance","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-s-vercel-s-policy-regarding-load-testing-deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ensuring-safe-and-effective-infrastructure-testing","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-enable-cors","title":"How to enable CORS on Vercel","summary":"Learn how to enable CORS on Vercel with vercel.json, Routing Middleware, framework config, and route handlers, plus how to fix preflight blocked by Deployment Protection.","outbound":[{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/options-allowlist"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication"},{"site":"vercel-docs","path":"/docs/environment-variables/system-environment-variables"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/project-configuration"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/routing/rewrites"}],"inbound":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/vercel-api-integrations"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-password-protection-to-my-vercel-deployment"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/application-authentication-on-vercel","distance":0.2471},{"site":"vercel-kb","path":"/kb/guide/why-is-my-deployed-project-giving-404","distance":0.2692},{"site":"vercel-kb","path":"/kb/guide/complete-guide-authentication-vercel","distance":0.2795},{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","distance":0.281},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-password-protection-to-my-vercel-deployment","distance":0.2839}],"related":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/vercel-api-integrations","via":"inbound"},{"site":"vercel-docs","path":"/docs/deployment-protection/automated-agent-access","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/application-authentication-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-deployed-project-giving-404","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/complete-guide-authentication-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-evaluate-a-rapid-ai-prototyping-tool","title":"How to evaluate a rapid AI prototyping tool","summary":"A practical guide on how to evaluate an AI prototyping tool for your team, from thinking through requirements like security and prototype fidelity, to choosing the right pilot metrics, to structuring a two-phase rollout that starts with a small group and expands once the first phase proves out.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/prototyping","distance":0.3021},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","distance":0.3455},{"site":"vercel-kb","path":"/kb/guide/an-introduction-to-evals","distance":0.3476},{"site":"vercel-kb","path":"/kb/guide/ai-evaluation-dashboard-architecture-on-vercel","distance":0.3539},{"site":"v0","path":"/docs","distance":0.3657}],"related":[{"site":"v0","path":"/docs/prototyping","via":"neighbor"},{"site":"v0","path":"/docs","via":"neighbor"},{"site":"v0","path":"/docs/text-prompting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/examples/platform-template","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/examples/oss-coding-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/an-introduction-to-evals","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-integrate-optimizely-feature-experimentation-next-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-execute-ai-generated-code-safely","title":"How to execute AI-generated code safely with Vercel Sandbox","summary":"Learn how to run code generated by AI models in an isolated sandbox environment.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/projects"}],"inbound":[{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/running-ai-generated-code-sandbox","distance":0.1087},{"site":"vercel-kb","path":"/kb/guide/python-ai-sdk-vercel-sandbox","distance":0.1554},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/openai-sdk","distance":0.1602},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/anthropic-sdk","distance":0.1822},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel","distance":0.1944}],"related":[{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","via":"inbound"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/openai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/anthropic-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/langchain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/running-ai-generated-code-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/python-ai-sdk-vercel-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"inbound"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-fix-a-domain-suspended-by-serverhold-or-clienthold","title":"How to fix a domain suspended by serverHold or clientHold","summary":"What serverHold and clientHold mean, why they happen, and how to resolve them.","outbound":[],"inbound":[{"site":"vercel-kb","path":"/kb/guide/how-to-resolve-ip-blocking-issues"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/lifecycle-of-a-domain","distance":0.3193},{"site":"vercel-docs","path":"/docs/domains/troubleshooting","distance":0.3236},{"site":"vercel-kb","path":"/kb/guide/how-to-resolve-ip-blocking-issues","distance":0.3335},{"site":"vercel-kb","path":"/kb/guide/why-is-my-vercel-domain-unverified","distance":0.3348},{"site":"vercel-kb","path":"/kb/guide/resolve-err-ssl-protocol-error-with-vercel","distance":0.348}],"related":[{"site":"vercel-docs","path":"/docs/domains/troubleshooting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-contact-verification-status-for-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-a-domain-s-transfer-status","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/lifecycle-of-a-domain","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-resolve-ip-blocking-issues","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-vercel-domain-unverified","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/resolve-err-ssl-protocol-error-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-fix-sitecore-jss-middleware-performance","title":"How to Fix Sitecore JSS Middleware Performance","summary":"Learn how to troubleshoot and resolve Vercel Middleware timeouts and memory errors in your Sitecore JSS application caused by URLs with many query parameters.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-next.js-sitecore-jss","distance":0.3069},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-cross-origin-errors-neterr-blocked-by-orb-with-deployment-protection","distance":0.3096},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-sigkill-out-of-memory-errors","distance":0.3378},{"site":"vercel-kb","path":"/kb/guide/how-to-troubleshoot-stale-content-returned-from-the-edge-network-when-using-an-external-proxy-or-cdn","distance":0.3543},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-when-i-run-into-build-output-limits-with-next-js-on-vercel","distance":0.3741}],"related":[{"site":"vercel-docs","path":"/docs/manage-cdn-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/incremental-migration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-next.js-sitecore-jss","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-cross-origin-errors-neterr-blocked-by-orb-with-deployment-protection","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-sigkill-out-of-memory-errors","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-troubleshoot-stale-content-returned-from-the-edge-network-when-using-an-external-proxy-or-cdn","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-inconsistent-logs-in-vercel-functions","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-get-good-answers-on-vercel-community","title":"How to get good answers on Vercel Community","summary":"Learn the art of asking effective questions and contributing to collaborative problem-solving.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-get-vercel-support","distance":0.2618},{"site":"vercel-kb","path":"/kb/guide/how-to-contribute-to-the-vercel-community","distance":0.2905},{"site":"vercel-kb","path":"/kb/guide/where-to-submit-feature-requests","distance":0.3377},{"site":"vercel-kb","path":"/kb/guide/creating-a-minimal-reproducible-example","distance":0.3777},{"site":"vercel-kb","path":"/kb/guide/vercel-support-queue-time","distance":0.3815}],"related":[{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/troubleshooting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-project-collaboration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/support-center","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-get-vercel-support","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-contribute-to-the-vercel-community","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/where-to-submit-feature-requests","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/creating-a-minimal-reproducible-example","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-support-queue-time","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-get-vercel-support","title":"What is the best way to get support from Vercel?","summary":"Information on how to get help from Vercel Support through the available channels.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-get-good-answers-on-vercel-community","distance":0.2618},{"site":"vercel-kb","path":"/kb/guide/how-to-contribute-to-the-vercel-community","distance":0.2708},{"site":"vercel-kb","path":"/kb/guide/where-to-submit-feature-requests","distance":0.2893},{"site":"vercel-docs","path":"/docs/support-center","distance":0.3002},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","distance":0.3122}],"related":[{"site":"vercel-docs","path":"/docs/support-center","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/compliance","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-get-good-answers-on-vercel-community","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-contribute-to-the-vercel-community","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/where-to-submit-feature-requests","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-can-i-not-signup","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-support-queue-time","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-gradually-roll-out-new-versions-of-your-backend","title":"How to gradually roll out new versions of your backend","summary":"Incrementally release updates to your backend to minimize impact of mistakes.","outbound":[{"site":"vercel-docs","path":"/docs/frameworks/backend"},{"site":"vercel-docs","path":"/docs/instant-rollback"},{"site":"vercel-docs","path":"/docs/rolling-releases"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rolling-releases/rolling-release-deployment","distance":0.1258},{"site":"vercel-docs","path":"/docs/rolling-releases","distance":0.1812},{"site":"vercel-docs","path":"/docs/cli/rolling-release","distance":0.2063},{"site":"vercel-docs","path":"/docs/deployments/rollback-production-deployment","distance":0.2292},{"site":"vercel-kb","path":"/kb/guide/implementing_canary_deployments_on_vercel","distance":0.2315}],"related":[{"site":"vercel-docs","path":"/docs/rolling-releases/rolling-release-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/rolling-release","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/rollback-production-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/promoting-a-deployment","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/implementing_canary_deployments_on_vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/full-stack-preview-deployments-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-improve-core-web-vitals","title":"How to improve Core Web Vitals","summary":"Improve Core Web Vitals \\(INP, LCP, CLS\\) with metric-specific fixes, field-data measurement, and Next.js/Vercel performance best practices.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/font"},{"site":"nextjs","path":"/docs/app/api-reference/components/image"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/speed-insights"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/layout-shift-tool"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/speed-insights/metrics","distance":0.19},{"site":"vercel-kb","path":"/kb/guide/cls-on-vercel","distance":0.2685},{"site":"vercel-kb","path":"/kb/guide/why-site-performance-matters","distance":0.2796},{"site":"vercel-kb","path":"/kb/guide/first-input-delay-vs-interaction-to-next-paint","distance":0.3115},{"site":"vercel-docs","path":"/docs/speed-insights","distance":0.3171}],"related":[{"site":"vercel-docs","path":"/docs/speed-insights/metrics","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/analytics","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/analytics","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/accessing-metrics-with-vercel-cli","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-report-web-vitals","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/using-speed-insights","via":"neighbor"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-report-web-vitals","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-site-performance-matters","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/first-input-delay-vs-interaction-to-next-paint","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-writes","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-install-system-packages-in-vercel-sandbox","title":"How to install system packages in Vercel Sandbox","summary":"Learn how to install additional system packages in Vercel Sandbox using dnf, the package manager for Amazon Linux 2023.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/sandbox/concepts"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/runtimes"},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/sandbox/concepts/runtimes","distance":0.2695},{"site":"vercel-docs","path":"/docs/sandbox","distance":0.2717},{"site":"vercel-docs","path":"/docs/sandbox/run-commands-in-sandbox","distance":0.2719},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","distance":0.2904},{"site":"vercel-docs","path":"/docs/sandbox/concepts","distance":0.2921}],"related":[{"site":"vercel-docs","path":"/docs/sandbox/concepts","via":"inbound"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/runtimes","via":"inbound"},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference","via":"inbound"},{"site":"vercel-docs","path":"/docs/sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/run-commands-in-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/sandbox-private-github-repositories","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-snapshots-for-faster-sandbox-startup","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-integrate-nextjs-with-prismic","title":"How to Integrate Next.js with Prismic's Headless CMS","summary":"Learn how to connect Next.js with Prismic's CMS and deploy the integrated website to Vercel","outbound":[{"site":"vercel-docs","path":"/docs/cli"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/integrating-next-js-and-contentful-for-your-headless-cms","distance":0.1961},{"site":"vercel-kb","path":"/kb/guide/integrate-vercel-and-contentstack","distance":0.2474},{"site":"vercel-docs","path":"/docs/integrations/cms/sitecore","distance":0.2682},{"site":"vercel-kb","path":"/kb/guide/wordpress-with-vercel","distance":0.272},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-next.js-sitecore-jss","distance":0.2752}],"related":[{"site":"vercel-docs","path":"/docs/integrations/cms/sitecore","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/contentful","via":"neighbor"},{"site":"vercel-docs","path":"/docs/partial-prerendering/quickstart","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/integrating-next-js-and-contentful-for-your-headless-cms","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/integrate-vercel-and-contentstack","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/wordpress-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-preact-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-express-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-integrate-optimizely-feature-experimentation-next-vercel","title":"How to Integrate Optimizely Feature Experimentation with Next.js and Vercel","summary":"This guide covers setting up feature flags, implementing A/B tests, and optimizing performance using React Server Components and streaming.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/global-config"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","distance":0.2556},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","distance":0.2645},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/run-ab-test","distance":0.2721},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-next.js-sitecore-jss","distance":0.278},{"site":"vercel-docs","path":"/docs/flags/vercel-flags","distance":0.2824}],"related":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/run-ab-test","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-internationalise-error-pages-in-next-js-app-router","title":"How to internationalise error pages in Next.js App Router","summary":"Learn how to show translated error messages in Next.js App Router when using the app/\\[lang\\]/ pattern for internationalisation.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/error"}],"inbound":[],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/internationalization","distance":0.2132},{"site":"nextjs","path":"/docs/pages/guides/internationalization","distance":0.2707},{"site":"nextjs","path":"/docs/app/getting-started/error-handling","distance":0.277},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found","distance":0.2821},{"site":"vercel-shop","path":"/docs/skills/enable-i18n","distance":0.29}],"related":[{"site":"nextjs","path":"/docs/app/guides/internationalization","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/internationalization","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/error-handling","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found","via":"neighbor"},{"site":"vercel-shop","path":"/docs/skills/enable-i18n","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-error","via":"neighbor"},{"site":"vercel-shop","path":"/docs/skills/enable-shopify-markets","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-cache-tags-for-external-origins","title":"Manage cache tags for external origins","summary":"Learn how to use cache tags to optimally serve fresh content on Vercel when content from your external origin changes","outbound":[{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/routes"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/routing/rewrites"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge","distance":0.1732},{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","distance":0.2448},{"site":"vercel-docs","path":"/docs/cli/cache","distance":0.2482},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","distance":0.2557},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/debug-cache-issues","distance":0.2578}],"related":[{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/cache","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/debug-cache-issues","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-revalidation-costs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/set-cache-control-headers","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-troubleshoot-stale-content-returned-from-the-edge-network-when-using-an-external-proxy-or-cdn","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-configure-the-cache-control-response-header-in-vercel-projects","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records","title":"How can I manage my Vercel DNS records?","summary":"Add, edit, and delete Vercel DNS records from the dashboard, CLI, or REST API, and fix the Invalid Configuration error once your domain uses Vercel nameservers.","outbound":[{"site":"vercel-docs","path":"/docs/cli/dns"},{"site":"vercel-docs","path":"/docs/domains/domain-connect"},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records"},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain"},{"site":"vercel-docs","path":"/docs/domains/troubleshooting"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains"},{"site":"vercel-docs","path":"/docs/domains/working-with-nameservers"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/tokens"},{"site":"vercel-kb","path":"/kb/guide/cloudflare-with-vercel"}],"inbound":[{"site":"vercel-docs","path":"/docs/domains/troubleshooting"},{"site":"vercel-kb","path":"/kb/guide/why-has-email-stopped-working"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","distance":0.1153},{"site":"vercel-docs","path":"/docs/domains/troubleshooting","distance":0.1436},{"site":"vercel-docs","path":"/docs/domains/working-with-dns","distance":0.1644},{"site":"vercel-kb","path":"/kb/guide/a-record-and-caa-with-vercel","distance":0.1675},{"site":"vercel-kb","path":"/kb/guide/zero-downtime-migration","distance":0.1967}],"related":[{"site":"vercel-docs","path":"/docs/domains/working-with-dns","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/a-record-and-caa-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/zero-downtime-migration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-has-email-stopped-working","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-vercel-domain-unverified","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-long-to-update-dns-records","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime","title":"How to migrate from Fastly to Vercel with zero downtime","summary":"Consolidate your CDN infrastructure on Vercel to reduce latency, simplify your configuration, and improve your developer experience without interrupting service to your users.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidatePath"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"},{"site":"vercel-docs","path":"/docs/project-configuration"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/speed-insights"},{"site":"vercel-docs","path":"/docs/speed-insights/metrics"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/managed-rulesets"},{"site":"vercel-kb","path":"/kb/guide/zero-downtime-migration"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/incremental-migration","distance":0.1721},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","distance":0.2118},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","distance":0.2307},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare","distance":0.2335},{"site":"vercel-kb","path":"/kb/guide/migrate-an-astro-app-from-webflow-cloud-to-vercel","distance":0.2353}],"related":[{"site":"vercel-docs","path":"/docs/incremental-migration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-an-astro-app-from-webflow-cloud-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-netlify","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-move-a-domain-between-vercel-projects-with-zero-downtime","title":"How to move a domain between Vercel projects with \"Zero Downtime\"?","summary":"Information about how to move your domain between Vercel projects without downtime.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains/transfer-your-domain"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-can-i-move-a-domain-to-a-team","distance":0.1889},{"site":"vercel-kb","path":"/kb/guide/zero-downtime-migration","distance":0.2109},{"site":"vercel-kb","path":"/kb/guide/zero-downtime-migration-for-dns","distance":0.2112},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/transfer-your-domain","distance":0.2339},{"site":"vercel-kb","path":"/kb/guide/transferring-domains-to-vercel","distance":0.2432}],"related":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains/transfer-your-domain","via":"inbound"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/move-a-project-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/transferring-projects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/alias","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-move-a-domain-to-a-team","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/zero-downtime-migration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/zero-downtime-migration-for-dns","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-resolve-alias-errors-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-move-to-on-demand-revalidation","title":"How to move from time-based to on-demand revalidation","summary":"Replace fixed revalidation timers with scoped updates triggered by changes to content, product data, or other application data.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidatePath"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/updateTag"},{"site":"nextjs","path":"/docs/app/getting-started/revalidating"},{"site":"nextjs","path":"/docs/app/guides/draft-mode"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/pages/guides/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/queues"},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-revalidation-costs"},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-writes"},{"site":"vercel-kb","path":"/kb/guide/update-mega-nav-min-reval"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-revalidation-costs"},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-writes"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-revalidation-costs","distance":0.1599},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-writes","distance":0.1748},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/quickstart","distance":0.2304},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works","distance":0.2373},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration","distance":0.2425}],"related":[{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/quickstart","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works","via":"neighbor"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components","via":"neighbor"},{"site":"vercel-docs","path":"/docs/incremental-migration","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-next.js-sitecore-jss","title":"How to Optimize Next.js + Sitecore JSS","summary":"This guide covers performance and usage considerations when building and deploying your Next.js and Sitecore JSS application.","outbound":[{"site":"nextjs","path":"/docs/pages/api-reference/components/image"},{"site":"nextjs","path":"/docs/pages/api-reference/components/link"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/redirects"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/speed-insights"},{"site":"vercel-docs","path":"/docs/speed-insights/quickstart"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/image-optimization/quickstart","distance":0.2209},{"site":"vercel-docs","path":"/docs/integrations/cms/sitecore","distance":0.2399},{"site":"vercel-docs","path":"/docs/image-optimization","distance":0.2573},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","distance":0.2601},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-your-document-size-in-next-js","distance":0.2639}],"related":[{"site":"vercel-docs","path":"/docs/image-optimization/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/sitecore","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/production-checklist","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/production-checklist","via":"neighbor"},{"site":"vercel-docs","path":"/docs/incremental-migration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-reduce-my-build-time-with-next-js-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/integration-guide-for-sap-composable-storefront","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-rsc-payload-size","title":"How to Optimize RSC Payload Size","summary":"Learn how to use React Server Components efficiently in Next.js to reduce cost and improve performance","outbound":[{"site":"vercel-docs","path":"/docs/observability"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-revalidation-costs"},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-writes"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-your-document-size-in-next-js","distance":0.1629},{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary","distance":0.2292},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components","distance":0.2455},{"site":"nextjs","path":"/docs/app/glossary","distance":0.2849},{"site":"nextjs","path":"/docs/app/getting-started/caching","distance":0.2999}],"related":[{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/glossary","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/caching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/single-page-applications","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-your-document-size-in-next-js","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-revalidation-costs","via":"inbound"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-your-document-size-in-next-js","title":"How to optimize your document size in Next.js","summary":"A quick reference checklist to help you optimize your Next.js document size for better performance and lower costs.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/image"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-rsc-payload-size","distance":0.1629},{"site":"nextjs","path":"/docs/app/guides/local-development","distance":0.2514},{"site":"nextjs","path":"/docs/pages/guides/package-bundling","distance":0.2567},{"site":"nextjs","path":"/docs/app/guides/package-bundling","distance":0.2584},{"site":"nextjs","path":"/docs/app/guides/production-checklist","distance":0.262}],"related":[{"site":"nextjs","path":"/docs/app/guides/local-development","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/package-bundling","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/package-bundling","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/production-checklist","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/single-page-applications","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-reduce-my-build-time-with-next-js-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-pin-a-specific-bun-version-for-vercel-builds","title":"How to pin a specific Bun version for Vercel builds?","summary":"Learn how to use a specific Bun version for Vercel builds.","outbound":[{"site":"vercel-docs","path":"/docs/builds/configure-a-build"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/functions/runtimes/bun","distance":0.3651},{"site":"vercel-docs","path":"/docs/package-managers","distance":0.3848},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-the-latest-npm-version-for-my-vercel-deployment","distance":0.3914},{"site":"vercel-docs","path":"/docs/cli/build","distance":0.3986},{"site":"vercel-kb","path":"/kb/guide/per-environment-and-per-branch-build-commands","distance":0.4204}],"related":[{"site":"vercel-docs","path":"/docs/functions/runtimes/bun","via":"neighbor"},{"site":"vercel-docs","path":"/docs/package-managers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/build","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds/build-features","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/ci-vendors/vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/bisect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-the-latest-npm-version-for-my-vercel-deployment","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/per-environment-and-per-branch-build-commands","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-add-a-custom-build-step-to-my-project","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/dynamic-build-commands","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-yarn-3","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-plan-a-successful-composable-commerce-migration","title":"How to plan a successful composable commerce migration","summary":"A practical guide to migrating from monolithic ecommerce to composable commerce architecture using incremental vertical migration strategies.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/incremental-migration","distance":0.2382},{"site":"vercel-kb","path":"/kb/guide/incremental-migrations-with-microfrontends","distance":0.2927},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime","distance":0.3},{"site":"vercel-kb","path":"/kb/guide/why-innovators-are-going-headless","distance":0.329},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes","distance":0.3557}],"related":[{"site":"vercel-docs","path":"/docs/incremental-migration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes","via":"neighbor"},{"site":"vercel-shop","path":"/docs/skills/build-shop","via":"neighbor"},{"site":"vercel-shop","path":"/docs/why-use-this","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/incremental-migrations-with-microfrontends","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-innovators-are-going-headless","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-fly-io-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-prevent-vercel-github-comments","title":"How do I prevent the Vercel for GitHub integration comments?","summary":"Information on how to prevent the Vercel for GitHub integration from adding comments.","outbound":[{"site":"vercel-docs","path":"/docs/project-configuration"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-disable-git-notifications-from-deployments","distance":0.2632},{"site":"vercel-docs","path":"/docs/git/vercel-for-github","distance":0.2737},{"site":"vercel-docs","path":"/docs/comments/how-comments-work","distance":0.2842},{"site":"vercel-docs","path":"/docs/comments","distance":0.3115},{"site":"vercel-docs","path":"/docs/project-configuration/git-configuration","distance":0.3232}],"related":[{"site":"vercel-docs","path":"/docs/git/vercel-for-github","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments/how-comments-work","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/git-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments/managing-comments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-disable-git-notifications-from-deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/use-vercel-with-github-ip-restrictions","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-protect-your-ai-app-from-bots","title":"How to protect your AI app from bots","summary":"Learn how to protect your AI app from bots, scrapers, and abuse using Firewall, BotID, and more.","outbound":[{"site":"vercel-docs","path":"/docs/bot-management"},{"site":"vercel-docs","path":"/docs/botid"},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","distance":0.1523},{"site":"vercel-docs","path":"/docs/bot-management","distance":0.1668},{"site":"vercel-kb","path":"/kb/guide/protect-ai-endpoints-with-vercel-botid","distance":0.1833},{"site":"vercel-kb","path":"/kb/guide/how-to-block-bots-openai-gptbot","distance":0.1859},{"site":"vercel-kb","path":"/kb/guide/deploying-and-testing-botid","distance":0.2224}],"related":[{"site":"vercel-docs","path":"/docs/vercel-firewall/attack-mode","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/protect-ai-endpoints-with-vercel-botid","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-block-bots-openai-gptbot","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/securing-ai-app-rate-limiting","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-reconnect-to-a-running-sandbox","title":"How to reconnect to a running Sandbox","summary":"Learn how to use \\`Sandbox.get\\(\\)\\` to reconnect to an existing sandbox from a different process or after a script restart.","outbound":[{"site":"vercel-docs","path":"/docs/projects"}],"inbound":[{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-use-snapshots-for-faster-sandbox-startup","distance":0.1313},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","distance":0.1976},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes","distance":0.2091},{"site":"vercel-docs","path":"/docs/sandbox/run-commands-in-sandbox","distance":0.2262},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference","distance":0.2298}],"related":[{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","via":"inbound"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/run-commands-in-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-snapshots-for-faster-sandbox-startup","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/test-container-image-vercel-sandbox","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-revalidation-costs","title":"How to reduce ISR revalidation costs","summary":"Reduce ISR costs by analyzing Incremental Static Regeneration \\(ISR\\) behavior to find pages and tags that revalidate too often","outbound":[{"site":"vercel-docs","path":"/docs/caching/cache-status"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge"},{"site":"vercel-docs","path":"/docs/headers/response-headers"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/request-collapsing"},{"site":"vercel-kb","path":"/kb/guide/how-to-move-to-on-demand-revalidation"},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-rsc-payload-size"},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-writes"},{"site":"vercel-kb","path":"/kb/guide/update-mega-nav-min-reval"}],"inbound":[{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing"},{"site":"vercel-kb","path":"/kb/guide/how-to-move-to-on-demand-revalidation"},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-writes"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/quickstart","distance":0.1213},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration","distance":0.1418},{"site":"vercel-kb","path":"/kb/guide/how-to-move-to-on-demand-revalidation","distance":0.1599},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing","distance":0.1787},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-writes","distance":0.1822}],"related":[{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/quickstart","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/incremental-static-regeneration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/how-does-vercel-calculate-usage-of-resources","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-reduce-my-build-time-with-next-js-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-cache-tags-for-external-origins","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-writes","title":"How to reduce ISR Writes by shrinking cached output","summary":"Reduce ISR Write units by finding large changed routes and removing unnecessary data from their cached output.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/public-folder"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing"},{"site":"vercel-kb","path":"/kb/guide/how-to-move-to-on-demand-revalidation"},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-rsc-payload-size"},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-revalidation-costs"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/how-to-move-to-on-demand-revalidation"},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-revalidation-costs"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-move-to-on-demand-revalidation","distance":0.1748},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-revalidation-costs","distance":0.1822},{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute","distance":0.2705},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/quickstart","distance":0.2848},{"site":"vercel-kb","path":"/kb/guide/cls-on-vercel","distance":0.2976}],"related":[{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/incremental-migration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/cls-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-reduce-my-build-time-with-next-js-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-deployed-project-giving-404","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-a-secret-for-a-neon-integration","title":"How to rotate the secrets of your Neon integration","summary":"This will guide you how to update the password for a Neon project.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secret-for-your-redis-integration","distance":0.1513},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secret-for-your-mongodb-atlas-integration","distance":0.2125},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-supabase-integration","distance":0.2144},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-upstash-integration","distance":0.2179},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-hypertune-integration","distance":0.2384}],"related":[{"site":"vercel-docs","path":"/docs/environment-variables/rotating-secrets","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secret-for-your-redis-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/secrets-rotation","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secret-for-your-mongodb-atlas-integration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-supabase-integration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-upstash-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-resource-secrets","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-hypertune-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/rotate-installation-credential","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/password-protection","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secret-for-your-mongodb-atlas-integration","title":"How to rotate the secrets of your MongoDB Atlas integration","summary":"This will guide you how to update the password for a MongoDB Atlas databse.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secret-for-your-redis-integration","distance":0.1681},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-upstash-integration","distance":0.2124},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-a-secret-for-a-neon-integration","distance":0.2125},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-supabase-integration","distance":0.227},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-clerk-integration","distance":0.2877}],"related":[{"site":"vercel-docs","path":"/docs/environment-variables/rotating-secrets","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secret-for-your-redis-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/secrets-rotation","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-upstash-integration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-a-secret-for-a-neon-integration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-supabase-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/password-protection","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-resource-secrets","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/rotate-installation-credential","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-clerk-integration","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secret-for-your-redis-integration","title":"How to rotate the secrets of your Redis integration","summary":"This will guide you how to update the password for a Redis databse.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-reset-a-secret-for-a-neon-integration","distance":0.1513},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secret-for-your-mongodb-atlas-integration","distance":0.1681},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-supabase-integration","distance":0.1841},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-upstash-integration","distance":0.1849},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-clerk-integration","distance":0.2253}],"related":[{"site":"vercel-docs","path":"/docs/environment-variables/rotating-secrets","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-a-secret-for-a-neon-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/secrets-rotation","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secret-for-your-mongodb-atlas-integration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-supabase-integration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-upstash-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-resource-secrets","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-clerk-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/rotate-installation-credential","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/password-protection","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-clerk-integration","title":"How to rotate the secrets of your Clerk integration","summary":"Rotate Clerk API keys","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-hypertune-integration","distance":0.2181},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-upstash-integration","distance":0.2194},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secret-for-your-redis-integration","distance":0.2253},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-supabase-integration","distance":0.2278},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-a-secret-for-a-neon-integration","distance":0.2428}],"related":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/secrets-rotation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/rotating-secrets","via":"neighbor"},{"site":"vercel-docs","path":"/docs/kms/concepts/key-rotation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/rotate-installation-credential","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-hypertune-integration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-upstash-integration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secret-for-your-redis-integration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-supabase-integration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-a-secret-for-a-neon-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-resource-secrets","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-hypertune-integration","title":"How to rotate the secrets of your Hypertune integration","summary":"Rotate Hypertune API keys with zero-downtime.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-upstash-integration","distance":0.1875},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-supabase-integration","distance":0.201},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-clerk-integration","distance":0.2181},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-a-secret-for-a-neon-integration","distance":0.2384},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secret-for-your-redis-integration","distance":0.2438}],"related":[{"site":"vercel-docs","path":"/docs/environment-variables/rotating-secrets","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/secrets-rotation","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-upstash-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/rotate-installation-credential","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-supabase-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/kms/concepts/key-rotation","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-clerk-integration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-a-secret-for-a-neon-integration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secret-for-your-redis-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-resource-secrets","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-supabase-integration","title":"How to rotate the secrets of your Supabase integration","summary":"Rotate Supabase API keys, JWT secrets, and database passwords.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-upstash-integration","distance":0.1489},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secret-for-your-redis-integration","distance":0.1841},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-hypertune-integration","distance":0.201},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-a-secret-for-a-neon-integration","distance":0.2144},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secret-for-your-mongodb-atlas-integration","distance":0.227}],"related":[{"site":"vercel-docs","path":"/docs/environment-variables/rotating-secrets","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/secrets-rotation","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-upstash-integration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secret-for-your-redis-integration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-hypertune-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/kms/concepts/key-rotation","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-a-secret-for-a-neon-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/rotate-installation-credential","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secret-for-your-mongodb-atlas-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-resource-secrets","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-upstash-integration","title":"How to rotate the secrets of your Upstash integration","summary":"Rotate Upstash API keys, JWT secrets, and database passwords.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-supabase-integration","distance":0.1489},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secret-for-your-redis-integration","distance":0.1849},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-hypertune-integration","distance":0.1875},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secret-for-your-mongodb-atlas-integration","distance":0.2124},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-a-secret-for-a-neon-integration","distance":0.2179}],"related":[{"site":"vercel-docs","path":"/docs/environment-variables/rotating-secrets","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/secrets-rotation","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-supabase-integration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secret-for-your-redis-integration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secrets-of-your-hypertune-integration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-the-secret-for-your-mongodb-atlas-integration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reset-a-secret-for-a-neon-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/rotate-installation-credential","via":"neighbor"},{"site":"vercel-docs","path":"/docs/kms/concepts/key-rotation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/update-resource-secrets","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-resolve-alias-errors-on-vercel","title":"How do I resolve alias related errors on Vercel?","summary":"Information on resolving alias related errors on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/cli"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli/alias"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/alias","distance":0.2163},{"site":"vercel-kb","path":"/kb/guide/how-to-move-a-domain-between-vercel-projects-with-zero-downtime","distance":0.2635},{"site":"vercel-kb","path":"/kb/guide/how-do-i-remove-a-domain-from-my-vercel-account","distance":0.2644},{"site":"vercel-docs","path":"/docs/rest-api/aliases/delete-an-alias","distance":0.2729},{"site":"vercel-docs","path":"/docs/rest-api/aliases/assign-an-alias","distance":0.2879}],"related":[{"site":"vercel-docs","path":"/docs/cli/alias","via":"inbound"},{"site":"vercel-docs","path":"/docs/rest-api/aliases/delete-an-alias","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/aliases/assign-an-alias","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/aliases/get-an-alias","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/aliases/list-aliases","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-move-a-domain-between-vercel-projects-with-zero-downtime","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-remove-a-domain-from-my-vercel-account","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-move-a-domain-to-a-team","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/resolve-err-too-many-redirects-when-using-cloudflare-proxy-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-resolve-ip-blocking-issues","title":"How to resolve IP blocking issues ","summary":"Learn to troubleshoot IP blocking issues for both shared and personal networks.","outbound":[{"site":"vercel-docs","path":"/docs/domains/troubleshooting"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules"},{"site":"vercel-kb","path":"/kb/guide/how-to-fix-a-domain-suspended-by-serverhold-or-clienthold"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/troubleshooting-connectivity-issues","distance":0.1768},{"site":"vercel-kb","path":"/kb/guide/resolve-err-ssl-protocol-error-with-vercel","distance":0.2212},{"site":"vercel-kb","path":"/kb/guide/accessing-vercel-hosted-sites-from-mainland-china","distance":0.3196},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/ip-blocking","distance":0.3233},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-cross-origin-errors-neterr-blocked-by-orb-with-deployment-protection","distance":0.3289}],"related":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/ip-blocking","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-connectivity-issues","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/resolve-err-ssl-protocol-error-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/accessing-vercel-hosted-sites-from-mainland-china","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-cross-origin-errors-neterr-blocked-by-orb-with-deployment-protection","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/domain-not-generating-ssl-certificate","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-run-a-multi-step-research-agent-on-vercel","title":"How to run a multi-step research agent on Vercel","summary":"An end-to-end architecture for production research agents on Vercel using Sandbox, Workflows, and AI Gateway with isolated execution per step.","outbound":[{"site":"ai-sdk","path":"/docs/agents/overview"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"},{"site":"vercel-docs","path":"/docs/eve"},{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/firewall"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/workflows"},{"site":"vercel-docs","path":"/docs/workflows/concepts"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/durable-web-research-agent-with-workflow-sdk","distance":0.2158},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","distance":0.2541},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel","distance":0.2663},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot","distance":0.2708},{"site":"vercel-kb","path":"/kb/guide/sandboxed-coding-agent-with-harnessagent","distance":0.3059}],"related":[{"site":"eve","path":"/docs/tutorial/ship-it","via":"neighbor"},{"site":"workflow","path":"/docs/ai","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/durable-web-research-agent-with-workflow-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/sandboxed-coding-agent-with-harnessagent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/agent-approval-workflow-stack-guide","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/marketing-team-eve","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-serve-documentation-for-agents","title":"How to serve documentation for agents","summary":"Learn how to serve markdown to agents and HTML for humans from the same URL","outbound":[{"site":"nextjs","path":"/docs/app/getting-started/route-handlers"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/markdown-access","distance":0.1981},{"site":"vercel-kb","path":"/kb/guide/make-your-documentation-readable-by-ai-agents","distance":0.2192},{"site":"vercel-shop","path":"/docs/anatomy/aeo-geo","distance":0.3067},{"site":"vercel-kb","path":"/kb/guide/agent-readability-spec","distance":0.3177},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/serving-static-files","distance":0.3207}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/markdown-access","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/aeo-geo","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/serving-static-files","via":"neighbor"},{"site":"nextjs","path":"/docs/community/contribution-guide","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/make-your-documentation-readable-by-ai-agents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/agent","via":"neighbor"},{"site":"vercel-shop","path":"/docs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/agent-readability-spec","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/rendering-content-based-on-device","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-netlify","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-setup-cron-jobs-on-vercel","title":"How to Setup Cron Jobs on Vercel","summary":"Learn how to setup and use cron jobs on Vercel","outbound":[{"site":"vercel-docs","path":"/docs/cron-jobs"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/cron-jobs/quickstart","distance":0.1207},{"site":"vercel-docs","path":"/docs/cron-jobs","distance":0.1233},{"site":"vercel-docs","path":"/docs/cron-jobs/manage-cron-jobs","distance":0.1905},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-vercel-cron-jobs","distance":0.2034},{"site":"vercel-docs","path":"/docs/cli/crons","distance":0.2343}],"related":[{"site":"vercel-docs","path":"/docs/cron-jobs/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cron-jobs/manage-cron-jobs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/crons","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cron-jobs/usage-and-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/rust","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-vercel-cron-jobs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-brunch-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-setup-verified-proxy","title":"Using Self-hosted & Reverse Proxies with Vercel","summary":"Learn about using self-hosted or reverse proxies with Vercel deployments.","outbound":[{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips"},{"site":"vercel-docs","path":"/docs/plans/enterprise"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/security/reverse-proxy","distance":0.1881},{"site":"vercel-kb","path":"/kb/guide/can-i-use-a-proxy-on-top-of-my-vercel-deployment","distance":0.2019},{"site":"vercel-kb","path":"/kb/guide/cloudflare-with-vercel","distance":0.2698},{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","distance":0.3211},{"site":"vercel-kb","path":"/kb/guide/how-to-troubleshoot-stale-content-returned-from-the-edge-network-when-using-an-external-proxy-or-cdn","distance":0.3279}],"related":[{"site":"vercel-docs","path":"/docs/security/reverse-proxy","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-i-use-a-proxy-on-top-of-my-vercel-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/automated-agent-access","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/networking/secure-compute","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/cloudflare-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-troubleshoot-stale-content-returned-from-the-edge-network-when-using-an-external-proxy-or-cdn","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-troubleshoot-stale-content-returned-from-the-edge-network-when-using-an-external-proxy-or-cdn","title":"How to troubleshoot stale content returned from the Edge Network when using an external proxy or CDN","summary":"Learn how to diagnose and fix stale content issues when using external proxies or CDNs with Vercel. Understand troubleshooting strategies, and configuration best practices to ensure fresh content delivery.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/why-running-another-cdn-on-top-of-vercel-is-not-recommended","distance":0.2014},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/debug-cache-issues","distance":0.2411},{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","distance":0.2413},{"site":"vercel-kb","path":"/kb/guide/can-i-use-a-proxy-on-top-of-my-vercel-deployment","distance":0.2567},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-connectivity-issues","distance":0.2656}],"related":[{"site":"vercel-docs","path":"/docs/caching/cdn-cache/debug-cache-issues","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/reverse-proxy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn","via":"neighbor"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-running-another-cdn-on-top-of-vercel-is-not-recommended","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-i-use-a-proxy-on-top-of-my-vercel-deployment","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-connectivity-issues","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-cross-origin-errors-neterr-blocked-by-orb-with-deployment-protection","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-upload-and-store-files-with-vercel","title":"How to upload and store files with Vercel","summary":"Vercel file uploads done right cover Server Actions, client-direct upload, and multipart for 5 TB files, with auth and caching handled by the SDK.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-blob","distance":0.147},{"site":"vercel-docs","path":"/docs/vercel-blob","distance":0.1952},{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage","distance":0.2025},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-vs-netlify-blobs","distance":0.2048},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nextjs","distance":0.2073}],"related":[{"site":"vercel-docs","path":"/docs/vercel-blob","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/private-storage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/examples","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nextjs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nuxt-imgur-clone","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-aws-s3-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-bypass-vercel-body-size-limit-serverless-functions","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-use-eve-subagents","title":"How to use subagents with eve","summary":"Learn how to use subagents with eve, including the built-in agent tool, declared specialist subagents, the isolation boundary, when to split work into a subagent, and how to verify delegation.","outbound":[{"site":"eve","path":"/docs/agent-config"},{"site":"eve","path":"/docs/getting-started"},{"site":"eve","path":"/docs/guides/dynamic-capabilities"},{"site":"eve","path":"/docs/guides/remote-agents"},{"site":"eve","path":"/docs/skills"},{"site":"eve","path":"/docs/subagents"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-skills"}],"inbound":[{"site":"vercel-docs","path":"/docs/eve/concepts"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/subagents","distance":0.1011},{"site":"eve","path":"/docs/guides/remote-agents","distance":0.183},{"site":"eve","path":"/docs/getting-started","distance":0.1988},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","distance":0.2353},{"site":"vercel-kb","path":"/kb/guide/eve-typefully-social-media-agent","distance":0.2434}],"related":[{"site":"vercel-docs","path":"/docs/eve/concepts","via":"inbound"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/subagents","via":"neighbor"},{"site":"eve","path":"/docs/concepts/built-in-tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-typefully-social-media-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-use-python-and-javascript-in-the-same-application","title":"How can I use Python and JavaScript in the same application?","summary":"Unlock the power of Python and JavaScript in your apps. Learn to integrate Flask and Next.js for dynamic frontends with AI-capable backends. Perfect for developers keen on hybrid programming.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/build-with-a-flask-starter-template","distance":0.2607},{"site":"vercel-kb","path":"/kb/guide/ship-a-flask-app-on-vercel","distance":0.266},{"site":"vercel-docs","path":"/docs/frameworks/backend/flask","distance":0.294},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","distance":0.305},{"site":"vercel-docs","path":"/docs/functions/runtimes/python","distance":0.3055}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/backend/flask","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/python","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/django","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-flask-starter-template","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-flask-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-fastapi-starter-template","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-express-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-ruby-on-rails-applications","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-use-snapshots-for-faster-sandbox-startup","title":"How to use snapshots for faster sandbox startup","summary":"Learn how to save sandbox state with snapshots and skip installation on future runs.","outbound":[{"site":"vercel-docs","path":"/docs/projects"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/user-uploaded-files-vercel-sandbox-and-blob"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/sandbox/concepts/snapshots","distance":0.1174},{"site":"vercel-kb","path":"/kb/guide/how-to-reconnect-to-a-running-sandbox","distance":0.1313},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes","distance":0.1839},{"site":"vercel-docs","path":"/docs/sandbox/run-commands-in-sandbox","distance":0.1968},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","distance":0.2034}],"related":[{"site":"vercel-docs","path":"/docs/sandbox/concepts/snapshots","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/run-commands-in-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reconnect-to-a-running-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/test-container-image-vercel-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/user-uploaded-files-vercel-sandbox-and-blob","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-container-registry","title":"How to use Vercel Container Registry","summary":"Push, store, and pull OCI container images with Vercel Container Registry, then deploy them to Vercel Functions and Vercel Sandbox.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/container-registry"},{"site":"vercel-docs","path":"/docs/container-registry/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/functions/container-images"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/images"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/container-registry","distance":0.0855},{"site":"vercel-kb","path":"/kb/guide/docker","distance":0.1045},{"site":"vercel-kb","path":"/kb/guide/migrate-ghcr-to-vcr","distance":0.125},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments","distance":0.1385},{"site":"vercel-docs","path":"/docs/container-registry/getting-started","distance":0.1619}],"related":[{"site":"vercel-docs","path":"/docs/container-registry/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/vcr","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-ghcr-to-vcr","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-cloud-run-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/test-container-image-vercel-sandbox","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-flags-across-projects","title":"How to use Vercel Flags across projects","summary":"Evaluate flags across projects using a source project SDK Key in the consumer project via a custom adapter","outbound":[{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/feature-flag"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/sdk-keys"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/core"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/sdk-keys","distance":0.1382},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-resolves-environments","distance":0.1415},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks","distance":0.2102},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk","distance":0.2175},{"site":"vercel-docs","path":"/docs/flags/vercel-flags","distance":0.2232}],"related":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/openfeature","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","title":"How to Utilize Vercel’s Bot Management Features","summary":"A practical, step-by-step guide to identifying unwanted automated traffic and securing your Vercel apps with Bot Protection Managed Rules, AI Bots Managed Rules, BotID, and custom WAF rules. Learn how to enable, monitor, and tune protections to block bad bots, preserve performance for real users, and safely allow good crawlers.","outbound":[{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/bot-management"},{"site":"vercel-docs","path":"/docs/botid"},{"site":"vercel-docs","path":"/docs/botid/get-started"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/query"},{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-docs","path":"/docs/security"},{"site":"vercel-docs","path":"/docs/security/reverse-proxy"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-concepts"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-observability"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules"},{"site":"vercel-kb","path":"/kb/guide/deploying-and-testing-botid"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/vercel-botid-vs-cloudflare-turnstile"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/bot-management","distance":0.126},{"site":"vercel-kb","path":"/kb/guide/how-to-protect-your-ai-app-from-bots","distance":0.1523},{"site":"vercel-kb","path":"/kb/guide/deploying-and-testing-botid","distance":0.1711},{"site":"vercel-kb","path":"/kb/guide/protect-ai-endpoints-with-vercel-botid","distance":0.1862},{"site":"vercel-kb","path":"/kb/guide/how-to-block-bots-openai-gptbot","distance":0.1977}],"related":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/managed-rulesets","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/attack-mode","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-protect-your-ai-app-from-bots","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/protect-ai-endpoints-with-vercel-botid","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-effectively-load-test-your-vercel-application","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-are-evaluated","title":"How Vercel Flags are evaluated","summary":"Learn how Vercel Flags determines a flag’s value across environments using evaluation context, targeting, rules, and fallback outcomes.","outbound":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/entities"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/feature-flag"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk"},{"site":"vercel-kb","path":"/kb/guide/how-splits-work-in-vercel-flags"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/feature-flag","distance":0.1242},{"site":"vercel-kb","path":"/kb/guide/how-splits-work-in-vercel-flags","distance":0.1471},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-resolves-environments","distance":0.1628},{"site":"vercel-docs","path":"/docs/flags/vercel-flags","distance":0.1641},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/entities","distance":0.1865}],"related":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/segments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/core","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/flags","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-resolves-environments","title":"How Vercel Flags resolves environments","summary":"Configure Vercel Flags per environment by using environment-scoped SDK Keys that map your Vercel deployment environment to the correct flag environment","outbound":[{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/feature-flag"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/sdk-keys"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/core"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/feature-flag","distance":0.1193},{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-flags-across-projects","distance":0.1415},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/sdk-keys","distance":0.1415},{"site":"vercel-docs","path":"/docs/flags/vercel-flags","distance":0.1506},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-are-evaluated","distance":0.1628}],"related":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/human-in-the-loop-with-chat-sdk-and-workflow-sdk","title":"Human-in-the-Loop with Chat SDK and Workflow SDK","summary":"Combine Chat SDK and Workflow SDK to suspend workflows on approval cards in a chat platform, then resume on click via createWebhook.","outbound":[{"site":"chat-sdk","path":"/docs/actions"},{"site":"chat-sdk","path":"/docs/api/thread"},{"site":"chat-sdk","path":"/docs/threads-messages-channels"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk"},{"site":"vercel-kb","path":"/kb/guide/slack-bot-vercel-blob"},{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk"},{"site":"workflow","path":"/docs/api-reference/workflow/create-hook"},{"site":"workflow","path":"/docs/api-reference/workflow/create-webhook"},{"site":"workflow","path":"/docs/getting-started"}],"inbound":[{"site":"chat-sdk","path":"/docs/ai"},{"site":"chat-sdk","path":"/docs/approvals"},{"site":"vercel-kb","path":"/kb/guide/slack-bot-vercel-blob"}],"requires":[],"neighbors":[{"site":"chat-sdk","path":"/docs/approvals","distance":0.1694},{"site":"vercel-kb","path":"/kb/guide/stateful-slack-bots-with-vercel-workflow","distance":0.1714},{"site":"vercel-kb","path":"/kb/guide/building-a-slack-agent-with-durable-workflows","distance":0.2288},{"site":"vercel-docs","path":"/docs/workflows/concepts","distance":0.2322},{"site":"workflow","path":"/docs/ai/human-in-the-loop","distance":0.2336}],"related":[{"site":"chat-sdk","path":"/docs/ai","via":"inbound"},{"site":"chat-sdk","path":"/docs/approvals","via":"inbound"},{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"workflow","path":"/docs/ai/human-in-the-loop","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows/python","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/hooks","via":"neighbor"},{"site":"workflow","path":"/docs/ai","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/python","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/next","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-a-slack-agent-with-durable-workflows","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/implementing_canary_deployments_on_vercel","title":"Implementing Canary Deployments on Vercel","summary":"This guide explains how to set up canary deployments on Vercel, enabling developers to gradually roll out new versions to a subset of users with minimal risk by leveraging Skew Protection, Global Config, and Middleware in Next.js.","outbound":[{"site":"vercel-docs","path":"/docs/deployments/managing-deployments"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/global-config/migration-guide"},{"site":"vercel-docs","path":"/docs/rolling-releases"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/blue_green_deployments_on_vercel","distance":0.1192},{"site":"vercel-kb","path":"/kb/guide/how-to-gradually-roll-out-new-versions-of-your-backend","distance":0.2315},{"site":"vercel-docs","path":"/docs/deployments","distance":0.2469},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments","distance":0.2479},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","distance":0.2499}],"related":[{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rolling-releases/rolling-release-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/incremental-migration","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/blue_green_deployments_on_vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-gradually-roll-out-new-versions-of-your-backend","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-circleci-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/improve-function-cold-start-performance-on-vercel","title":"How can I improve function cold start performance on Vercel?","summary":"Learn how to confirm whether cold starts cause function latency on Vercel, and how Fluid compute reduces how often they happen.","outbound":[{"site":"nextjs","path":"/docs/app/guides/package-bundling"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/concurrency-scaling"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"},{"site":"vercel-docs","path":"/docs/functions/debug-slow-functions"},{"site":"vercel-docs","path":"/docs/observability"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out","distance":0.1783},{"site":"vercel-docs","path":"/docs/functions/debug-slow-functions","distance":0.226},{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel","distance":0.2269},{"site":"vercel-docs","path":"/docs/functions","distance":0.2306},{"site":"vercel-kb","path":"/kb/guide/how-do-i-lower-my-serverless-function-execution-time","distance":0.2389}],"related":[{"site":"vercel-docs","path":"/docs/fundamentals/what-is-compute","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-lower-my-serverless-function-execution-time","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/hosting-backend-apis","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-services-fluid-compute","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/incremental-migrations-with-microfrontends","title":"Incremental Migrations with Microfrontends","summary":"Learn how to migrate legacy applications using microfrontends","outbound":[{"site":"vercel-docs","path":"/docs/microfrontends"},{"site":"vercel-docs","path":"/docs/microfrontends/quickstart"},{"site":"vercel-docs","path":"/docs/monorepos"},{"site":"vercel-docs","path":"/docs/observability"}],"inbound":[{"site":"vercel-docs","path":"/docs/microfrontends"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/incremental-migration","distance":0.1703},{"site":"vercel-docs","path":"/docs/microfrontends","distance":0.2518},{"site":"vercel-docs","path":"/docs/microfrontends/quickstart","distance":0.2604},{"site":"vercel-docs","path":"/docs/microfrontends/routing","distance":0.2759},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends","distance":0.2765}],"related":[{"site":"vercel-docs","path":"/docs/incremental-migration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/routing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/troubleshooting","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/microfrontends","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-ruby-on-rails-applications","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-plan-a-successful-composable-commerce-migration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/integrate-vercel-and-contentstack","title":"Integrate Vercel and Contentstack for your Headless CMS","summary":"Integrate Vercel with Contentstack, a headless CMS, to build and deploy dynamic, high-performance websites.","outbound":[{"site":"vercel-docs","path":"/docs/cli"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/cms/sitecore","distance":0.1856},{"site":"vercel-docs","path":"/docs/integrations/cms/contentful","distance":0.188},{"site":"vercel-kb","path":"/kb/guide/integrating-next-js-and-contentful-for-your-headless-cms","distance":0.1886},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-bigcommerce-storefront-with-vercel","distance":0.2312},{"site":"vercel-kb","path":"/kb/guide/using-express-with-vercel","distance":0.2391}],"related":[{"site":"vercel-docs","path":"/docs/integrations/cms/sitecore","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/contentful","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/builds","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/integrating-next-js-and-contentful-for-your-headless-cms","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-bigcommerce-storefront-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-express-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/set-up-and-use-deploy-hooks-with-vercel-and-headless-cms","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/integrating-next-js-and-contentful-for-your-headless-cms","title":"Integrating Next.js and Contentful for your Headless CMS","summary":"Next.js with Contentful gives you the power to quickly build scalable dynamic static websites with improved search engine optimization \\(SEO\\) and enhanced performance.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/cms/contentful","distance":0.1636},{"site":"vercel-kb","path":"/kb/guide/integrate-vercel-and-contentstack","distance":0.1886},{"site":"vercel-kb","path":"/kb/guide/how-to-integrate-nextjs-with-prismic","distance":0.1961},{"site":"vercel-kb","path":"/kb/guide/wordpress-with-vercel","distance":0.2167},{"site":"vercel-kb","path":"/kb/guide/building-ecommerce-sites-with-next-js-and-shopify","distance":0.2191}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"inbound"},{"site":"vercel-docs","path":"/docs/integrations/cms/contentful","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/sitecore","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/create-react-app","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/integrate-vercel-and-contentstack","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-integrate-nextjs-with-prismic","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-a-headless-cms-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-express-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/set-up-and-use-deploy-hooks-with-vercel-and-headless-cms","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/integrating-terraform-with-vercel","title":"Integrating Terraform with Vercel","summary":"Understand the benefits of Terraform and how to set up the Integration with Vercel.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-api"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/integrating_aws_secrets_manager_with_vercel_using_terraform","distance":0.1686},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","distance":0.2717},{"site":"vercel-docs","path":"/docs/deployments","distance":0.2758},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","distance":0.2798},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","distance":0.28}],"related":[{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-api","via":"inbound"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/integrating_aws_secrets_manager_with_vercel_using_terraform","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-hugo-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/nextjs-multi-tenant-application","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/integrating_aws_secrets_manager_with_vercel_using_terraform","title":"Integrating AWS Secrets Manager with Vercel Using Terraform","summary":"Learn how to seamlessly integrate AWS Secrets Manager with Vercel for enhanced security and efficiency in your web deployments using Terraform with our comprehensive guide.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/integrating-terraform-with-vercel","distance":0.1686},{"site":"vercel-kb","path":"/kb/guide/integrate-vercel-and-contentstack","distance":0.3217},{"site":"vercel-docs","path":"/docs/integrations/cms/contentful","distance":0.3328},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","distance":0.339},{"site":"vercel-docs","path":"/docs/oidc","distance":0.3496}],"related":[{"site":"vercel-kb","path":"/kb/guide/integrating-terraform-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/contentful","via":"neighbor"},{"site":"vercel-docs","path":"/docs/oidc","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/sitecore","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/integrate-vercel-and-contentstack","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-aws-sdk-environment-variables-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/integration-guide-for-sap-composable-storefront","title":"Vercel Integration Guide for SAP Composable Storefront","summary":"Integrate Vercel and SAP Composable Storefront with advanced rendering methods by leveraging the Vercel Build Output API","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/cms/sitecore","distance":0.2479},{"site":"vercel-kb","path":"/kb/guide/deploy-shopify-app-to-vercel","distance":0.2564},{"site":"vercel-docs","path":"/docs/fundamentals/builds","distance":0.2569},{"site":"vercel-kb","path":"/kb/guide/integrate-vercel-and-contentstack","distance":0.2678},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-bigcommerce-storefront-with-vercel","distance":0.276}],"related":[{"site":"vercel-docs","path":"/docs/integrations/cms/sitecore","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/builds","via":"neighbor"},{"site":"vercel-docs","path":"/docs/build-output-api/features","via":"neighbor"},{"site":"vercel-docs","path":"/docs/incremental-migration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-shopify-app-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/integrate-vercel-and-contentstack","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-bigcommerce-storefront-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-express-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/investigate-latency-issues-and-slowness","title":"Investigate latency issues and slowness on Vercel","summary":"Learn how to use Observability to investigate latency issues and slowness on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/observability"}],"inbound":[{"site":"vercel-docs","path":"/docs/observability/insights"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/functions/debug-slow-functions","distance":0.2271},{"site":"vercel-kb","path":"/kb/guide/how-do-i-lower-my-serverless-function-execution-time","distance":0.2718},{"site":"vercel-kb","path":"/kb/guide/understand-cost-impact-of-function-invocations","distance":0.28},{"site":"vercel-docs","path":"/docs/observability","distance":0.2967},{"site":"vercel-docs","path":"/docs/observability/insights","distance":0.3042}],"related":[{"site":"vercel-docs","path":"/docs/observability/insights","via":"inbound"},{"site":"vercel-docs","path":"/docs/functions/debug-slow-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/troubleshooting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-lower-my-serverless-function-execution-time","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/understand-cost-impact-of-function-invocations","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/improve-function-cold-start-performance-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-inconsistent-logs-in-vercel-functions","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/is-sqlite-supported-in-vercel","title":"Is SQLite supported in Vercel?","summary":"SQLite is a popular and fast database engine. In this article, we discuss whether it can be used in a serverless environment like Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/frameworks/backend","distance":0.3327},{"site":"vercel-kb","path":"/kb/guide/npm-run-start-not-working","distance":0.3633},{"site":"vercel-docs","path":"/docs/storage","distance":0.3889},{"site":"vercel-kb","path":"/kb/guide/do-vercel-serverless-functions-support-websocket-connections","distance":0.3897},{"site":"vercel-docs","path":"/docs/marketplace-storage","distance":0.3955}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/backend","via":"neighbor"},{"site":"vercel-docs","path":"/docs/storage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/marketplace-storage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastify","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/rust","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/npm-run-start-not-working","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-a-headless-cms-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-lower-my-serverless-function-execution-time","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/connection-pooling-with-functions","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/hosting-backend-apis","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/is-vercel-certified-under-dpf","title":"Is Vercel certified under DPF?","summary":"The EU-U.S. Data Privacy Framework \\(DPF\\) enables secure data transfers from the EU, UK, and Switzerland to the U.S. Vercel is DPF certified, ensuring compliance with data protection laws. Learn more in our Privacy Notice.","outbound":[{"site":"vercel-docs","path":"/docs/security"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/security/compliance","distance":0.2978},{"site":"vercel-kb","path":"/kb/guide/is-vercel-iso-27001-certified","distance":0.3199},{"site":"vercel-kb","path":"/kb/guide/is-vercel-pci-compliant","distance":0.325},{"site":"vercel-kb","path":"/kb/guide/is-vercel-hipaa-compliant","distance":0.3521},{"site":"vercel-docs","path":"/docs/security","distance":0.3564}],"related":[{"site":"vercel-docs","path":"/docs/security/compliance","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/privacy-policy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security/encryption","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/is-vercel-iso-27001-certified","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/is-vercel-pci-compliant","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/is-vercel-hipaa-compliant","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/supporting-compliance-with-vercel-waf","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/is-vercel-hipaa-compliant","title":"Does Vercel support HIPAA compliance?","summary":"Learn about Vercel and HIPAA compliance.","outbound":[{"site":"vercel-docs","path":"/docs/security/shared-responsibility"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/hipaa-compliance-guide-vercel","distance":0.1367},{"site":"vercel-docs","path":"/docs/security/compliance","distance":0.2679},{"site":"vercel-kb","path":"/kb/guide/is-vercel-pci-compliant","distance":0.2703},{"site":"vercel-docs","path":"/docs/security/shared-responsibility","distance":0.3344},{"site":"vercel-kb","path":"/kb/guide/is-vercel-certified-under-dpf","distance":0.3521}],"related":[{"site":"vercel-docs","path":"/docs/security/compliance","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/hipaa-compliance-guide-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/legal","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans/enterprise","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/privacy-policy","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/is-vercel-pci-compliant","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/is-vercel-certified-under-dpf","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/is-vercel-soc-2-compliant","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ensuring-safe-and-effective-infrastructure-testing","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/is-vercel-iso-27001-certified","title":"Is Vercel ISO 27001 certified?","summary":"Vercel is ISO 27001:2022 certified. See our certificate here.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/is-vercel-certified-under-dpf","distance":0.3199},{"site":"vercel-kb","path":"/kb/guide/is-vercel-pci-compliant","distance":0.3254},{"site":"vercel-docs","path":"/docs/domains/working-with-ssl","distance":0.3319},{"site":"vercel-docs","path":"/docs/cdn-security/encryption","distance":0.337},{"site":"vercel-docs","path":"/docs/security","distance":0.3475}],"related":[{"site":"vercel-docs","path":"/docs/domains/working-with-ssl","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security/encryption","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/compliance","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/certs/upload-a-cert","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/is-vercel-certified-under-dpf","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/is-vercel-pci-compliant","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ensuring-safe-and-effective-infrastructure-testing","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/is-vercel-hipaa-compliant","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/is-vercel-soc-2-compliant","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/is-vercel-pci-compliant","title":"Does Vercel support PCI compliance?","summary":"Learn about Vercel and PCI compliance.","outbound":[{"site":"vercel-docs","path":"/docs/security/pci-dss"},{"site":"vercel-docs","path":"/docs/security/shared-responsibility"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-conduct-pci-scans-on-vercel-guide","distance":0.2015},{"site":"vercel-docs","path":"/docs/security/compliance","distance":0.2301},{"site":"vercel-docs","path":"/docs/security/pci-dss","distance":0.2628},{"site":"vercel-docs","path":"/docs/security/shared-responsibility","distance":0.2652},{"site":"vercel-kb","path":"/kb/guide/is-vercel-hipaa-compliant","distance":0.2703}],"related":[{"site":"vercel-docs","path":"/docs/security/compliance","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/legal","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security/encryption","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-conduct-pci-scans-on-vercel-guide","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/is-vercel-hipaa-compliant","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ensuring-safe-and-effective-infrastructure-testing","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/supporting-compliance-with-vercel-waf","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/is-vercel-soc-2-compliant","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/is-vercel-soc-2-compliant","title":"Does Vercel have a SOC 2 Type 2 attestation?","summary":"Vercel holds a SOC 2 Type 2 attestation for Security, Confidentiality, and Availability. See what the report covers, how to access it, and what you still own.","outbound":[{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/saml"},{"site":"vercel-docs","path":"/docs/security/compliance"},{"site":"vercel-docs","path":"/docs/security/shared-responsibility"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf"},{"site":"vercel-kb","path":"/kb/guide/supporting-compliance-with-vercel-waf"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/application-authentication-on-vercel"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/security/compliance","distance":0.2133},{"site":"vercel-kb","path":"/kb/guide/ensuring-safe-and-effective-infrastructure-testing","distance":0.2788},{"site":"vercel-kb","path":"/kb/guide/supporting-compliance-with-vercel-waf","distance":0.286},{"site":"vercel-docs","path":"/docs/plans/enterprise","distance":0.2941},{"site":"vercel-kb","path":"/kb/guide/hipaa-compliance-guide-vercel","distance":0.298}],"related":[{"site":"vercel-docs","path":"/docs/plans/enterprise","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/security-dashboard","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/access-control","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ensuring-safe-and-effective-infrastructure-testing","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/hipaa-compliance-guide-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/is-vercel-pci-compliant","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/application-authentication-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/isr-observability-framework-discrepancies","title":"ISR Observability: Framework Discrepancies ","summary":"Understanding ISR Observability with Different Frameworks","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/observability","distance":0.3264},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/quickstart","distance":0.339},{"site":"vercel-docs","path":"/docs/frameworks","distance":0.3408},{"site":"vercel-docs","path":"/docs/observability/insights","distance":0.3458},{"site":"vercel-docs","path":"/docs/frameworks/full-stack","distance":0.3586}],"related":[{"site":"vercel-docs","path":"/docs/observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability/insights","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-revalidation-costs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/investigate-latency-issues-and-slowness","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/kubernetes-manifests-to-vercel-json","title":"Translate Kubernetes manifests to vercel.json","summary":"Translate Kubernetes Deployments, Services, Ingress, ConfigMaps, and CronJobs into vercel.json configuration and Vercel project settings.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/container-registry"},{"site":"vercel-docs","path":"/docs/cron-jobs/manage-cron-jobs"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/functions/container-images"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/services"},{"site":"vercel-docs","path":"/docs/vercel-blob"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/vercel-vs-kubernetes"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-kubernetes-support","distance":0.1453},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-kubernetes","distance":0.1818},{"site":"vercel-kb","path":"/kb/guide/migrate-cloud-run-to-vercel","distance":0.1888},{"site":"vercel-kb","path":"/kb/guide/docker-compose-concepts-on-vercel","distance":0.1901},{"site":"vercel-kb","path":"/kb/guide/migrate-render-to-vercel","distance":0.2016}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-kubernetes-support","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-kubernetes","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-cloud-run-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/docker-compose-concepts-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-render-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/leave-page-confirmation-dialog-before-unload-nextjs-react","title":"How to detect when user leaves the page and display a confirmation dialog?","summary":"Learn how to use React and Next.js to show an alert asking the user to confirm they want to exit a page using the window beforeunload event listener.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/optimizing-hard-navigations","distance":0.4385},{"site":"vercel-kb","path":"/kb/guide/react-context-state-management-nextjs","distance":0.4504},{"site":"nextjs","path":"/docs/app/api-reference/components/link","distance":0.4578},{"site":"nextjs","path":"/docs/app/guides/view-transitions","distance":0.461},{"site":"nextjs","path":"/docs/app/guides/preserving-ui-state","distance":0.4661}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/components/link","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/view-transitions","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/preserving-ui-state","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/offline-support","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/redacting-sensitive-data","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/consent-page","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next/examples/suspense-fallbacks","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/optimizing-hard-navigations","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/update-mega-nav-min-reval","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/library-sdk-compatible-with-vercel-edge-runtime-and-functions","title":"How can I make my library compatible with the Vercel Edge Runtime?","summary":"Learn how to make your library or SDK compatible with the Edge Runtime for existing Edge Runtime code and Routing Middleware.","outbound":[{"site":"ai-sdk","path":"/providers/adapters/langchain"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cohere"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/replicate"},{"site":"vercel-docs","path":"/docs/functions/runtimes/edge"},{"site":"vercel-docs","path":"/docs/routing-middleware"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/functions/runtimes/edge","distance":0.2836},{"site":"vercel-docs","path":"/docs/functions/runtimes","distance":0.3176},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","distance":0.3205},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/runtime","distance":0.3279},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/advanced-node-configuration","distance":0.3301}],"related":[{"site":"vercel-docs","path":"/docs/functions/runtimes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/runtime","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/advanced-node-configuration","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/invoking-entrypoints","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/invoking-entrypoints","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/edge","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/edge","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/runtime","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/lifecycle-of-a-domain","title":"Lifecycle of a domain","summary":"Understand the states a .com domain passes through from registration to deletion, and how to renew or recover it at each stage.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains/renew-a-domain","distance":0.2339},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","distance":0.2906},{"site":"vercel-docs","path":"/docs/domains/troubleshooting","distance":0.3082},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/renew-a-domain","distance":0.313},{"site":"vercel-docs","path":"/docs/domains/registrar-api","distance":0.3189}],"related":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains/renew-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/troubleshooting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/renew-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/registrar-api","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-fix-a-domain-suspended-by-serverhold-or-clienthold","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-vercel-domain-unverified","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-out-of-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/limit-abuse-with-rate-limiting","title":"Limit Abuse with Rate Limiting","summary":"Learn how to protect your authentication endpoints against abuse.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/add-rate-limiting-vercel","distance":0.1732},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting","distance":0.1779},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting-sdk","distance":0.2181},{"site":"vercel-kb","path":"/kb/guide/securing-ai-app-rate-limiting","distance":0.24},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules","distance":0.2751}],"related":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples","via":"inbound"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/add-rate-limiting-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/securing-ai-app-rate-limiting","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/suspicious-traffic-in-specific-countries","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/block-php-requests","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/traffic-spikes","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/linear-agent-vercel-connect","title":"Build a Linear agent with Vercel Connect","summary":"Build a native Linear Agent that helps your team manage issues. Mention it on any issue and it responds in real time, powered by Chat SDK and AI SDK.","outbound":[{"site":"ai-sdk","path":"/docs/agents/building-agents"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway"},{"site":"chat-sdk","path":"/docs/create-chat-sdk"},{"site":"chat-sdk","path":"/docs/streaming"},{"site":"chat-sdk","path":"/docs/vercel-connect"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/connect/legal"},{"site":"vercel-docs","path":"/docs/connect/quickstart"},{"site":"vercel-docs","path":"/docs/connect/ts-sdk-reference"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect","distance":0.133},{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect","distance":0.1535},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","distance":0.2167},{"site":"vercel-kb","path":"/kb/guide/slack-bot-vercel-blob","distance":0.2193},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","distance":0.2216}],"related":[{"site":"eve","path":"/docs/channels/linear","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/slack-bot-vercel-blob","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/liveblocks-chat-sdk-ai-sdk","title":"How to build an agent for Liveblocks with Chat SDK and AI SDK","summary":"Build an AI agent that replies to @-mentions in Liveblocks comment threads with streamed responses and tool calling, using Chat SDK, AI SDK, and Redis.","outbound":[{"site":"ai-sdk","path":"/docs/agents/building-agents"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool-loop-agent"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","distance":0.1323},{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect","distance":0.2027},{"site":"chat-sdk","path":"/docs","distance":0.2085},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-slack-bot-with-next-js-and-redis","distance":0.2142},{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk","distance":0.2174}],"related":[{"site":"chat-sdk","path":"/docs","via":"neighbor"},{"site":"chat-sdk","path":"/docs/create-chat-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/slackbot","via":"neighbor"},{"site":"chat-sdk","path":"/docs/usage","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-slack-bot-with-next-js-and-redis","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/create-a-discord-support-bot-with-nuxt-and-redis","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/slack-bot-vercel-blob","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/loading-static-file-nextjs-api-route","title":"How to Load Data from a File in Next.js","summary":"Learn how to display and read the contents of a static json file in your Next.js application.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-files-in-serverless-functions","distance":0.2793},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching","distance":0.3455},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/serving-static-files","distance":0.3489},{"site":"vercel-kb","path":"/kb/guide/integrating-next-js-and-contentful-for-your-headless-cms","distance":0.3491},{"site":"nextjs","path":"/docs/app/guides/videos","distance":0.351}],"related":[{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/serving-static-files","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/videos","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/public-static-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/custom-server","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-files-in-serverless-functions","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","title":"How to lock down deployments on Vercel and v0","summary":"Protect who can see your deployments.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/deployment-protection","distance":0.1201},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments","distance":0.121},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication","distance":0.1334},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection","distance":0.1589},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/password-protection","distance":0.1881}],"related":[{"site":"vercel-docs","path":"/docs/deployment-protection","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/password-protection","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-password-protection-to-my-vercel-deployment","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/make-your-documentation-readable-by-ai-agents","title":"Make your documentation readable by AI agents","summary":"Serve markdown to AI agents using content negotiation, .md endpoints, agent auto-detection, llms.txt,   sitemap.md, and MCP. Includes a checklist, implementation patterns, and a compliance framework for measuring agent readiness   across content platforms.","outbound":[{"site":"vercel-docs","path":"/docs/mcp"},{"site":"vercel-kb","path":"/kb/guide/agent-readability-spec"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/agent-readability-spec","distance":0.1239},{"site":"vercel-docs","path":"/docs/agent-resources/markdown-access","distance":0.1656},{"site":"vercel-docs","path":"/docs/agent-resources","distance":0.1795},{"site":"vercel-kb","path":"/kb/guide/how-to-serve-documentation-for-agents","distance":0.2192},{"site":"vercel-shop","path":"/docs/anatomy/aeo-geo","distance":0.2476}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/markdown-access","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/aeo-geo","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/ai-agents","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started/extending-with-agents","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/ship-it","via":"neighbor"},{"site":"vercel-shop","path":"/docs","via":"neighbor"},{"site":"v0","path":"/docs/agentic-features","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-serve-documentation-for-agents","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/managing-redirects-from-your-cms-using-vercel-bulk-redirects","title":"Managing Redirects from your CMS using Vercel Bulk Redirects","summary":"Learn how to sync redirect rules from your CMS to Vercel at build time with vercel.ts, allowing non-technical teams to manage vanity URLs and product redirects without code changes.","outbound":[{"site":"vercel-docs","path":"/docs/cli/redirects"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/routing/redirects/bulk-redirects/getting-started","distance":0.1949},{"site":"vercel-kb","path":"/kb/guide/how-can-i-increase-the-limit-of-redirects-or-use-dynamic-redirects-on-vercel","distance":0.2113},{"site":"vercel-docs","path":"/docs/routing/redirects/manage-redirects-at-scale","distance":0.2141},{"site":"vercel-kb","path":"/kb/guide/dynamic-redirects-with-global-config-and-next-js-proxy","distance":0.2188},{"site":"vercel-docs","path":"/docs/routing/redirects","distance":0.2253}],"related":[{"site":"vercel-docs","path":"/docs/routing/redirects/bulk-redirects/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects/manage-redirects-at-scale","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects/bulk-redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-increase-the-limit-of-redirects-or-use-dynamic-redirects-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/dynamic-redirects-with-global-config-and-next-js-proxy","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/implementing_canary_deployments_on_vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/marketing-team-eve","title":"Run a marketing team from Slack with eve","summary":"Team of five marketing agents built on eve. The lead routes work to specialists that write long-form into Notion, queue social posts in Typefully, run email in Resend, and audit for SEO, with approvals for anything irreversible.","outbound":[{"site":"eve","path":"/docs/guides/remote-agents"},{"site":"eve","path":"/docs/human-in-the-loop"},{"site":"eve","path":"/docs/skills"},{"site":"eve","path":"/docs/subagents"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/connect"},{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/oidc"},{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/vercel-blob"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/eve-agent-with-resend"},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot"},{"site":"vercel-kb","path":"/kb/guide/eve-typefully-social-media-agent"},{"site":"vercel-kb","path":"/kb/guide/sanity-eve-agent"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/eve-typefully-social-media-agent","distance":0.1659},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot","distance":0.206},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","distance":0.2353},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","distance":0.2498},{"site":"vercel-kb","path":"/kb/guide/how-to-use-eve-subagents","distance":0.2805}],"related":[{"site":"eve","path":"/docs/tutorial/ship-it","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started/extending-with-agents","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-typefully-social-media-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-eve-subagents","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/mcp-server-chatgpt-connector","title":"Build a ChatGPT Connector \\(MCP server\\)","summary":"Build a ChatGPT MCP server with mcp-handler and Fluid compute. Add search, fetch, and OAuth, deploy to Vercel, then validate it in developer mode.","outbound":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp"},{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/instant-rollback"},{"site":"vercel-docs","path":"/docs/mcp"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel"},{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/workflows"},{"site":"vercel-kb","path":"/kb/guide/mcp-server-with-weather-tool-express"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","distance":0.2339},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp","distance":0.2611},{"site":"vercel-kb","path":"/kb/guide/mcp-server-with-weather-tool-express","distance":0.2738},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-mcp-server-with-nuxt","distance":0.2892},{"site":"vercel-kb","path":"/kb/guide/using-xmcp-with-nextjs","distance":0.2941}],"related":[{"site":"eve","path":"/docs/connections/mcp","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-tools","via":"neighbor"},{"site":"v0","path":"/docs/MCP","via":"neighbor"},{"site":"eve","path":"/docs/channels/mcp","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-mcp-server-with-nuxt","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-xmcp-with-nextjs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-create-a-contentful-asset-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/application-authentication-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-mcp-apps","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/mcp-server-with-weather-tool-express","title":"Build an MCP Server with Weather tools using Express and Vercel","summary":"Make your Express weather API accessible to AI assistants through the Model Context Protocol.","outbound":[{"site":"vercel-docs","path":"/docs/frameworks/backend"},{"site":"vercel-docs","path":"/docs/mcp"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/mcp-server-chatgpt-connector"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-create-a-contentful-asset-on-vercel","distance":0.0827},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","distance":0.1684},{"site":"vercel-kb","path":"/kb/guide/using-xmcp-with-nextjs","distance":0.1997},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-mcp-server-with-nuxt","distance":0.2089},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp","distance":0.2353}],"related":[{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-create-a-contentful-asset-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/xmcp","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/adapters/mcp-server","via":"neighbor"},{"site":"v0","path":"/docs/MCP","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-xmcp-with-nextjs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-mcp-server-with-nuxt","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/weather-api-with-express","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/mcp-server-chatgpt-connector","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","title":"Migrate a Next.js app from Webflow Cloud to Vercel","summary":"Move your Next.js app from Webflow Cloud to Vercel: remove the OpenNext Cloudflare adapter, drop the base path, map storage bindings to Vercel Blob, Redis, and Postgres, and deploy with Git or the vercel CLI.","outbound":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin"},{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/marketplace-storage"},{"site":"vercel-docs","path":"/docs/queues"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/vercel-blob/using-blob-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/migrate-an-astro-app-from-webflow-cloud-to-vercel","distance":0.0876},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","distance":0.0969},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","distance":0.1138},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud","distance":0.175},{"site":"vercel-kb","path":"/kb/guide/migrate-fly-io-to-vercel","distance":0.1779}],"related":[{"site":"vercel-kb","path":"/kb/guide/migrate-an-astro-app-from-webflow-cloud-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-fly-io-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","title":"Migrate a TanStack Start app from Cloudflare to Vercel","summary":"Move your TanStack Start app off Cloudflare Workers and onto Vercel Functions, where Fluid compute scales it automatically. Swap to Nitro, remap your storage, and set up your environment variables, cron jobs, and queues.","outbound":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin"},{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/tanstack-start"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/marketplace-storage"},{"site":"vercel-docs","path":"/docs/queues"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/vercel-blob/using-blob-sdk"},{"site":"vercel-kb","path":"/kb/guide/nitro-vite-plugin"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/migrate-cloudflare-workflows-to-vercel-workflows"},{"site":"vercel-kb","path":"/kb/guide/nitro-vite-plugin"},{"site":"vercel-kb","path":"/kb/guide/tanstack-start-on-vercel-vs-cloudflare"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","distance":0.0263},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","distance":0.0969},{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel","distance":0.1024},{"site":"vercel-kb","path":"/kb/guide/tanstack-start-on-vercel-vs-cloudflare","distance":0.1147},{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel","distance":0.1296}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/backend/nitro","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/tanstack-start-on-vercel-vs-cloudflare","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","title":"Migrate a TanStack Start app from Netlify to Vercel","summary":"Move your TanStack Start app off Netlify and onto Vercel Functions, where Fluid compute scales it automatically. Swap to Nitro, remap your storage, and set up your environment variables, cron jobs, and queues.","outbound":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/tanstack-start"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/marketplace-storage"},{"site":"vercel-docs","path":"/docs/queues"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/vercel-blob/using-blob-sdk"},{"site":"vercel-kb","path":"/kb/guide/nitro-vite-plugin"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/nitro-vite-plugin"},{"site":"vercel-kb","path":"/kb/guide/tanstack-start-on-vercel-vs-netlify"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","distance":0.0263},{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel","distance":0.1057},{"site":"vercel-kb","path":"/kb/guide/tanstack-start-on-vercel-vs-netlify","distance":0.1111},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","distance":0.1138},{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel","distance":0.1202}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/backend/nitro","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/tanstack-start-on-vercel-vs-netlify","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/migrate-an-astro-app-from-webflow-cloud-to-vercel","title":"Migrate an Astro app from Webflow Cloud to Vercel","summary":"Move your Astro app from Webflow Cloud to Vercel: swap the @astrojs/cloudflare adapter for @astrojs/vercel, drop the base path, map storage bindings to Vercel Blob, Redis, and Postgres, and deploy with Git or the vercel CLI.","outbound":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin"},{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/astro"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/marketplace-storage"},{"site":"vercel-docs","path":"/docs/queues"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/vercel-blob/using-blob-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","distance":0.0876},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","distance":0.1313},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","distance":0.1536},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud","distance":0.2005},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare","distance":0.2017}],"related":[{"site":"vercel-docs","path":"/docs/incremental-migration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/migrate-cloud-run-to-vercel","title":"How to migrate from Google Cloud Run to Vercel","summary":"Migrate from Cloud Run to Vercel by copying your Dockerfile to Dockerfile.vercel, aligning the PORT contract, moving secrets, and mapping jobs to cron.","outbound":[{"site":"vercel-docs","path":"/docs/container-registry"},{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks"},{"site":"vercel-docs","path":"/docs/functions/container-images"},{"site":"vercel-docs","path":"/docs/services"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments"},{"site":"vercel-kb","path":"/kb/guide/migrate-fly-io-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-ghcr-to-vcr"},{"site":"vercel-kb","path":"/kb/guide/migrate-railway-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-render-to-vercel"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/migrate-fly-io-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-railway-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-render-to-vercel"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/migrate-fly-io-to-vercel","distance":0.0758},{"site":"vercel-kb","path":"/kb/guide/migrate-railway-to-vercel","distance":0.1012},{"site":"vercel-kb","path":"/kb/guide/migrate-render-to-vercel","distance":0.1146},{"site":"vercel-kb","path":"/kb/guide/vercel-kubernetes-support","distance":0.1444},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments","distance":0.1542}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-kubernetes-support","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/docker-compose-concepts-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/docker-on-vercel-vs-render","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/migrate-cloudflare-workflows-to-vercel-workflows","title":"How to migrate from Cloudflare Workflows to Vercel Workflows","summary":"Migrate from Cloudflare Workflows to Vercel Workflows by mapping WorkflowEntrypoint, step.do, and waitForEvent to workflow directives and hooks.","outbound":[{"site":"vercel-docs","path":"/docs/queues"},{"site":"vercel-docs","path":"/docs/workflows"},{"site":"vercel-docs","path":"/docs/workflows/concepts"},{"site":"vercel-docs","path":"/docs/workflows/pricing"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare"},{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-cloudflare"},{"site":"vercel-kb","path":"/kb/guide/stateful-slack-bots-with-vercel-workflow"},{"site":"workflow","path":"/docs/getting-started"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/workflows","distance":0.1808},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","distance":0.2113},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","distance":0.2308},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-cloudflare-workflows","distance":0.2329},{"site":"vercel-kb","path":"/kb/guide/migrate-an-astro-app-from-webflow-cloud-to-vercel","distance":0.2491}],"related":[{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-cloudflare-workflows","via":"neighbor"},{"site":"vercel-docs","path":"/docs/incremental-migration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-an-astro-app-from-webflow-cloud-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-cloud-run-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-fly-io-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-kubernetes","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/migrate-containers-from-aws-to-vercel","title":"Migrate self-hosted Next.js and containers from AWS to Vercel","summary":"Migrate containers from AWS to Vercel: deploy with Dockerfile.vercel, keep RDS, S3, and SQS in AWS over OIDC, and cut over DNS with no downtime.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/domains"},{"site":"vercel-docs","path":"/docs/domains/working-with-dns"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain"},{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/container-images"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/git/vercel-for-github"},{"site":"vercel-docs","path":"/docs/logs/runtime"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/oidc"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/services/config-reference"},{"site":"vercel-docs","path":"/docs/tracing/instrumentation"},{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/workflows"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/vercel-kubernetes-support"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/migrate-cloud-run-to-vercel","distance":0.2265},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments","distance":0.2368},{"site":"vercel-kb","path":"/kb/guide/full-stack-preview-deployments-on-vercel","distance":0.2373},{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker","distance":0.2376},{"site":"vercel-kb","path":"/kb/guide/docker","distance":0.2482}],"related":[{"site":"vercel-kb","path":"/kb/guide/migrate-cloud-run-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/full-stack-preview-deployments-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/docker","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/migrate-fly-io-to-vercel","title":"How to migrate from Fly.io to Vercel","summary":"Move a containerized app from Fly.io to Vercel. Map fly.toml to Dockerfile.vercel and vercel.json, replace Machines with Fluid compute, move volumes to external storage, and cut over without downtime.","outbound":[{"site":"vercel-docs","path":"/docs/container-registry"},{"site":"vercel-docs","path":"/docs/functions/container-images"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments"},{"site":"vercel-kb","path":"/kb/guide/migrate-cloud-run-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-ghcr-to-vcr"},{"site":"vercel-kb","path":"/kb/guide/migrate-railway-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-render-to-vercel"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/migrate-cloud-run-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-railway-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-render-to-vercel"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/migrate-cloud-run-to-vercel","distance":0.0758},{"site":"vercel-kb","path":"/kb/guide/migrate-railway-to-vercel","distance":0.0941},{"site":"vercel-kb","path":"/kb/guide/migrate-render-to-vercel","distance":0.139},{"site":"vercel-kb","path":"/kb/guide/vercel-kubernetes-support","distance":0.1726},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","distance":0.1779}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-kubernetes-support","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/docker-compose-concepts-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/migrate-ghcr-to-vcr","title":"How to migrate from GHCR to Vercel Container Registry","summary":"Migrate container images from GitHub Container Registry \\(GHCR\\) to Vercel Container Registry \\(VCR\\), including authentication, multi-platform copies, and CI updates","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/container-registry"},{"site":"vercel-docs","path":"/docs/container-registry/cli-reference"},{"site":"vercel-docs","path":"/docs/container-registry/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/functions/container-images"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/images"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/migrate-cloud-run-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-fly-io-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-railway-to-vercel"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-container-registry","distance":0.125},{"site":"vercel-docs","path":"/docs/container-registry","distance":0.1711},{"site":"vercel-kb","path":"/kb/guide/migrate-cloud-run-to-vercel","distance":0.1791},{"site":"vercel-kb","path":"/kb/guide/migrate-fly-io-to-vercel","distance":0.2137},{"site":"vercel-kb","path":"/kb/guide/docker","distance":0.2151}],"related":[{"site":"vercel-docs","path":"/docs/cli/vcr","via":"neighbor"},{"site":"vercel-docs","path":"/docs/container-registry/getting-started","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-container-registry","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-cloud-run-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-fly-io-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-railway-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/migrate-railway-to-vercel","title":" How to migrate from Railway to Vercel","summary":"Move an app from Railway to Vercel. Most Railpack-built apps deploy through framework detection with no container; Dockerfile apps move as Dockerfile.vercel. Map railway.json to vercel.json and cut over safely.","outbound":[{"site":"vercel-docs","path":"/docs/container-registry"},{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/functions/container-images"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments"},{"site":"vercel-kb","path":"/kb/guide/migrate-cloud-run-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-fly-io-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-ghcr-to-vcr"},{"site":"vercel-kb","path":"/kb/guide/migrate-render-to-vercel"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/migrate-cloud-run-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-fly-io-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-render-to-vercel"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/migrate-fly-io-to-vercel","distance":0.0941},{"site":"vercel-kb","path":"/kb/guide/migrate-cloud-run-to-vercel","distance":0.1012},{"site":"vercel-kb","path":"/kb/guide/migrate-render-to-vercel","distance":0.1507},{"site":"vercel-kb","path":"/kb/guide/vercel-kubernetes-support","distance":0.1925},{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker","distance":0.2033}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-kubernetes-support","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/docker-compose-concepts-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/migrate-render-to-vercel","title":"How to migrate from Render to Vercel","summary":"Migrate from Render to Vercel: map web services, cron jobs, and containers to their equivalents, and handle what doesn't move.","outbound":[{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks"},{"site":"vercel-docs","path":"/docs/functions/container-images"},{"site":"vercel-docs","path":"/docs/services"},{"site":"vercel-kb","path":"/kb/guide/docker-on-vercel-vs-render"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments"},{"site":"vercel-kb","path":"/kb/guide/migrate-cloud-run-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-fly-io-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-railway-to-vercel"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/migrate-cloud-run-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-fly-io-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-railway-to-vercel"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/docker-on-vercel-vs-render","distance":0.1115},{"site":"vercel-kb","path":"/kb/guide/migrate-cloud-run-to-vercel","distance":0.1146},{"site":"vercel-kb","path":"/kb/guide/migrate-fly-io-to-vercel","distance":0.139},{"site":"vercel-kb","path":"/kb/guide/migrate-railway-to-vercel","distance":0.1507},{"site":"vercel-kb","path":"/kb/guide/vercel-kubernetes-support","distance":0.1908}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-kubernetes-support","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/docker-compose-concepts-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/kubernetes-manifests-to-vercel-json","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare","title":"Migrate to Vercel from Cloudflare","summary":"Migrate your website's configuration from Cloudflare Pages or Workers to Vercel","outbound":[{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/cli/env"},{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/domains/pre-generating-ssl-certs"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/transfer-your-domain"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/headers"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/project-configuration"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/routing-middleware/getting-started"},{"site":"vercel-docs","path":"/docs/speed-insights"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/migrate-cloudflare-workflows-to-vercel-workflows"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","distance":0.1807},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","distance":0.1913},{"site":"vercel-kb","path":"/kb/guide/migrate-an-astro-app-from-webflow-cloud-to-vercel","distance":0.2017},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","distance":0.2227},{"site":"vercel-docs","path":"/docs/incremental-migration","distance":0.2271}],"related":[{"site":"vercel-docs","path":"/docs/incremental-migration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-an-astro-app-from-webflow-cloud-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-netlify","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-netlify","title":"Migrate to Vercel from Netlify","summary":"Migrate your website's configuration from Netlify to Vercel","outbound":[{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-can-i-increase-the-limit-of-redirects-or-use-dynamic-redirects-on-vercel","distance":0.2172},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","distance":0.2181},{"site":"vercel-docs","path":"/docs/incremental-migration","distance":0.22},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare","distance":0.2303},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","distance":0.2342}],"related":[{"site":"vercel-docs","path":"/docs/incremental-migration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/react-router","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-increase-the-limit-of-redirects-or-use-dynamic-redirects-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/missing-routes-manifest-or-output-turborepo-nx","title":"Missing routes-manifest.json file or No Output Directory when using Turborepo or NX","summary":"How to solve the error \\`The file \"/vercel/path0/apps/web/.next/routes-manifest.json\" couldn't be found\\` or \\`No Output Directory\\` when using Turborepo or NX.","outbound":[{"site":"vercel-docs","path":"/docs/deployments/managing-deployments"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/monorepos/turborepo","distance":0.2638},{"site":"vercel-docs","path":"/docs/monorepos/nx","distance":0.288},{"site":"vercel-docs","path":"/docs/monorepos/monorepo-faq","distance":0.3098},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","distance":0.32},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","distance":0.3317}],"related":[{"site":"vercel-docs","path":"/docs/monorepos/turborepo","via":"neighbor"},{"site":"vercel-docs","path":"/docs/monorepos/nx","via":"neighbor"},{"site":"vercel-docs","path":"/docs/monorepos/monorepo-faq","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/ci-vendors/vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/debug-cache-issues","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/caching","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-404-errors","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-deployed-project-giving-404","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/dependencies-from-package-json-missing-after-install","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/ml-models-hugging-face","title":"How to Use ML Models from Hugging Face in Vercel Functions","summary":"This guide provides step-by-step instructions on how to integrate ML models from Hugging Face into Vercel Functions","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/cohere-nextjs-vercel-ai-sdk","distance":0.2272},{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","distance":0.2584},{"site":"vercel-kb","path":"/kb/guide/openai-function-calling","distance":0.2788},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","distance":0.292},{"site":"vercel-kb","path":"/kb/guide/ship-a-h3-app-on-vercel","distance":0.2975}],"related":[{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/contentful","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/cohere-nextjs-vercel-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-h3-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/integrate-vercel-and-contentstack","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/posthog-nextjs-vercel-feature-flags-analytics","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-express-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/modify-request-headers","title":"Modifying request headers","summary":"Learn how to modify request headers in your Middleware.","outbound":[{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/routing-middleware/api"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/add-response-header","distance":0.152},{"site":"vercel-docs","path":"/docs/routing-middleware/getting-started","distance":0.2574},{"site":"vercel-kb","path":"/kb/guide/filter-query-parameters","distance":0.2679},{"site":"vercel-docs","path":"/docs/routing-middleware","distance":0.2774},{"site":"vercel-kb","path":"/kb/guide/rendering-content-based-on-device","distance":0.2846}],"related":[{"site":"vercel-docs","path":"/docs/routing-middleware/getting-started","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/add-response-header","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/proxy","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-response","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-response","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/filter-query-parameters","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/rendering-content-based-on-device","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/use-crypto-web-api","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-netlify","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/monitor-frontend-performance-with-debugbear-and-vercel","title":"Monitor Frontend Performance with DebugBear and Vercel","summary":"Automatically test each Vercel deployment and report performance changes to GitHub.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/monitoring-performance-with-calibre-and-vercel","distance":0.2203},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-bitbucket-pipelines-with-vercel","distance":0.2504},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","distance":0.2527},{"site":"vercel-docs","path":"/docs/git","distance":0.2529},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-gitlab-pipelines-with-vercel","distance":0.2543}],"related":[{"site":"vercel-docs","path":"/docs/git","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/monitoring-performance-with-calibre-and-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-bitbucket-pipelines-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-gitlab-pipelines-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-circleci-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/monitor-uptime-for-ai-native-apps-with-vercel-alerts","title":"Monitor uptime for AI-native apps with Vercel Alerts","summary":"Learn how to use Vercel Anomaly Alerts as an early-warning system for AI-powered apps, helping you catch 5xx spikes and usage anomalies before they impact users.","outbound":[{"site":"vercel-docs","path":"/docs/agent/investigation"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/alerts","distance":0.1767},{"site":"vercel-docs","path":"/docs/alerts/configure-alerts","distance":0.2241},{"site":"vercel-docs","path":"/docs/agent/investigation","distance":0.23},{"site":"vercel-kb","path":"/kb/guide/vercel-agent","distance":0.26},{"site":"vercel-docs","path":"/docs/observability","distance":0.2838}],"related":[{"site":"vercel-docs","path":"/docs/alerts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/alerts/configure-alerts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/alerts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-observability","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/detect-memory-and-oom-failures-in-serverless-functions","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/monitoring-performance-with-calibre-and-vercel","title":"Monitor Performance with Calibre and Vercel","summary":"Receive performance reports directly in your GitHub Pull Requests, following a Vercel deployment.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/monitor-frontend-performance-with-debugbear-and-vercel","distance":0.2203},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","distance":0.3354},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-circleci-with-vercel","distance":0.3388},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket","distance":0.3393},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-bitbucket-pipelines-with-vercel","distance":0.3402}],"related":[{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-github","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent/pr-review/usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/monitor-frontend-performance-with-debugbear-and-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-circleci-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-bitbucket-pipelines-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-agent-code-review","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-gitlab-pipelines-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/mysql-vs-postgresql-vs-mongodb","title":"Comparing MySQL, PostgreSQL, and MongoDB ","summary":"Explore database selection for optimal performance, focusing on SQL options like MySQL, PostgreSQL, and NoSQL's MongoDB. Consider data types, indexing, concurrency, scalability, replication, and ACID compliance for your application's needs.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/sql-vs-nosql-databases","distance":0.1585},{"site":"vercel-kb","path":"/kb/guide/connect-next-js-to-amazon-aurora-postgresql-using-vercel-marketplace","distance":0.3516},{"site":"vercel-docs","path":"/docs/marketplace-storage","distance":0.3773},{"site":"vercel-kb","path":"/kb/guide/vector-databases","distance":0.3883},{"site":"vercel-docs","path":"/docs/storage","distance":0.3927}],"related":[{"site":"vercel-kb","path":"/kb/guide/sql-vs-nosql-databases","via":"neighbor"},{"site":"vercel-docs","path":"/docs/marketplace-storage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/storage","via":"neighbor"},{"site":"v0","path":"/docs/databases","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/connect-next-js-to-amazon-aurora-postgresql-using-vercel-marketplace","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vector-databases","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-a-headless-cms-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/hosting-backend-apis","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-cloudflare","title":"Next.js on Vercel vs Cloudflare","summary":"Compare running Next.js on Vercel Functions with Fluid compute against Cloudflare Workers with the OpenNext Cloudflare adapter. Learn how feature support, caching, storage, background jobs, pricing, and developer experience differ so you can choose the right platform.","outbound":[{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/marketplace-storage"},{"site":"vercel-docs","path":"/docs/queues"},{"site":"vercel-docs","path":"/docs/vercel-blob"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/migrate-cloudflare-workflows-to-vercel-workflows"},{"site":"vercel-kb","path":"/kb/guide/vercel-drop-vs-cloudflare-direct-upload"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/nextjs-on-vercel-vs-netlify","distance":0.0893},{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-webflow-cloud","distance":0.0954},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud","distance":0.1233},{"site":"vercel-kb","path":"/kb/guide/astro-on-vercel-vs-webflow-cloud","distance":0.1246},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway","distance":0.2031}],"related":[{"site":"vercel-kb","path":"/kb/guide/nextjs-on-vercel-vs-netlify","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-webflow-cloud","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/what-is-compute","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/astro-on-vercel-vs-webflow-cloud","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-webflow-cloud","title":"Next.js on Vercel vs Webflow Cloud","summary":"Compare running Next.js on Vercel Functions with Fluid compute against Webflow Cloud on Cloudflare Workers. Learn how Next.js feature support, runtimes, storage, pricing, and developer experience differ so you can choose the right platform.","outbound":[{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/marketplace-storage"},{"site":"vercel-docs","path":"/docs/queues"},{"site":"vercel-docs","path":"/docs/vercel-blob"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud","distance":0.0773},{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-cloudflare","distance":0.0954},{"site":"vercel-kb","path":"/kb/guide/astro-on-vercel-vs-webflow-cloud","distance":0.1113},{"site":"vercel-kb","path":"/kb/guide/nextjs-on-vercel-vs-netlify","distance":0.1368},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","distance":0.1981}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-cloudflare","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/what-is-compute","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/astro-on-vercel-vs-webflow-cloud","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/nextjs-on-vercel-vs-netlify","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/nextjs-langchain-vercel-ai","title":"Building an AI chatbot with Next.js, Langchain, and OpenAI","summary":"Dive into the world of LangChain.js and Next.js with our detailed guide. Learn how to set up a chatbot, structure outputs, integrate agents, and more. Perfect for developers looking to harness the power of AI in their web applications.","outbound":[{"site":"ai-sdk","path":"/providers/adapters/langchain"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cohere"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/langchain","distance":0.1833},{"site":"vercel-kb","path":"/kb/guide/openai-function-calling","distance":0.2204},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.2324},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/langchain","distance":0.2388},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","distance":0.2463}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/langchain","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/langchain","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/deepseek-v3-2","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/slackbot","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/openai-function-calling","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/rag-chatbot-production-architecture-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/chained-openai-llm-calls-vercel-inngest","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/nextjs-multi-tenant-application","title":"Build a multi-tenant app with Next.js and Vercel","summary":"Create a Next.js application with multi-tenancy and custom domain support on Vercel.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata"},{"site":"vercel-docs","path":"/docs/deployments/generated-urls"},{"site":"vercel-docs","path":"/docs/domains/working-with-ssl"},{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/reference","distance":0.1244},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/quickstart","distance":0.1268},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","distance":0.1324},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/concepts","distance":0.1621},{"site":"vercel-docs","path":"/docs/platforms/examples/multi-tenant-template","distance":0.171}],"related":[{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/examples/multi-tenant-template","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-serve-multiple-projects-under-a-single-domain","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/nextjs-on-vercel-vs-netlify","title":"Next.js on Vercel vs Netlify","summary":"Compare running Next.js on Vercel Functions with Fluid compute against Netlify Functions and the OpenNext adapter. Learn how feature support, caching, storage, background jobs, pricing, and developer experience differ so you can choose the right platform.","outbound":[{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/marketplace-storage"},{"site":"vercel-docs","path":"/docs/queues"},{"site":"vercel-docs","path":"/docs/vercel-blob"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/vercel-drop-vs-netlify-drop"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-cloudflare","distance":0.0893},{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-webflow-cloud","distance":0.1368},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud","distance":0.1608},{"site":"vercel-kb","path":"/kb/guide/astro-on-vercel-vs-webflow-cloud","distance":0.1735},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify","distance":0.1762}],"related":[{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-cloudflare","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/what-is-compute","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-webflow-cloud","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/astro-on-vercel-vs-webflow-cloud","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/nextjs-prisma-postgres","title":"Build a fullstack app with Next.js 16 and Prisma Postgres","summary":"Create a fullstack blog with the Next.js App Router, Prisma, Sign in with Vercel, Prisma Postgres from the Vercel Marketplace, and deploy it to Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/sign-in-with-vercel"}],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/guides/rag-chatbot","distance":0.2705},{"site":"vercel-docs","path":"/docs/botid/get-started","distance":0.2769},{"site":"nextjs","path":"/docs/app/guides/authentication","distance":0.2922},{"site":"vercel-docs","path":"/docs/frameworks/frontend/react-router","distance":0.3184},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","distance":0.3287}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"inbound"},{"site":"ai-sdk","path":"/cookbook/guides/rag-chatbot","via":"neighbor"},{"site":"vercel-docs","path":"/docs/botid/get-started","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/react-router","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/client-upload","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/authorization-server-api","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-vite","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/nitro-vite-plugin","title":"What is the Nitro Vite plugin?","summary":"The Nitro Vite plugin \\(nitro/vite\\) adds SSR, API routes, and deploy-anywhere server builds to any Vite app. Learn what it does and how it runs on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/vite-with-nitro"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/tanstack-start-on-vercel-vs-cloudflare"},{"site":"vercel-kb","path":"/kb/guide/tanstack-start-on-vercel-vs-netlify"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel","distance":0.1342},{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel","distance":0.1462},{"site":"vercel-docs","path":"/docs/frameworks/backend/nitro","distance":0.1587},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","distance":0.1661},{"site":"vercel-kb","path":"/kb/guide/build-with-a-nitro-starter-template","distance":0.1741}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/backend/nitro","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/tanstack-start","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-nitro-starter-template","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/tanstack-start-on-vercel-vs-netlify","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-solid-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/npm-run-start-not-working","title":"Why does npm run start not work on Vercel?","summary":"Information on why commands that start servers may not work with Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/functions"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/why-does-my-serverless-function-work-locally-but-not-when-deployed","distance":0.3017},{"site":"vercel-docs","path":"/docs/frameworks/backend/nestjs","distance":0.3074},{"site":"vercel-kb","path":"/kb/guide/using-express-with-vercel","distance":0.313},{"site":"vercel-docs","path":"/docs/fundamentals/builds","distance":0.3159},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","distance":0.3225}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/backend/nestjs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/builds","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/advanced-node-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/express","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-does-my-serverless-function-work-locally-but-not-when-deployed","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-express-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-i-deploy-discord-bots-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-running-another-cdn-on-top-of-vercel-is-not-recommended","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-locally-built-nextjs","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/nuxt-and-vercel-connect","title":"Build an integrations hub with Nuxt and Vercel Connect","summary":"Build an Integrations Hub with Nuxt and Vercel Connect. Connect GitHub and Linear over OAuth and mint short-lived tokens at runtime with @vercel/connect, with no provider secrets in your environment.","outbound":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin"},{"site":"vercel-docs","path":"/docs/cli/connect"},{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/connect/concepts"},{"site":"vercel-docs","path":"/docs/connect/quickstart"},{"site":"vercel-docs","path":"/docs/connect/ts-sdk-reference"}],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nuxt"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/connect/quickstart","distance":0.1752},{"site":"vercel-kb","path":"/kb/guide/vercel-connect","distance":0.2037},{"site":"vercel-docs","path":"/docs/connect","distance":0.2054},{"site":"vercel-docs","path":"/docs/connect/concepts","distance":0.2195},{"site":"chat-sdk","path":"/docs/vercel-connect","distance":0.2271}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nuxt","via":"inbound"},{"site":"chat-sdk","path":"/docs/vercel-connect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/connectors","via":"neighbor"},{"site":"v0","path":"/docs/vercel-connect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/contentful","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/linear-agent-vercel-connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-express-starter-template","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-nitro-starter-template","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/openai-function-calling","title":"How to use OpenAI Function Calling with Next.js and the Vercel AI SDK","summary":"Learn how to use OpenAI Function Calling and Vercel AI SDK in a Next.js Application to build AI-powered user experiences.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.2197},{"site":"vercel-kb","path":"/kb/guide/nextjs-langchain-vercel-ai","distance":0.2204},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","distance":0.2741},{"site":"ai-sdk","path":"/cookbook/guides/slackbot","distance":0.2778},{"site":"vercel-kb","path":"/kb/guide/ml-models-hugging-face","distance":0.2788}],"related":[{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/slackbot","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/openai-responses","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/nextjs-langchain-vercel-ai","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ml-models-hugging-face","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/rag-chatbot-production-architecture-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute","title":"Troubleshoot and optimize Active CPU usage on Fluid compute","summary":"Diagnose which routes drive Active CPU usage and learn to optimize it. Separate traffic growth from per-request CPU work, fix common Active CPU usage patterns, and verify the change after shipping.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image"},{"site":"nextjs","path":"/docs/app/api-reference/functions/after"},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components"},{"site":"nextjs","path":"/docs/app/guides/prefetching"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin"},{"site":"vercel-docs","path":"/docs/caching"},{"site":"vercel-docs","path":"/docs/caching/cache-status"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/memory"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/logs/runtime"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/observability/insights"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage"},{"site":"vercel-docs","path":"/docs/query"},{"site":"vercel-docs","path":"/docs/routing-middleware"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-writes","distance":0.2705},{"site":"vercel-kb","path":"/kb/guide/improve-function-cold-start-performance-on-vercel","distance":0.2746},{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel","distance":0.2846},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out","distance":0.2875},{"site":"vercel-kb","path":"/kb/guide/fluid-compute-vs-cloud-cost","distance":0.2971}],"related":[{"site":"vercel-docs","path":"/docs/functions/debug-slow-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/what-is-compute","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-writes","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/improve-function-cold-start-performance-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-services-fluid-compute","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/cls-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/optimizing-hard-navigations","title":"Optimizing hard navigations","summary":"Learn how to improve performance for navigations that require a full page reload","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/prefetching","distance":0.2151},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching","distance":0.2545},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching","distance":0.2725},{"site":"nextjs","path":"/docs/app/getting-started/caching","distance":0.2885},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.3016}],"related":[{"site":"nextjs","path":"/docs/app/guides/prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/caching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next/examples/suspense-fallbacks","via":"neighbor"},{"site":"swr","path":"/docs/prefetching","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-prerender-my-application-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/pause-your-project","title":"Pause your project","summary":"Use a webhook to pause your project based on spend management.","outbound":[{"site":"vercel-docs","path":"/docs/spend-management"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/projects/pause-a-project","distance":0.2194},{"site":"vercel-docs","path":"/docs/rest-api/projects/unpause-a-project","distance":0.2529},{"site":"vercel-docs","path":"/docs/projects/managing-projects","distance":0.2955},{"site":"vercel-docs","path":"/docs/spend-management","distance":0.3155},{"site":"vercel-kb","path":"/kb/guide/why-is-my-account-deployment-blocked","distance":0.3382}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/projects/pause-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/unpause-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/managing-projects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/update-the-rolling-release-settings-for-the-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/delete-a-project","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-account-deployment-blocked","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/penetration-testing-on-vercel","title":"Penetration testing on Vercel","summary":"Learn how to perform pentesting on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/limits/fair-use-guidelines"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/ensuring-safe-and-effective-infrastructure-testing","distance":0.2016},{"site":"vercel-kb","path":"/kb/guide/what-s-vercel-s-policy-regarding-load-testing-deployments","distance":0.2521},{"site":"vercel-docs","path":"/docs/security","distance":0.2794},{"site":"vercel-kb","path":"/kb/guide/how-to-effectively-load-test-your-vercel-application","distance":0.2827},{"site":"vercel-docs","path":"/docs/security/compliance","distance":0.2908}],"related":[{"site":"vercel-docs","path":"/docs/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/compliance","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ensuring-safe-and-effective-infrastructure-testing","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-s-vercel-s-policy-regarding-load-testing-deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-effectively-load-test-your-vercel-application","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-conduct-pci-scans-on-vercel-guide","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/per-environment-and-per-branch-build-commands","title":"Per-environment and per-branch Build Commands on Vercel","summary":"Customize your commands for specific behaviors based on branch, environment, and more.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/dynamic-build-commands","distance":0.102},{"site":"vercel-kb","path":"/kb/guide/how-can-i-add-a-custom-build-step-to-my-project","distance":0.2836},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-the-ignored-build-step-field-on-vercel","distance":0.2837},{"site":"vercel-docs","path":"/docs/cli/build","distance":0.2912},{"site":"vercel-kb","path":"/kb/guide/using-vercel-cli-for-custom-workflows","distance":0.3105}],"related":[{"site":"vercel-kb","path":"/kb/guide/dynamic-build-commands","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/build","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds/build-features","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/manage-across-environments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/project-linking","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-add-a-custom-build-step-to-my-project","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-the-ignored-build-step-field-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-i-use-a-non-default-branch-for-production","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/set-up-a-staging-environment-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/pointing-subdomains-to-external-services","title":"How do I point a subdomain to a service outside of Vercel?","summary":"Information on how to make a subdomain available to a service outside of Vercel.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","distance":0.2736},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","distance":0.2744},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","distance":0.279},{"site":"vercel-kb","path":"/kb/guide/does-using-vercel-s-nameserver-s-lock-you-in","distance":0.2815},{"site":"vercel-docs","path":"/docs/domains/working-with-dns","distance":0.2853}],"related":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains","via":"inbound"},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-dns","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-nameservers","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-using-vercel-s-nameserver-s-lock-you-in","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-email-with-your-vercel-domain","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-vercel-domain-unverified","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/posthog-nextjs-vercel-feature-flags-analytics","title":"Using PostHog with the Next.js App Router and Vercel","summary":"Learn how to use PostHog with Next.js and Vercel to add analytics, feature flags, and more.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"flags-sdk","path":"/docs/providers/posthog","distance":0.2835},{"site":"vercel-kb","path":"/kb/guide/how-to-integrate-optimizely-feature-experimentation-next-vercel","distance":0.2886},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","distance":0.2937},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-bigcommerce-storefront-with-vercel","distance":0.2953},{"site":"vercel-kb","path":"/kb/guide/integrating-next-js-and-contentful-for-your-headless-cms","distance":0.2964}],"related":[{"site":"flags-sdk","path":"/docs/providers/posthog","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/sitecore","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-integrate-optimizely-feature-experimentation-next-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-h3-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-hugo-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/integrate-vercel-and-contentstack","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/preview-deployment-suffix-without-vercel-nameservers","title":"Can I use Preview Deployment Suffix without switching to Vercel Nameservers?","summary":"Information on how to use Preview Deployment Suffix without Vercel Nameservers","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/deployments/preview-deployment-suffix"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/wildcard-domain-without-vercel-nameservers","distance":0.1766},{"site":"vercel-docs","path":"/docs/deployments/preview-deployment-suffix","distance":0.1835},{"site":"vercel-kb","path":"/kb/guide/why-do-my-vercel-deployments-have-multiple-domains","distance":0.2865},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","distance":0.2902},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/preview-url-prefixes","distance":0.2905}],"related":[{"site":"vercel-docs","path":"/docs/deployments/preview-deployment-suffix","via":"inbound"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/preview-url-prefixes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-nameservers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/wildcard-domain-without-vercel-nameservers","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/zero-downtime-migration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/cloudflare-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-using-vercel-s-nameserver-s-lock-you-in","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/processing-data-chunks","title":"Processing Data Chunks","summary":"Learn how to create an API endpoint that processes data chunks.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/functions/streaming-functions"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/what-is-streaming","distance":0.1851},{"site":"vercel-kb","path":"/kb/guide/handling-backpressure","distance":0.233},{"site":"vercel-kb","path":"/kb/guide/streaming-from-llm","distance":0.2443},{"site":"vercel-docs","path":"/docs/functions/streaming-functions","distance":0.2494},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/streaming","distance":0.2958}],"related":[{"site":"vercel-docs","path":"/docs/functions/streaming-functions","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/streaming","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/streaming","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/streaming","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/streaming","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-streaming","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/api-servers/express","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/handling-backpressure","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/streaming-from-llm","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/protect-ai-endpoints-with-vercel-botid","title":"How to protect your AI endpoints with Vercel BotID","summary":"Gate every request to your AI endpoints with Vercel BotID and checkBotId\\(\\) so inference runs only for verified callers. Covers setup, Deep Analysis, and verified bots.","outbound":[{"site":"vercel-docs","path":"/docs/botid"},{"site":"vercel-docs","path":"/docs/botid/advanced-configuration"},{"site":"vercel-docs","path":"/docs/botid/get-started"},{"site":"vercel-docs","path":"/docs/botid/local-development-behavior"},{"site":"vercel-docs","path":"/docs/botid/verified-bots"},{"site":"vercel-docs","path":"/docs/projects/managing-projects"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-concepts"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/application-authentication-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/vercel-botid-vs-cloudflare-turnstile"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deploying-and-testing-botid","distance":0.1131},{"site":"vercel-docs","path":"/docs/botid","distance":0.1149},{"site":"vercel-kb","path":"/kb/guide/vercel-botid-vs-cloudflare-turnstile","distance":0.1828},{"site":"vercel-kb","path":"/kb/guide/how-to-protect-your-ai-app-from-bots","distance":0.1833},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","distance":0.1862}],"related":[{"site":"vercel-docs","path":"/docs/bot-management","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-and-testing-botid","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/automated-agent-access","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-botid-vs-cloudflare-turnstile","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-protect-your-ai-app-from-bots","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-block-bots-openai-gptbot","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/publish-and-subscribe-to-realtime-data-on-vercel","title":"Publish and subscribe to realtime data on Vercel","summary":"Learn how to publish and subscribe to realtime data on Vercel with WebSockets, SSE, Redis, and Queues, and when a managed provider fits better.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-resume-streams"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/functions/websockets"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/queues"},{"site":"vercel-docs","path":"/docs/queues/concepts"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-kb","path":"/kb/guide/deploying-pusher-channels-with-vercel"},{"site":"vercel-kb","path":"/kb/guide/do-vercel-serverless-functions-support-websocket-connections"},{"site":"vercel-kb","path":"/kb/guide/real-time-board-nextjs-fastapi"},{"site":"vercel-kb","path":"/kb/guide/real-time-chat-websockets"},{"site":"vercel-kb","path":"/kb/guide/real-time-presence-hono-react"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/queues/concepts","distance":0.2494},{"site":"vercel-kb","path":"/kb/guide/building-ai-chat-app-with-rag-and-citations-on-vercel","distance":0.2518},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud","distance":0.2813},{"site":"vercel-kb","path":"/kb/guide/rag-chatbot-production-architecture-on-vercel","distance":0.2847},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway","distance":0.2884}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/backend","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-ai-chat-app-with-rag-and-citations-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/rag-chatbot-production-architecture-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/python-ai-sdk-vercel-sandbox","title":"Run Python code securely with AI SDK and Vercel Sandbox","summary":"Add an \\`executeCode\\` tool to your AI SDK agent with the \\`ai-sdk-tool-code-execution\\` package to run Python 3.13 inside an isolated Vercel Sandbox.","outbound":[{"site":"ai-sdk","path":"/docs/agents/terminal-ui"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/authentication"},{"site":"vercel-docs","path":"/docs/sandbox/pricing"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-execute-ai-generated-code-safely","distance":0.1554},{"site":"vercel-kb","path":"/kb/guide/running-ai-generated-code-sandbox","distance":0.1699},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/anthropic-sdk","distance":0.1992},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/openai-sdk","distance":0.2066},{"site":"vercel-kb","path":"/kb/guide/building-an-agent-with-openai-agents-sdk-and-vercel-sandbox","distance":0.2131}],"related":[{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/anthropic-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/openai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/langchain","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-execute-ai-generated-code-safely","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/running-ai-generated-code-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-an-agent-with-openai-agents-sdk-and-vercel-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/rag-chatbot-production-architecture-on-vercel","title":"Production architecture for a RAG chatbot on Vercel","summary":"Architect a production RAG chatbot on Vercel Functions with Fluid compute, AI Gateway, and a region-pinned vector store.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/streaming-data"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/reranking"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions"},{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/oidc"},{"site":"vercel-docs","path":"/docs/workflows"},{"site":"vercel-kb","path":"/kb/guide/building-ai-chat-app-with-rag-and-citations-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/what-is-rag"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/building-ai-chat-app-with-rag-and-citations-on-vercel"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/building-ai-chat-app-with-rag-and-citations-on-vercel","distance":0.1033},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","distance":0.2272},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agents-chat-sdk","distance":0.2294},{"site":"vercel-kb","path":"/kb/guide/what-is-rag","distance":0.2528},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","distance":0.2586}],"related":[{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agents-chat-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-ai-agent-weather-api","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/react-context-state-management-nextjs","title":"Using React Context for State Management with Next.js","summary":"Learn how to use React context inside Next.js in both client and server components for state management in your application.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components","distance":0.2585},{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary","distance":0.2947},{"site":"nextjs","path":"/docs/app/guides/css-in-js","distance":0.3148},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-client","distance":0.3165},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-rsc-payload-size","distance":0.3205}],"related":[{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/css-in-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-client","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/client-side-rendering","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-rsc-payload-size","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/real-time-board-nextjs-fastapi","title":"Build Figma-style multiplayer cursors with WebSockets on Vercel","summary":"Learn how to build Figma-style multiplayer cursors with Next.js and FastAPI, kept consistent across multiple Vercel Function instances using WebSockets and Redis.","outbound":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin"},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/websockets"},{"site":"vercel-docs","path":"/docs/services"},{"site":"vercel-kb","path":"/kb/guide/vercel-services"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/publish-and-subscribe-to-realtime-data-on-vercel"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/real-time-chat-websockets","distance":0.2401},{"site":"vercel-kb","path":"/kb/guide/real-time-presence-hono-react","distance":0.313},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agent-vercel","distance":0.3253},{"site":"nextjs","path":"/docs/app/guides/interactive-apps","distance":0.3292},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nuxt-imgur-clone","distance":0.343}],"related":[{"site":"nextjs","path":"/docs/app/guides/interactive-apps","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-resume-streams","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/real-time-chat-websockets","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/real-time-presence-hono-react","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agent-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nuxt-imgur-clone","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/run-claude-managed-agent-tools-with-vercel-sandbox","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/real-time-chat-websockets","title":"Build a real-time chat app with WebSockets on Vercel","summary":"Build and deploy a single-room messaging app in Next.js with real-time chat, typing indicators, and live online user counts using WebSockets and Redis.","outbound":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/websockets"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/publish-and-subscribe-to-realtime-data-on-vercel"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/real-time-board-nextjs-fastapi","distance":0.2401},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agent-vercel","distance":0.249},{"site":"vercel-kb","path":"/kb/guide/real-time-presence-hono-react","distance":0.2505},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agents-chat-sdk","distance":0.3101},{"site":"vercel-kb","path":"/kb/guide/run-claude-managed-agent-tools-with-vercel-sandbox","distance":0.3114}],"related":[{"site":"eve","path":"/docs/guides/frontend/overview","via":"neighbor"},{"site":"workflow","path":"/docs/ai/chat-session-modeling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-resume-streams","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","via":"neighbor"},{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/real-time-board-nextjs-fastapi","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agent-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/real-time-presence-hono-react","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/run-claude-managed-agent-tools-with-vercel-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/publish-and-subscribe-to-realtime-data-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/real-time-presence-hono-react","title":"Build Notion-style real-time presence with WebSockets on Vercel","summary":"Build the avatar faces that appear when a teammate opens a page and vanish when they leave. Powered by a Hono WebSocket server with React, deployed as a single Vercel project with Services.","outbound":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/functions/websockets"},{"site":"vercel-docs","path":"/docs/services"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/publish-and-subscribe-to-realtime-data-on-vercel"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/real-time-chat-websockets","distance":0.2505},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agents-chat-sdk","distance":0.2746},{"site":"vercel-kb","path":"/kb/guide/ship-a-hono-app-on-vercel","distance":0.2861},{"site":"vercel-docs","path":"/docs/frameworks/backend/hono","distance":0.2917},{"site":"vercel-kb","path":"/kb/guide/build-with-a-hono-starter-template","distance":0.3049}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/backend/hono","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/real-time-chat-websockets","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agents-chat-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-hono-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-hono-starter-template","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/real-time-board-nextjs-fastapi","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/rendering-content-based-on-device","title":"Rendering content based on device","summary":"Learn how to render different content based on the user agent in your Middleware.","outbound":[{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/routing-middleware/api"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/modify-request-headers","distance":0.2846},{"site":"vercel-docs","path":"/docs/routing-middleware/getting-started","distance":0.3202},{"site":"vercel-kb","path":"/kb/guide/filter-query-parameters","distance":0.3255},{"site":"vercel-kb","path":"/kb/guide/add-response-header","distance":0.3379},{"site":"vercel-docs","path":"/docs/routing-middleware","distance":0.3434}],"related":[{"site":"vercel-docs","path":"/docs/routing-middleware/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/middleware-and-routing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/serving-static-files","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/userAgent","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/modify-request-headers","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/filter-query-parameters","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/add-response-header","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/use-crypto-web-api","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-serve-documentation-for-agents","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/renewal-of-ssl-certificates-with-a-vercel-domain","title":"When is the SSL Certificate on my Vercel Domain renewed?","summary":"Information about the when renewal of a Vercel Domain's SSL certificate will be processed.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/domains/working-with-ssl"},{"site":"vercel-docs","path":"/docs/notifications"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/domains/working-with-ssl","distance":0.254},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/renew-a-domain","distance":0.3058},{"site":"vercel-kb","path":"/kb/guide/domain-not-generating-ssl-certificate","distance":0.3289},{"site":"vercel-kb","path":"/kb/guide/why-is-my-vercel-domain-unverified","distance":0.3379},{"site":"vercel-docs","path":"/docs/domains/pre-generating-ssl-certs","distance":0.3478}],"related":[{"site":"vercel-docs","path":"/docs/domains/working-with-ssl","via":"inbound"},{"site":"vercel-docs","path":"/docs/notifications","via":"inbound"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/renew-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/pre-generating-ssl-certs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/custom-ssl-certificate","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/domain-not-generating-ssl-certificate","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-vercel-domain-unverified","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-disable-auto-renewals-for-a-domain-registered-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/resolve-err-ssl-protocol-error-with-vercel","title":"How do I resolve \"ERR_SSL_PROTOCOL_ERROR\" with Vercel?","summary":"Information about how to resolve the \"ERR_SSL_PROTOCOL_ERROR\" error with Vercel.","outbound":[{"site":"vercel-kb","path":"/kb/guide/domain-not-generating-ssl-certificate"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-resolve-ip-blocking-issues","distance":0.2212},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-connectivity-issues","distance":0.2234},{"site":"vercel-kb","path":"/kb/guide/domain-not-generating-ssl-certificate","distance":0.2647},{"site":"vercel-docs","path":"/docs/domains/working-with-ssl","distance":0.2707},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-cross-origin-errors-neterr-blocked-by-orb-with-deployment-protection","distance":0.2733}],"related":[{"site":"vercel-docs","path":"/docs/domains/working-with-ssl","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/troubleshooting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security/encryption","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-resolve-ip-blocking-issues","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-connectivity-issues","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-cross-origin-errors-neterr-blocked-by-orb-with-deployment-protection","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/resolve-err-too-many-redirects-when-using-cloudflare-proxy-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-vercel-domain-unverified","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/resolve-err-too-many-redirects-when-using-cloudflare-proxy-with-vercel","title":"How do I resolve \"err_too_many_redirects\" when using a Cloudflare proxy with Vercel?","summary":"Information about how to resolve the \"err_too_many_redirects\" error when using a Cloudflare proxy with Vercel.","outbound":[],"inbound":[{"site":"vercel-kb","path":"/kb/guide/a-record-and-caa-with-vercel"},{"site":"vercel-kb","path":"/kb/guide/domain-not-generating-ssl-certificate"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/resolve-err-ssl-protocol-error-with-vercel","distance":0.2757},{"site":"vercel-kb","path":"/kb/guide/cloudflare-with-vercel","distance":0.2874},{"site":"vercel-kb","path":"/kb/guide/domain-not-generating-ssl-certificate","distance":0.3113},{"site":"vercel-kb","path":"/kb/guide/why-running-another-cdn-on-top-of-vercel-is-not-recommended","distance":0.3209},{"site":"vercel-docs","path":"/docs/security/reverse-proxy","distance":0.3228}],"related":[{"site":"vercel-docs","path":"/docs/security/reverse-proxy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/resolve-err-ssl-protocol-error-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/cloudflare-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/domain-not-generating-ssl-certificate","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-running-another-cdn-on-top-of-vercel-is-not-recommended","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-troubleshoot-stale-content-returned-from-the-edge-network-when-using-an-external-proxy-or-cdn","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/run-ai-prompts-in-your-github-actions-with-the-vercel-ai-action","title":"Run AI prompts in your GitHub Actions with the Vercel AI Action","summary":"Use the vercel/ai-action@v2 GitHub Action to call the AI Gateway from a workflow. Generate text or structured JSON, set system messages, and handle untrusted input safely.","outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text"},{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","distance":0.2753},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel","distance":0.2802},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","distance":0.2938},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/text","distance":0.2998},{"site":"vercel-kb","path":"/kb/guide/python-ai-sdk-vercel-sandbox","distance":0.3021}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/text","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/video","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/python-ai-sdk-vercel-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/run-and-track-deploys-from-slack","title":"Run and track deploys from Slack","summary":"Build a Slack deploy bot with Chat SDK and Vercel Workflows. Dispatch GitHub Actions from a slash command, gate production behind approval, poll for completion, and notify Linear and GitHub when the run finishes.","outbound":[{"site":"chat-sdk","path":"/docs"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin"},{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-slack-bot-with-next-js-and-redis","distance":0.1888},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","distance":0.1923},{"site":"vercel-kb","path":"/kb/guide/triage-form-submissions-with-chat-sdk","distance":0.2009},{"site":"chat-sdk","path":"/docs/create-chat-sdk","distance":0.2181},{"site":"vercel-kb","path":"/kb/guide/stateful-slack-bots-with-vercel-workflow","distance":0.2282}],"related":[{"site":"chat-sdk","path":"/docs/create-chat-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"v0","path":"/docs/slack","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-slack-bot-with-next-js-and-redis","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/triage-form-submissions-with-chat-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/stateful-slack-bots-with-vercel-workflow","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/human-in-the-loop-with-chat-sdk-and-workflow-sdk","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/run-claude-managed-agent-tools-with-vercel-sandbox","title":"Build a Claude Managed Agent with Vercel Sandbox","summary":"Build a Claude Managed Agent with Vercel Sandbox: each session runs in a fresh microVM with credential brokering and a webhook-driven control plane on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agent-vercel"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/claude-managed-agent-vercel","distance":0.2289},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agents-chat-sdk","distance":0.2658},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/anthropic-sdk","distance":0.2986},{"site":"eve","path":"/docs/sandbox","distance":0.3095},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","distance":0.3103}],"related":[{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/anthropic-sdk","via":"neighbor"},{"site":"eve","path":"/docs/sandbox","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-agent","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/redacting-sensitive-data","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agents-chat-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/real-time-chat-websockets","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-human-in-the-loop-agents-for-community-moderation-with-durable-workflows","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/durable-web-research-agent-with-workflow-sdk","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/run-herdr-coding-agents-isolated-vercel-sandboxes","title":"How to run Herdr coding agents in isolated Vercel Sandboxes","summary":"Install the vercel.sandbox plugin for Herdr, approve an upload manifest, run each AI coding agent in its own isolated Vercel Sandbox microVM, and apply its changes back to your local worktree.","outbound":[{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/pricing"}],"inbound":[{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/herdr"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/herdr","distance":0.0799},{"site":"vercel-kb","path":"/kb/guide/building-an-agent-with-openai-agents-sdk-and-vercel-sandbox","distance":0.2159},{"site":"vercel-kb","path":"/kb/guide/using-vercel-sandbox-claude-agent-sdk","distance":0.2218},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/hermes","distance":0.2232},{"site":"vercel-docs","path":"/docs/sandbox","distance":0.2245}],"related":[{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/herdr","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/hermes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/multi-agent","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-an-agent-with-openai-agents-sdk-and-vercel-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-an-agent-with-vercel-and-flue","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/test-container-image-vercel-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/running-ai-generated-code-sandbox","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/running-ai-generated-code-sandbox","title":"Safely running AI generated code in your Next.js application","summary":"How to execute untrusted, AI‑generated code from a Next.js app using Vercel Sandbox, an isolated, ephemeral environment.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/cli"}],"inbound":[{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-execute-ai-generated-code-safely","distance":0.1087},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/openai-sdk","distance":0.1673},{"site":"vercel-kb","path":"/kb/guide/python-ai-sdk-vercel-sandbox","distance":0.1699},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/anthropic-sdk","distance":0.1905},{"site":"vercel-kb","path":"/kb/guide/using-vercel-sandbox-claude-agent-sdk","distance":0.1939}],"related":[{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","via":"inbound"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/openai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/anthropic-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/langchain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-execute-ai-generated-code-safely","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/python-ai-sdk-vercel-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/running-openclaw-in-vercel-sandbox","title":"Running OpenClaw in Vercel Sandbox","summary":"This guide walks you through setting up OpenClaw inside a Vercel Sandbox and configuring the WhatsApp channel.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/running-opencode-securely-with-the-vercel-sandbox","distance":0.1955},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","distance":0.2706},{"site":"vercel-kb","path":"/kb/guide/using-vercel-sandbox-claude-agent-sdk","distance":0.2719},{"site":"vercel-docs","path":"/docs/sandbox/concepts","distance":0.2815},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/openclaw","distance":0.2857}],"related":[{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","via":"inbound"},{"site":"vercel-docs","path":"/docs/sandbox/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/chat-platforms/openclaw","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/firewall","via":"neighbor"},{"site":"v0","path":"/docs/sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/running-ai-generated-code-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-an-agent-with-vercel-and-flue","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/test-container-image-vercel-sandbox","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/running-opencode-securely-with-the-vercel-sandbox","title":"Running OpenCode securely with the Vercel Sandbox","summary":"Run OpenCode in an isolated Vercel Sandbox MicroVM with controlled egress, using the SDK to restrict network access so the AI agent can only reach approved LLM endpoints.","outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/projects"},{"site":"vercel-kb","path":"/kb/guide/sandbox-private-github-repositories"}],"inbound":[{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/running-openclaw-in-vercel-sandbox","distance":0.1955},{"site":"vercel-kb","path":"/kb/guide/how-to-execute-ai-generated-code-safely","distance":0.2085},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","distance":0.2167},{"site":"vercel-kb","path":"/kb/guide/running-ai-generated-code-sandbox","distance":0.2204},{"site":"vercel-docs","path":"/docs/sandbox","distance":0.2252}],"related":[{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","via":"inbound"},{"site":"vercel-docs","path":"/docs/sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/openai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/anthropic-sdk","via":"neighbor"},{"site":"eve","path":"/docs/sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/running-ai-generated-code-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/python-ai-sdk-vercel-sandbox","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/sandbox-private-github-repositories","title":"Using private GitHub repositories with Vercel Sandbox","summary":"Learn how to use Vercel Sandbox with private GitHub repositories using fine-grained tokens, classic tokens, or GitHub App tokens.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox"},{"site":"vercel-kb","path":"/kb/guide/running-opencode-securely-with-the-vercel-sandbox"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","distance":0.2083},{"site":"vercel-docs","path":"/docs/sandbox/quickstart","distance":0.2188},{"site":"vercel-docs","path":"/docs/sandbox","distance":0.2195},{"site":"vercel-docs","path":"/docs/sandbox/run-commands-in-sandbox","distance":0.2385},{"site":"vercel-docs","path":"/docs/sandbox/concepts","distance":0.2386}],"related":[{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","via":"inbound"},{"site":"vercel-docs","path":"/docs/sandbox/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/run-commands-in-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-vercel-sandbox-claude-agent-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/running-ai-generated-code-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/test-container-image-vercel-sandbox","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/sandboxed-coding-agent-with-harnessagent","title":"Investigate GitHub issues with \\`HarnessAgent\\` and Vercel Sandbox","summary":"Use HarnessAgent to run coding agent harnesses like Claude Code or Codex against untrusted code inside Vercel Sandbox. Reproduce GitHub issues with the agent harness and generate a report for the maintainer.","outbound":[{"site":"ai-sdk","path":"/docs/agents/building-agents"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/sandbox"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-agent","distance":0.2207},{"site":"vercel-kb","path":"/kb/guide/building-community-moderation-agents-using-ai-sdk","distance":0.296},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/claude-code","distance":0.2961},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot","distance":0.3015},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents","distance":0.3052}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-agent","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/claude-code","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/opencode","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/herdr","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/pi","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-community-moderation-agents-using-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-run-a-multi-step-research-agent-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/sanity-eve-agent","title":"Draft documentation fixes from reader feedback with Sanity and eve","summary":"Build an autonomous agent that drafts fixes in Sanity, stages them for human review, and calls the model through AI Gateway.","outbound":[{"site":"eve","path":"/docs/concepts/default-harness"},{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/oidc"},{"site":"vercel-kb","path":"/kb/guide/marketing-team-eve"},{"site":"vercel-kb","path":"/kb/guide/vercel-connect"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","distance":0.1953},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot","distance":0.1966},{"site":"vercel-kb","path":"/kb/guide/eve-typefully-social-media-agent","distance":0.232},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","distance":0.2326},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","distance":0.2636}],"related":[{"site":"eve","path":"/docs/tutorial/ship-it","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","via":"neighbor"},{"site":"eve","path":"/docs/concepts/security-model","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"eve","path":"/docs/guides/instrumentation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-typefully-social-media-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/securing-ai-app-rate-limiting","title":"Securing your AI applications with Rate Limiting","summary":"Learn how to secure your AI applications with rate limiting using Vercel WAF and Vercel AI SDK","outbound":[{"site":"vercel-docs","path":"/docs/frameworks"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/add-rate-limiting-vercel","distance":0.1481},{"site":"vercel-kb","path":"/kb/guide/how-to-protect-your-ai-app-from-bots","distance":0.2244},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting-sdk","distance":0.2368},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting","distance":0.2377},{"site":"vercel-kb","path":"/kb/guide/limit-abuse-with-rate-limiting","distance":0.24}],"related":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/add-rate-limiting-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-protect-your-ai-app-from-bots","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/limit-abuse-with-rate-limiting","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/sending-emails-from-an-application-on-vercel","title":"Sending Emails from an application on Vercel","summary":"SMTP is the harder path inside Vercel Functions. Learn how to send emails over an HTTP API, which Next.js pattern fits your trigger, and how to fix failed sends.","outbound":[{"site":"nextjs","path":"/docs/app/guides/data-security"},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/environment-variables/sensitive-environment-variables"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/runtimes/edge"},{"site":"vercel-docs","path":"/docs/queues"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting-sdk"},{"site":"vercel-kb","path":"/kb/guide/serverless-functions-and-smtp"},{"site":"vercel-kb","path":"/kb/guide/using-email-with-your-vercel-domain"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/serverless-functions-and-smtp"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/serverless-functions-and-smtp","distance":0.0995},{"site":"vercel-docs","path":"/docs/queues/concepts","distance":0.2889},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel","distance":0.2997},{"site":"vercel-kb","path":"/kb/guide/how-to-enable-cors","distance":0.3027},{"site":"vercel-docs","path":"/docs/queues/quickstart","distance":0.3086}],"related":[{"site":"vercel-docs","path":"/docs/queues/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues/quickstart","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-enable-cors","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-react-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/publish-and-subscribe-to-realtime-data-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/sending-sample-to-speed-insights","title":"Sending a sample of events to Speed Insights","summary":"Learn how to send a sample of your data to Speed insights.","outbound":[{"site":"vercel-docs","path":"/docs/speed-insights"},{"site":"vercel-docs","path":"/docs/speed-insights/package"}],"inbound":[{"site":"vercel-docs","path":"/docs/speed-insights/package"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/speed-insights/package","distance":0.252},{"site":"vercel-docs","path":"/docs/speed-insights/quickstart","distance":0.3008},{"site":"vercel-docs","path":"/docs/speed-insights/managing-usage","distance":0.3181},{"site":"vercel-docs","path":"/docs/speed-insights","distance":0.3222},{"site":"vercel-docs","path":"/docs/speed-insights/privacy-policy","distance":0.342}],"related":[{"site":"vercel-docs","path":"/docs/speed-insights/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/managing-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/privacy-policy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/using-speed-insights","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/limits-and-pricing","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/analytics","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/serverless-function-contains-invalid-runtime-error","title":"Serverless Function contains invalid runtime error","summary":"A guide for the \"Serverless Function contains invalid runtime\" error for Node.js v20 deployments.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/npm-run-start-not-working","distance":0.3402},{"site":"vercel-kb","path":"/kb/guide/why-does-my-serverless-function-work-locally-but-not-when-deployed","distance":0.3635},{"site":"vercel-kb","path":"/kb/guide/what-should-i-do-if-i-receive-a-503-error-on-vercel","distance":0.3786},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/node-js-versions","distance":0.3894},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/advanced-node-configuration","distance":0.3966}],"related":[{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/node-js-versions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/advanced-node-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/rust","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/runtime","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/npm-run-start-not-working","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-does-my-serverless-function-work-locally-but-not-when-deployed","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-a-502-error","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/library-sdk-compatible-with-vercel-edge-runtime-and-functions","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-function-250mb-limit","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/serverless-functions-and-smtp","title":"Can I use SMTP with Vercel?","summary":"Vercel Functions can open SMTP connections on the Node.js runtime. Learn which ports are open, why you must await the send, and when to use an email API.","outbound":[{"site":"vercel-docs","path":"/docs/environment-variables/sensitive-environment-variables"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/workflows"},{"site":"vercel-kb","path":"/kb/guide/sending-emails-from-an-application-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/using-email-with-your-vercel-domain"},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/sending-emails-from-an-application-on-vercel"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/sending-emails-from-an-application-on-vercel","distance":0.0995},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","distance":0.312},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel","distance":0.3454},{"site":"vercel-kb","path":"/kb/guide/why-has-email-stopped-working","distance":0.3593},{"site":"vercel-kb","path":"/kb/guide/ship-a-nestjs-app-on-vercel","distance":0.3605}],"related":[{"site":"vercel-docs","path":"/docs/queues/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-has-email-stopped-working","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nestjs-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/publish-and-subscribe-to-realtime-data-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-enable-cors","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/session-store-nextjs-redis-vercel-kv","title":"Creating a Session Store with Redis and Next.js","summary":"Learn how to durably store sessions with Redis and Next.js.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components","distance":0.3105},{"site":"nextjs","path":"/docs/pages/guides/authentication","distance":0.339},{"site":"nextjs","path":"/docs/app/guides/authentication","distance":0.3562},{"site":"vercel-kb","path":"/kb/guide/loading-static-file-nextjs-api-route","distance":0.3778},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","distance":0.3817}],"related":[{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/authentication","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config/get-started","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/set-cache-control-headers","title":"Set cache control headers for functions","summary":"Learn how to set headers to cache your function's responses.","outbound":[{"site":"vercel-docs","path":"/docs/headers"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"}],"inbound":[{"site":"vercel-docs","path":"/docs/headers"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/caching/cache-control-headers","distance":0.1379},{"site":"vercel-kb","path":"/kb/guide/how-to-configure-the-cache-control-response-header-in-vercel-projects","distance":0.21},{"site":"vercel-docs","path":"/docs/caching/cdn-cache","distance":0.2154},{"site":"vercel-docs","path":"/docs/caching","distance":0.2434},{"site":"vercel-docs","path":"/docs/headers/response-headers","distance":0.2609}],"related":[{"site":"vercel-docs","path":"/docs/caching/cache-control-headers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching","via":"neighbor"},{"site":"vercel-docs","path":"/docs/headers/response-headers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-configure-the-cache-control-response-header-in-vercel-projects","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-cache-tags-for-external-origins","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/set-up-a-staging-environment-on-vercel","title":"How do I set up a staging environment on Vercel?","summary":"Information on how to set up a staging environment on Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/assign-domain-to-a-git-branch"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/deployments/environments","distance":0.1644},{"site":"vercel-docs","path":"/docs/deployments/promoting-a-deployment","distance":0.1866},{"site":"vercel-docs","path":"/docs/git","distance":0.1894},{"site":"vercel-kb","path":"/kb/guide/can-i-use-a-non-default-branch-for-production","distance":0.2188},{"site":"vercel-kb","path":"/kb/guide/why-do-my-vercel-deployments-have-multiple-domains","distance":0.2333}],"related":[{"site":"vercel-docs","path":"/docs/deployments/environments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/promoting-a-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-i-use-a-non-default-branch-for-production","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-gitlab-pipelines-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-stencil-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/set-up-and-use-deploy-hooks-with-vercel-and-headless-cms","title":"How to use Deploy Hooks with Vercel and a Headless CMS","summary":"Create your own Deploy Hooks to trigger automatic deployments on Vercel when using a Headless CMS.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/deploy-hooks","distance":0.1557},{"site":"vercel-docs","path":"/docs/deployments","distance":0.2361},{"site":"vercel-kb","path":"/kb/guide/integrate-vercel-and-contentstack","distance":0.2479},{"site":"vercel-docs","path":"/docs/cli/deploy-hooks","distance":0.2486},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","distance":0.2494}],"related":[{"site":"vercel-docs","path":"/docs/deploy-hooks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploy-hooks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/contentful","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/integrate-vercel-and-contentstack","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-hexo-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-hugo-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-pusher-channels-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/share-vercel-cache-across-deployments-nextjs","title":"How can I share my Vercel cache across deployments?","summary":"Learn how to reuse cached responses across deployments with the Next.js App Router and the Vercel Data Cache.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","distance":0.1723},{"site":"vercel-docs","path":"/docs/caching/runtime-cache","distance":0.2655},{"site":"vercel-kb","path":"/kb/guide/how-to-configure-the-cache-control-response-header-in-vercel-projects","distance":0.2705},{"site":"vercel-docs","path":"/docs/caching","distance":0.2723},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-cache-tags-for-external-origins","distance":0.2762}],"related":[{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-configure-the-cache-control-response-header-in-vercel-projects","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-cache-tags-for-external-origins","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/set-cache-control-headers","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/ship-a-elysia-app-on-vercel","title":"How to ship an Elysia app on Vercel","summary":"Deploy a Elysia app to Vercel with zero configuration. Learn how to ship from a template, the Vercel CLI, or Git, and configure response streaming, middleware, cron jobs, the Bun runtime, and Observability.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/init"},{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/backend/elysia"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/runtimes/bun"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"},{"site":"vercel-docs","path":"/docs/queues"},{"site":"vercel-docs","path":"/docs/routing-middleware"}],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/backend/elysia"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/frameworks/backend/elysia","distance":0.0898},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel","distance":0.1542},{"site":"vercel-kb","path":"/kb/guide/ship-a-h3-app-on-vercel","distance":0.1684},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","distance":0.1686},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel","distance":0.1699}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/backend/express","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-h3-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nestjs-app-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel","title":"How to ship an Express app on Vercel","summary":"Deploy an Express app to Vercel with zero configuration. Configure response streaming, middleware, cron jobs, the Bun runtime, and observability.","outbound":[{"site":"ai-sdk","path":"/docs/foundations/streaming"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/init"},{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/backend/express"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/runtimes/bun"},{"site":"vercel-docs","path":"/docs/headers"},{"site":"vercel-docs","path":"/docs/microfrontends"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"},{"site":"vercel-docs","path":"/docs/queues"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/workflows"}],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/backend/express"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-express-starter-template"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/frameworks/backend/express","distance":0.0689},{"site":"vercel-kb","path":"/kb/guide/build-with-a-express-starter-template","distance":0.0811},{"site":"vercel-kb","path":"/kb/guide/using-express-with-vercel","distance":0.1206},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","distance":0.1319},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel","distance":0.1339}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-express-starter-template","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-express-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nestjs-app-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","title":"How to ship a FastAPI app on Vercel","summary":"Deploy a FastAPI app to Vercel with zero configuration. Learn how the Python runtime, Vercel Functions, streaming, middleware, and cron jobs work together.","outbound":[{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/init"},{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/runtimes/python"},{"site":"vercel-docs","path":"/docs/headers"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"},{"site":"vercel-docs","path":"/docs/queues"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/workflows"}],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-fastapi-starter-template"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi","distance":0.0799},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel","distance":0.08},{"site":"vercel-kb","path":"/kb/guide/build-with-a-fastapi-starter-template","distance":0.0864},{"site":"vercel-kb","path":"/kb/guide/ship-a-flask-app-on-vercel","distance":0.089},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel","distance":0.1319}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/backend/flask","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastify","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-fastapi-starter-template","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-flask-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel","title":"How to ship a Fastify app on Vercel","summary":"Deploy a Fastify app to Vercel with zero configuration, then add streaming, lifecycle hooks, cron jobs, and observability.","outbound":[{"site":"ai-sdk","path":"/docs/foundations/streaming"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/init"},{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastify"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/instant-rollback"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"},{"site":"vercel-docs","path":"/docs/routing-middleware"}],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/backend/fastify"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","distance":0.08},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastify","distance":0.0923},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi","distance":0.1299},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","distance":0.1312},{"site":"vercel-kb","path":"/kb/guide/build-with-a-fastapi-starter-template","distance":0.132}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/express","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-fastapi-starter-template","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-flask-app-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/ship-a-flask-app-on-vercel","title":"How to ship a Flask app on Vercel","summary":"Deploy a Flask app to Vercel with zero configuration. Learn how to ship from a template, the Vercel CLI, or Git, and configure response streaming, middleware, cron jobs, the Bun runtime, and Observability.","outbound":[{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/init"},{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/backend/flask"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/runtimes/python"},{"site":"vercel-docs","path":"/docs/functions/runtimes/python/python-version"},{"site":"vercel-docs","path":"/docs/headers"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"},{"site":"vercel-docs","path":"/docs/queues"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/workflows"}],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/backend/flask"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-flask-starter-template"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/frameworks/backend/flask","distance":0.0869},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","distance":0.089},{"site":"vercel-kb","path":"/kb/guide/build-with-a-flask-starter-template","distance":0.0904},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel","distance":0.1478},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel","distance":0.1556}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/django","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-flask-starter-template","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-fastapi-starter-template","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/ship-a-github-code-review-bot-with-hono-and-redis","title":"Ship a GitHub code review bot with Hono and Redis","summary":"This guide walks through building a GitHub bot that reviews pull requests on demand. When a user @mentions the bot on a PR, Chat SDK picks up the mention, spins up a Vercel Sandbox with the repo cloned, and uses AI SDK to analyze the diff.","outbound":[],"inbound":[{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/create-a-discord-support-bot-with-nuxt-and-redis","distance":0.199},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-slack-bot-with-next-js-and-redis","distance":0.2056},{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect","distance":0.2377},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agents-chat-sdk","distance":0.2412},{"site":"vercel-kb","path":"/kb/guide/run-and-track-deploys-from-slack","distance":0.2436}],"related":[{"site":"chat-sdk","path":"/docs/create-chat-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent/pr-review","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/create-a-discord-support-bot-with-nuxt-and-redis","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-slack-bot-with-next-js-and-redis","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agents-chat-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-hono-app-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/ship-a-h3-app-on-vercel","title":"How to ship an H3 app on Vercel","summary":"Deploy an H3 app to Vercel with zero configuration. Learn to configure streaming, middleware, cron jobs, the Bun runtime, and observability.","outbound":[{"site":"ai-sdk","path":"/docs/foundations/streaming"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/init"},{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/backend"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/runtimes/bun"},{"site":"vercel-docs","path":"/docs/headers"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"},{"site":"vercel-docs","path":"/docs/queues"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/workflows"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/ship-a-hono-app-on-vercel","distance":0.1063},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel","distance":0.1612},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","distance":0.1617},{"site":"vercel-kb","path":"/kb/guide/ship-a-nestjs-app-on-vercel","distance":0.1655},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel","distance":0.1663}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/backend/hono","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-hono-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nestjs-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/ship-a-hono-app-on-vercel","title":"How to ship a Hono app on Vercel","summary":"Deploy a Hono app to Vercel with zero configuration. Learn how to ship from a template, the Vercel CLI, or Git, and configure response streaming, middleware, cron jobs, the Bun runtime, and Observability.","outbound":[{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/init"},{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/backend/hono"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/runtimes/bun"},{"site":"vercel-docs","path":"/docs/headers"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"},{"site":"vercel-docs","path":"/docs/queues"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/workflows"}],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/backend/hono"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-hono-starter-template"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/build-with-a-hono-starter-template","distance":0.0617},{"site":"vercel-docs","path":"/docs/frameworks/backend/hono","distance":0.0785},{"site":"vercel-kb","path":"/kb/guide/ship-a-h3-app-on-vercel","distance":0.1063},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel","distance":0.1743},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel","distance":0.1748}],"related":[{"site":"vercel-kb","path":"/kb/guide/build-with-a-hono-starter-template","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-h3-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-koa-app-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/ship-a-koa-app-on-vercel","title":"How to ship a Koa app on Vercel","summary":"Deploy a Koa app to Vercel with zero configuration. Learn how to ship from the Vercel CLI or Git, and configure response streaming, middleware, cron jobs, and Observability.","outbound":[{"site":"ai-sdk","path":"/docs/foundations/streaming"},{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/backend/koa"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/instant-rollback"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/vercel-firewall"}],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/backend/koa"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/frameworks/backend/koa","distance":0.0851},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","distance":0.168},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel","distance":0.1703},{"site":"vercel-kb","path":"/kb/guide/ship-a-nestjs-app-on-vercel","distance":0.1764},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel","distance":0.1766}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/backend/express","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nestjs-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-hono-app-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/ship-a-nestjs-app-on-vercel","title":"How to ship a NestJS app on Vercel","summary":"Deploy a NestJS app to Vercel with zero configuration. Learn how to ship from a template, the Nest CLI, or Git, and configure response streaming, middleware, cron jobs, and Observability.","outbound":[{"site":"ai-sdk","path":"/docs/foundations/streaming"},{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/backend/nestjs"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/instant-rollback"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/vercel-firewall"}],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/backend/nestjs"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/frameworks/backend/nestjs","distance":0.0906},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel","distance":0.1497},{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel","distance":0.151},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel","distance":0.1548},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","distance":0.1554}],"related":[{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel","title":"How to ship a Nitro app on Vercel","summary":"Deploy a Nitro app to Vercel with zero configuration. Learn how to ship from a template, the Vercel CLI, or Git, and configure ISR, cron jobs, Vercel Queues, per-route function settings, and Observability.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/init"},{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/backend/nitro"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/runtimes/bun"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/queues"},{"site":"vercel-docs","path":"/docs/vercel-firewall"}],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/backend/nitro"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-nitro-starter-template"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/frameworks/backend/nitro","distance":0.0579},{"site":"vercel-kb","path":"/kb/guide/build-with-a-nitro-starter-template","distance":0.0648},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","distance":0.1202},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","distance":0.1296},{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel","distance":0.1414}],"related":[{"site":"vercel-kb","path":"/kb/guide/build-with-a-nitro-starter-template","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/nitro-vite-plugin","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/slack-bot-vercel-blob","title":"How to build a Slack bot that manages files in Vercel Blob","summary":"Build a Slack bot using Chat SDK, AI SDK, and Files SDK that can list, read, upload, and delete files in Vercel Blob through tool calls. Vercel Connect supplies runtime Slack tokens and forwards triggers.","outbound":[{"site":"ai-sdk","path":"/docs/agents/building-agents"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway"},{"site":"chat-sdk","path":"/docs/ai"},{"site":"chat-sdk","path":"/docs/create-chat-sdk"},{"site":"chat-sdk","path":"/docs/vercel-connect"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/connect/legal"},{"site":"vercel-docs","path":"/docs/connect/quickstart"},{"site":"vercel-docs","path":"/docs/connect/ts-sdk-reference"},{"site":"vercel-kb","path":"/kb/guide/human-in-the-loop-with-chat-sdk-and-workflow-sdk"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/building-human-in-the-loop-agents-for-community-moderation-with-durable-workflows"},{"site":"vercel-kb","path":"/kb/guide/human-in-the-loop-with-chat-sdk-and-workflow-sdk"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect","distance":0.114},{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect","distance":0.1918},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","distance":0.1948},{"site":"vercel-kb","path":"/kb/guide/linear-agent-vercel-connect","distance":0.2193},{"site":"ai-sdk","path":"/cookbook/guides/slackbot","distance":0.2212}],"related":[{"site":"ai-sdk","path":"/cookbook/guides/slackbot","via":"neighbor"},{"site":"eve","path":"/docs/channels/slack","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/linear-agent-vercel-connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-slack-bot-with-next-js-and-redis","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/sql-vs-nosql-databases","title":"SQL vs. NoSQL databases","summary":"Learn about the differences between SQL and NoSQL, each with a unique set of benefits suited for particular use cases.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/mysql-vs-postgresql-vs-mongodb","distance":0.1585},{"site":"vercel-kb","path":"/kb/guide/vector-databases","distance":0.4231},{"site":"vercel-kb","path":"/kb/guide/is-sqlite-supported-in-vercel","distance":0.4241},{"site":"vercel-kb","path":"/kb/guide/connect-next-js-to-amazon-aurora-postgresql-using-vercel-marketplace","distance":0.4349},{"site":"v0","path":"/docs/databases","distance":0.4438}],"related":[{"site":"vercel-kb","path":"/kb/guide/mysql-vs-postgresql-vs-mongodb","via":"neighbor"},{"site":"v0","path":"/docs/databases","via":"neighbor"},{"site":"vercel-docs","path":"/docs/marketplace-storage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/storage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend","via":"neighbor"},{"site":"workflow","path":"/docs/comparisons","via":"neighbor"},{"site":"vercel-docs","path":"/docs/notebooks","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vector-databases","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/is-sqlite-supported-in-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/connect-next-js-to-amazon-aurora-postgresql-using-vercel-marketplace","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-a-headless-cms-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/stateful-slack-bots-with-vercel-workflow","title":"Building stateful Slack bots with Vercel Workflow","summary":"Learn how to build Slack bots that maintain state and handle long-running processes without managing queues, databases, or background job infra.","outbound":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps"}],"inbound":[{"site":"vercel-docs","path":"/docs/workflows"},{"site":"vercel-kb","path":"/kb/guide/migrate-cloudflare-workflows-to-vercel-workflows"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/workflows","distance":0.1681},{"site":"vercel-kb","path":"/kb/guide/human-in-the-loop-with-chat-sdk-and-workflow-sdk","distance":0.1714},{"site":"vercel-docs","path":"/docs/workflows/concepts","distance":0.197},{"site":"vercel-kb","path":"/kb/guide/run-and-track-deploys-from-slack","distance":0.2282},{"site":"vercel-docs","path":"/docs/workflows/python","distance":0.2309}],"related":[{"site":"vercel-docs","path":"/docs/workflows","via":"inbound"},{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows/python","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/python","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/workflows","via":"neighbor"},{"site":"workflow","path":"/docs/ai","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/hooks","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/human-in-the-loop-with-chat-sdk-and-workflow-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-a-slack-agent-with-durable-workflows","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-slack-bot-with-next-js-and-redis","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/storybook-with-vercel","title":"Deploying Storybook with Vercel","summary":"Learn how to deploy Storybook applications to Vercel in minutes.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","distance":0.1859},{"site":"vercel-kb","path":"/kb/guide/deploying-jekyll-with-vercel","distance":0.2159},{"site":"vercel-kb","path":"/kb/guide/deploying-brunch-with-vercel","distance":0.2241},{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","distance":0.2276},{"site":"vercel-kb","path":"/kb/guide/deploying-hugo-with-vercel","distance":0.2281}],"related":[{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/builds","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-jekyll-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-brunch-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-ember-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-hugo-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/streaming-from-llm","title":"Streaming responses from LLMs","summary":"Learn how to use the AI SDK to stream LLM responses.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/functions/streaming-functions","distance":0.1397},{"site":"vercel-kb","path":"/kb/guide/what-is-streaming","distance":0.1953},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/streaming","distance":0.2349},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/streaming","distance":0.2357},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/streaming","distance":0.2414}],"related":[{"site":"vercel-docs","path":"/docs/functions/streaming-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/streaming","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/streaming","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/streaming","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/streaming","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/api-servers/express","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/api-servers/fastify","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/testing","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/api-servers/node-http-server","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-streaming","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/processing-data-chunks","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/structure-your-application","title":"Choosing how to structure your application on Vercel","summary":"Compare three ways to structure an application on Vercel \\(a single framework, one project with Services, or separate projects in a monorepo\\) and learn how to choose based on domains, deploy coupling, and languages.","outbound":[{"site":"vercel-docs","path":"/docs/monorepos"},{"site":"vercel-docs","path":"/docs/services"},{"site":"vercel-docs","path":"/docs/services/routing"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-password-protection-to-my-vercel-deployment"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-services","distance":0.1893},{"site":"vercel-kb","path":"/kb/guide/how-can-i-serve-multiple-projects-under-a-single-domain","distance":0.2533},{"site":"vercel-docs","path":"/docs/services","distance":0.2665},{"site":"vercel-docs","path":"/docs/services/experimental","distance":0.2816},{"site":"vercel-kb","path":"/kb/guide/full-stack-preview-deployments-on-vercel","distance":0.2909}],"related":[{"site":"vercel-docs","path":"/docs/services/experimental","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/builds","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/quickstart","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-services","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-serve-multiple-projects-under-a-single-domain","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/full-stack-preview-deployments-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-yarn-monorepos-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-services-fluid-compute","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/supporting-compliance-with-vercel-waf","title":"Supporting Compliance with Vercel WAF","summary":"Vercel Firewall provides edge-based traffic filtering and monitoring to help teams meet compliance requirements in security and regulatory frameworks, including PCI DSS, ISO 27001, SOC 2, and HIPAA.","outbound":[{"site":"vercel-docs","path":"/docs/security/shared-responsibility"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/managed-rulesets"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/is-vercel-soc-2-compliant"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-firewall","distance":0.225},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","distance":0.2255},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/managed-rulesets","distance":0.2458},{"site":"vercel-docs","path":"/docs/security","distance":0.2585},{"site":"vercel-kb","path":"/kb/guide/how-to-conduct-pci-scans-on-vercel-guide","distance":0.2661}],"related":[{"site":"vercel-docs","path":"/docs/vercel-firewall","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/compliance","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-conduct-pci-scans-on-vercel-guide","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/is-vercel-soc-2-compliant","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ensuring-safe-and-effective-infrastructure-testing","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/suspicious-traffic-in-specific-countries","title":"Suspicious Traffic in Specific Countries","summary":"Learn how to block traffic in specific geographical regions.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/ip-blocking"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/traffic-spikes","distance":0.2056},{"site":"vercel-kb","path":"/kb/guide/block-php-requests","distance":0.2484},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples","distance":0.2675},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/ip-blocking","distance":0.2909},{"site":"vercel-kb","path":"/kb/guide/deny-traffic-from-a-set-of-ip-addresses","distance":0.2929}],"related":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples","via":"inbound"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/ip-blocking","via":"inbound"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/traffic-spikes","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/block-php-requests","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/limit-abuse-with-rate-limiting","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/emergency-redirect","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/tanstack-intent-vs-skills","title":"Choosing between TanStack Intent and \\`skills\\`","summary":"TanStack Intent vs skills: compare how each tool sources, versions, and discovers agent skills for AI coding agents, and learn when to use one, the other, or both.","outbound":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/tanstack-start"},{"site":"vercel-kb","path":"/kb/guide/adding-keyboard-shortcuts-to-react-apps-with-tanstack-hotkeys"},{"site":"vercel-kb","path":"/kb/guide/using-tanstack-intent-to-ship-and-consume-agent-skills"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/using-tanstack-intent-to-ship-and-consume-agent-skills","distance":0.0745},{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","distance":0.2079},{"site":"ai-sdk","path":"/cookbook/guides/agent-skills","distance":0.2724},{"site":"eve","path":"/docs/skills","distance":0.2727},{"site":"vercel-docs","path":"/docs/agent-resources/skills","distance":0.2862}],"related":[{"site":"ai-sdk","path":"/cookbook/guides/agent-skills","via":"neighbor"},{"site":"eve","path":"/docs/skills","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/skills","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/ai-agents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/skills","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/coding-agents","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started/extending-with-agents","via":"neighbor"},{"site":"v0","path":"/docs/design-systems-2","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-ai-sdk-vs-tanstack-ai","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/tanstack-start-on-vercel-vs-cloudflare","title":"TanStack Start on Vercel vs Cloudflare","summary":"Compare running TanStack Start on Vercel Functions with Fluid compute against Cloudflare Workers. Learn how the runtimes, storage, background jobs, pricing, and developer experience differ so you can choose the right platform.","outbound":[{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/tanstack-start"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/marketplace-storage"},{"site":"vercel-docs","path":"/docs/queues"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/nitro-vite-plugin"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/tanstack-start-on-vercel-vs-netlify","distance":0.0446},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","distance":0.1147},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","distance":0.1474},{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel","distance":0.1726},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud","distance":0.1914}],"related":[{"site":"vercel-kb","path":"/kb/guide/tanstack-start-on-vercel-vs-netlify","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-kubernetes","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/tanstack-start-on-vercel-vs-netlify","title":"TanStack Start on Vercel vs Netlify","summary":"Compare running TanStack Start on Vercel Functions with Fluid compute against Netlify Functions. Learn how the compute models, storage, background jobs, pricing, and developer experience differ so you can choose the right platform.","outbound":[{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/tanstack-start"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/marketplace-storage"},{"site":"vercel-docs","path":"/docs/queues"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/nitro-vite-plugin"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/tanstack-start-on-vercel-vs-cloudflare","distance":0.0446},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","distance":0.1111},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","distance":0.131},{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel","distance":0.1543},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/tanstack-start","distance":0.1939}],"related":[{"site":"vercel-kb","path":"/kb/guide/tanstack-start-on-vercel-vs-cloudflare","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/nextjs-on-vercel-vs-netlify","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-kubernetes","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/test-container-image-vercel-sandbox","title":"How to test a container image in Vercel Sandbox before deploying","summary":"Validate a container image before deploying by booting it as a custom Sandbox image from Vercel Container Registry \\(VCR\\) or running Docker inside a Vercel Sandbox.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/container-registry"},{"site":"vercel-docs","path":"/docs/deployments"},{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/authentication"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/images"},{"site":"vercel-docs","path":"/docs/sandbox/pricing"},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference"},{"site":"vercel-kb","path":"/kb/guide/docker"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/sandbox/concepts","distance":0.172},{"site":"vercel-kb","path":"/kb/guide/docker","distance":0.1791},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","distance":0.1903},{"site":"vercel-docs","path":"/docs/sandbox","distance":0.194},{"site":"vercel-docs","path":"/docs/sandbox/concepts/images","distance":0.2142}],"related":[{"site":"vercel-docs","path":"/docs/sandbox/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/runtimes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/run-commands-in-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-container-registry","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/user-uploaded-files-vercel-sandbox-and-blob","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/test-slack-bot-with-vercel-preview-deployment","title":"How to test a Slack bot with your Vercel preview deployment","summary":"Learn how to build and test a Slack bot using Vercel preview deployments. This guide covers setting up your Slack app, configuring webhook URLs, and bypassing deployment protection using the x-vercel-protection-bypass query parameter.","outbound":[{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation","distance":0.1853},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection","distance":0.2115},{"site":"vercel-docs","path":"/docs/deployment-protection/automated-agent-access","distance":0.214},{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","distance":0.2894},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-slack-bot-with-next-js-and-redis","distance":0.2907}],"related":[{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/automated-agent-access","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/curl","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments","via":"neighbor"},{"site":"v0","path":"/docs/slack","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-slack-bot-with-next-js-and-redis","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/run-and-track-deploys-from-slack","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-run-end-to-end-tests-after-my-vercel-preview-deployment","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk","title":"The Complete Guide to Chat SDK","summary":"Chat SDK is a TypeScript library for building chat bots that work across Slack, Teams, Discord, Linear, and more from a single codebase. Learn how it works.","outbound":[{"site":"ai-sdk","path":"/docs/foundations/streaming"},{"site":"chat-sdk","path":"/docs/contributing/building"},{"site":"chat-sdk","path":"/docs/usage"}],"inbound":[{"site":"chat-sdk","path":"/docs/getting-started"},{"site":"vercel-kb","path":"/kb/guide/human-in-the-loop-with-chat-sdk-and-workflow-sdk"},{"site":"vercel-kb","path":"/kb/guide/run-and-track-deploys-from-slack"},{"site":"vercel-kb","path":"/kb/guide/triage-form-submissions-with-chat-sdk"}],"requires":[],"neighbors":[{"site":"chat-sdk","path":"/docs","distance":0.1776},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","distance":0.2016},{"site":"chat-sdk","path":"/docs/usage","distance":0.2027},{"site":"vercel-kb","path":"/kb/guide/liveblocks-chat-sdk-ai-sdk","distance":0.2174},{"site":"vercel-kb","path":"/kb/guide/chat-sdk-and-eve","distance":0.2224}],"related":[{"site":"chat-sdk","path":"/docs/getting-started","via":"inbound"},{"site":"chat-sdk","path":"/docs","via":"neighbor"},{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"chat-sdk","path":"/docs/threads-messages-channels","via":"neighbor"},{"site":"chat-sdk","path":"/docs/concurrency","via":"neighbor"},{"site":"chat-sdk","path":"/docs/platform-adapters","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-slack-bot-with-next-js-and-redis","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/create-a-discord-support-bot-with-nuxt-and-redis","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/human-in-the-loop-with-chat-sdk-and-workflow-sdk","via":"inbound"}]},{"site":"vercel-kb","path":"/kb/guide/traffic-spikes","title":"Blocking traffic from a specific IP address.","summary":"Learn how to block traffic from a specific IP address.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/ip-blocking","distance":0.1835},{"site":"vercel-kb","path":"/kb/guide/suspicious-traffic-in-specific-countries","distance":0.2056},{"site":"vercel-kb","path":"/kb/guide/deny-traffic-from-a-set-of-ip-addresses","distance":0.2134},{"site":"vercel-kb","path":"/kb/guide/block-php-requests","distance":0.2614},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","distance":0.2633}],"related":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/examples","via":"inbound"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/ip-blocking","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/system-bypass-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-observability","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/suspicious-traffic-in-specific-countries","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/block-php-requests","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/limit-abuse-with-rate-limiting","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-resolve-ip-blocking-issues","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/transferring-domains-to-vercel","title":"Transferring Domains to Vercel","summary":"How to transfer your domain to Vercel.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-to-vercel","distance":0.085},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/transfer-your-domain","distance":0.1119},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-out-of-vercel","distance":0.1424},{"site":"vercel-kb","path":"/kb/guide/how-can-i-move-a-domain-to-a-team","distance":0.1586},{"site":"vercel-kb","path":"/kb/guide/zero-downtime-migration","distance":0.221}],"related":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains/transfer-your-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes","via":"inbound"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-to-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-out-of-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-move-a-domain-to-a-team","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/zero-downtime-migration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/triage-form-submissions-with-chat-sdk","title":"Triage form submissions with Chat SDK","summary":"Build a Slack bot that triages form submissions with interactive cards. Forward, edit, or mark as spam without leaving Slack. Built with Chat SDK, Hono, and Resend.","outbound":[{"site":"chat-sdk","path":"/docs"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin"},{"site":"vercel-docs","path":"/docs/frameworks/backend/hono"},{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/run-and-track-deploys-from-slack","distance":0.2009},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-slack-bot-with-next-js-and-redis","distance":0.2152},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","distance":0.2223},{"site":"vercel-kb","path":"/kb/guide/liveblocks-chat-sdk-ai-sdk","distance":0.256},{"site":"vercel-kb","path":"/kb/guide/ship-a-github-code-review-bot-with-hono-and-redis","distance":0.2601}],"related":[{"site":"chat-sdk","path":"/docs/create-chat-sdk","via":"neighbor"},{"site":"chat-sdk","path":"/docs/cards","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/run-and-track-deploys-from-slack","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-slack-bot-with-next-js-and-redis","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/liveblocks-chat-sdk-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-github-code-review-bot-with-hono-and-redis","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-build-error-build-step-did-not-complete-within-45-minutes","title":"Troubleshooting Build Error: \"Build step did not complete within the maximum of 45 minutes\"","summary":"Learn common reasons Vercel builds hit the 45-minute limit and how to reduce build times so your deployments stay fast and reliable.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-paths"},{"site":"vercel-docs","path":"/docs/builds/managing-builds"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-kb","path":"/kb/guide/custom-build-timeout"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-sigkill-out-of-memory-errors"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-reduce-my-build-time-with-next-js-on-vercel"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-reduce-my-build-time-with-next-js-on-vercel","distance":0.1893},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","distance":0.21},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-sigkill-out-of-memory-errors","distance":0.2472},{"site":"vercel-kb","path":"/kb/guide/fixing-deployments-that-hang-after-the-build-step-succeeds","distance":0.2509},{"site":"vercel-docs","path":"/docs/builds","distance":0.2657}],"related":[{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/debug-slow-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/builds","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-reduce-my-build-time-with-next-js-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/fixing-deployments-that-hang-after-the-build-step-succeeds","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-aren-t-commits-triggering-deployments-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-function-250mb-limit","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-connectivity-issues","title":"Troubleshooting connectivity issues to Vercel Deployments","summary":"Learn how to troubleshoot network connectivity issues to your Vercel deployment.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-resolve-ip-blocking-issues","distance":0.1768},{"site":"vercel-kb","path":"/kb/guide/resolve-err-ssl-protocol-error-with-vercel","distance":0.2234},{"site":"vercel-kb","path":"/kb/guide/how-to-troubleshoot-stale-content-returned-from-the-edge-network-when-using-an-external-proxy-or-cdn","distance":0.2656},{"site":"vercel-kb","path":"/kb/guide/domain-not-generating-ssl-certificate","distance":0.2857},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/debug-cache-issues","distance":0.31}],"related":[{"site":"vercel-docs","path":"/docs/caching/cdn-cache/debug-cache-issues","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-dns","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-resolve-ip-blocking-issues","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/troubleshooting","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/resolve-err-ssl-protocol-error-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-troubleshoot-stale-content-returned-from-the-edge-network-when-using-an-external-proxy-or-cdn","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/domain-not-generating-ssl-certificate","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-effectively-load-test-your-vercel-application","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-content-link","title":"Troubleshooting Content Link","summary":"This guide provides troubleshooting information for common issues when using Content Link","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/caching/cdn-cache/debug-cache-issues","distance":0.4041},{"site":"vercel-kb","path":"/kb/guide/how-to-troubleshoot-stale-content-returned-from-the-edge-network-when-using-an-external-proxy-or-cdn","distance":0.4153},{"site":"vercel-docs","path":"/docs/edit-mode","distance":0.4178},{"site":"nextjs","path":"/docs/community/contribution-guide","distance":0.4327},{"site":"vercel-docs","path":"/docs/integrations/cms/contentful","distance":0.4401}],"related":[{"site":"vercel-docs","path":"/docs/caching/cdn-cache/debug-cache-issues","via":"neighbor"},{"site":"vercel-docs","path":"/docs/edit-mode","via":"neighbor"},{"site":"nextjs","path":"/docs/community/contribution-guide","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/contentful","via":"neighbor"},{"site":"streamdown","path":"/docs/components","via":"neighbor"},{"site":"streamdown","path":"/docs/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/troubleshooting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/troubleshooting","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-troubleshoot-stale-content-returned-from-the-edge-network-when-using-an-external-proxy-or-cdn","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-serve-documentation-for-agents","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/adding-keyboard-shortcuts-to-react-apps-with-tanstack-hotkeys","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/avoiding-duplicate-content-with-vercel-app-urls","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-cross-origin-errors-neterr-blocked-by-orb-with-deployment-protection","title":"Troubleshooting Cross-Origin Errors \\(net::ERR_BLOCKED_BY_ORB\\) with Deployment Protection","summary":"Learn to resolve \\`net::ERR_BLOCKED_BY_ORB\\` errors on protected Vercel deployments. This guide explains how cross-origin asset requests conflict with Vercel Authentication and shows the fix for Sitecore JSS apps using the \\`PUBLIC_URL\\` environment variable.","outbound":[{"site":"vercel-docs","path":"/docs/deployments/generated-urls"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain"},{"site":"vercel-docs","path":"/docs/environment-variables/system-environment-variables"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-debug-404-errors","distance":0.2456},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication","distance":0.2592},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments","distance":0.2668},{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","distance":0.2698},{"site":"vercel-kb","path":"/kb/guide/resolve-err-ssl-protocol-error-with-vercel","distance":0.2733}],"related":[{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/automated-agent-access","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-404-errors","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/resolve-err-ssl-protocol-error-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/avoiding-duplicate-content-with-vercel-app-urls","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/complete-guide-authentication-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-function-250mb-limit","title":"Troubleshooting Build Error: \"Serverless Function has exceeded the unzipped maximum size of 250 MB\"","summary":"Learn how to troubleshoot builds failing due to exceeding the maximum function size limit on Vercel.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/output"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions/container-images"},{"site":"vercel-docs","path":"/docs/functions/limitations"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/functions/limitations","distance":0.1999},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out","distance":0.2418},{"site":"vercel-docs","path":"/docs/functions","distance":0.265},{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel","distance":0.2667},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing","distance":0.2738}],"related":[{"site":"vercel-docs","path":"/docs/functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/debug-slow-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-build-error-build-step-did-not-complete-within-45-minutes","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-inconsistent-logs-in-vercel-functions","title":"Troubleshooting Inconsistent Logs in Vercel Functions","summary":"Learn how to troubleshoot and resolve logs that appear mixed in Vercel Functions. This guide explains why logs from different requests can appear mixed and provides solutions to ensure your functions execute reliably without corrupting your log data.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions/after"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/functions/logs","distance":0.2983},{"site":"vercel-docs","path":"/docs/functions/debug-slow-functions","distance":0.3056},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out","distance":0.3082},{"site":"vercel-kb","path":"/kb/guide/investigate-latency-issues-and-slowness","distance":0.3174},{"site":"vercel-kb","path":"/kb/guide/what-should-i-do-if-i-receive-a-503-error-on-vercel","distance":0.3247}],"related":[{"site":"vercel-docs","path":"/docs/functions/logs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/debug-slow-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/investigate-latency-issues-and-slowness","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-does-my-serverless-function-work-locally-but-not-when-deployed","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-vercel-cron-jobs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-lower-my-serverless-function-execution-time","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-request-econnreset-errors","title":"Troubleshooting request ECONNRESET errors","summary":"Understand what ECONNRESET means in Vercel runtime logs, why it happens when calling external APIs, how to diagnose it, and when to contact Vercel Support.","outbound":[{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/what-should-i-do-if-i-receive-a-503-error-on-vercel","distance":0.3223},{"site":"vercel-kb","path":"/kb/guide/resolve-err-ssl-protocol-error-with-vercel","distance":0.323},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-connectivity-issues","distance":0.3232},{"site":"vercel-kb","path":"/kb/guide/how-to-troubleshoot-stale-content-returned-from-the-edge-network-when-using-an-external-proxy-or-cdn","distance":0.3379},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-inconsistent-logs-in-vercel-functions","distance":0.3482}],"related":[{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/troubleshooting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-should-i-do-if-i-receive-a-503-error-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/resolve-err-ssl-protocol-error-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-connectivity-issues","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-troubleshoot-stale-content-returned-from-the-edge-network-when-using-an-external-proxy-or-cdn","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-inconsistent-logs-in-vercel-functions","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-sigkill-out-of-memory-errors","title":"Troubleshooting Builds Failing with SIGKILL or Out of Memory Errors","summary":"Learn how to troubleshoot builds failing with SIGKILL or Out of Memory errors on a Vercel Deployment.","outbound":[{"site":"vercel-docs","path":"/docs/observability"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/troubleshooting-build-error-build-step-did-not-complete-within-45-minutes"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","distance":0.2152},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-build-error-build-step-did-not-complete-within-45-minutes","distance":0.2472},{"site":"vercel-kb","path":"/kb/guide/detect-memory-and-oom-failures-in-serverless-functions","distance":0.2725},{"site":"vercel-kb","path":"/kb/guide/how-do-i-reduce-my-build-time-with-next-js-on-vercel","distance":0.2763},{"site":"vercel-docs","path":"/docs/builds","distance":0.2992}],"related":[{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds/managing-builds","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/builds","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/memory-usage","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-build-error-build-step-did-not-complete-within-45-minutes","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/detect-memory-and-oom-failures-in-serverless-functions","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-reduce-my-build-time-with-next-js-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-function-250mb-limit","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/fixing-deployments-that-hang-after-the-build-step-succeeds","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-vercel-cron-jobs","title":"Troubleshooting Vercel Cron Jobs","summary":"Learn how to troubleshoot cron jobs that aren't being run or logged when using Vercel Cron Jobs.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/trailingSlash"},{"site":"vercel-docs","path":"/docs/cli/build"},{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/cron-jobs/manage-cron-jobs"},{"site":"vercel-docs","path":"/docs/cron-jobs/quickstart"},{"site":"vercel-docs","path":"/docs/cron-jobs/usage-and-pricing"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/cron-jobs/manage-cron-jobs","distance":0.162},{"site":"vercel-docs","path":"/docs/cron-jobs","distance":0.1781},{"site":"vercel-kb","path":"/kb/guide/how-to-setup-cron-jobs-on-vercel","distance":0.2034},{"site":"vercel-docs","path":"/docs/cron-jobs/quickstart","distance":0.2091},{"site":"vercel-docs","path":"/docs/cli/crons","distance":0.2551}],"related":[{"site":"vercel-docs","path":"/docs/cli/crons","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/debug-slow-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/debug-cache-issues","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability/debug-production-errors","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-setup-cron-jobs-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-404-errors","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/kubernetes-manifests-to-vercel-json","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-inconsistent-logs-in-vercel-functions","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/unable-to-find-github-repository","title":"How to fix “unable to find your GitHub repository” on Vercel","summary":"Learn how to check GitHub permissions to ensure your Vercel account has sufficient access to import your repository.","outbound":[{"site":"vercel-docs","path":"/docs/git/vercel-for-github"},{"site":"vercel-docs","path":"/docs/projects"}],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/git-import","distance":0.2796},{"site":"vercel-docs","path":"/docs/git/vercel-for-github","distance":0.286},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","distance":0.2993},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket","distance":0.3006},{"site":"v0","path":"/docs/github","distance":0.3083}],"related":[{"site":"v0","path":"/docs/git-import","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket","via":"neighbor"},{"site":"v0","path":"/docs/github","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-project-collaboration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/add-a-repository-permission","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-resolve-a-module-not-found-error","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/use-vercel-with-github-ip-restrictions","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/sandbox-private-github-repositories","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-ghcr-to-vcr","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/understand-cost-impact-of-function-invocations","title":"Understand the Cost Impact of Function Invocations","summary":"Learn how to use Observability to understand function invocations and their cost impact.","outbound":[{"site":"vercel-docs","path":"/docs/observability"}],"inbound":[{"site":"vercel-docs","path":"/docs/observability/insights"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/investigate-latency-issues-and-slowness","distance":0.28},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing","distance":0.3177},{"site":"vercel-docs","path":"/docs/observability","distance":0.3182},{"site":"vercel-docs","path":"/docs/speed-insights/managing-usage","distance":0.3377},{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability","distance":0.3407}],"related":[{"site":"vercel-docs","path":"/docs/observability/insights","via":"inbound"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/managing-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/investigate-latency-issues-and-slowness","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/understanding-cookies","title":"Understanding Cookies","summary":"Discover how web cookies function, the importance of cookie attributes for security, and methods for inspecting and debugging cookies.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/understanding-the-samesite-cookie-attribute","distance":0.2185},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies","distance":0.3446},{"site":"vercel-kb","path":"/kb/guide/understanding-csrf-attacks","distance":0.3739},{"site":"vercel-docs","path":"/docs/domains","distance":0.4076},{"site":"vercel-kb","path":"/kb/guide/understanding-xss-attacks","distance":0.4122}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/understanding-the-samesite-cookie-attribute","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/privacy-policy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-ssl","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/privacy-policy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security/encryption","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/understanding-csrf-attacks","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/create-a-har-file-for-vercel-support","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/understanding-xss-attacks","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/enhancing-security-for-redirects-and-rewrites","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/understanding-csrf-attacks","title":"Understanding CSRF attacks","summary":"Understand the mechanics and risks of Cross-Site Request Forgery \\(CSRF\\) attacks, and discover crucial development practices, like anti-CSRF tokens and appropriate use of HTTP methods, to fortify web applications against such threats","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/understanding-xss-attacks","distance":0.2486},{"site":"vercel-kb","path":"/kb/guide/enhancing-security-for-redirects-and-rewrites","distance":0.2694},{"site":"vercel-kb","path":"/kb/guide/understanding-the-samesite-cookie-attribute","distance":0.3176},{"site":"vercel-docs","path":"/docs/cdn-security/security-headers","distance":0.3525},{"site":"vercel-kb","path":"/kb/guide/understanding-cookies","distance":0.3739}],"related":[{"site":"vercel-docs","path":"/docs/cdn-security/security-headers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/attack-mode","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/understanding-xss-attacks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/enhancing-security-for-redirects-and-rewrites","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/understanding-the-samesite-cookie-attribute","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/understanding-cookies","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-cross-origin-errors-neterr-blocked-by-orb-with-deployment-protection","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/understanding-the-samesite-cookie-attribute","title":"Understanding the SameSite cookie attribute","summary":"Explore the SameSite cookie attribute's significance in ensuring web security and user privacy to strike the right balance between security and usability.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/understanding-cookies","distance":0.2185},{"site":"vercel-kb","path":"/kb/guide/understanding-csrf-attacks","distance":0.3176},{"site":"vercel-kb","path":"/kb/guide/enhancing-security-for-redirects-and-rewrites","distance":0.3698},{"site":"vercel-docs","path":"/docs/cdn-security/security-headers","distance":0.3818},{"site":"vercel-kb","path":"/kb/guide/understanding-xss-attacks","distance":0.3857}],"related":[{"site":"vercel-kb","path":"/kb/guide/understanding-cookies","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security/security-headers","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security/encryption","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/privacy-policy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/security","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/understanding-csrf-attacks","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/enhancing-security-for-redirects-and-rewrites","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/understanding-xss-attacks","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-cross-origin-errors-neterr-blocked-by-orb-with-deployment-protection","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/understanding-vector-databases-for-ai-apps","title":"Understanding vector databases for AI apps","summary":"Learn how vector databases enable semantic search through embeddings and similarity matching.","outbound":[],"inbound":[{"site":"vercel-kb","path":"/kb/guide/building-ai-chat-app-with-rag-and-citations-on-vercel"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vector-databases","distance":0.2325},{"site":"ai-sdk","path":"/providers/community-providers/vectorstores","distance":0.3141},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/embeddings","distance":0.3652},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/embeddings","distance":0.3823},{"site":"ai-sdk","path":"/cookbook/node/retrieval-augmented-generation","distance":0.4151}],"related":[{"site":"ai-sdk","path":"/providers/community-providers/vectorstores","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/embeddings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/embeddings","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vector-databases","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/retrieval-augmented-generation","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/embed-text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/web-search-agent","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/rag-chatbot-production-architecture-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/understanding-xss-attacks","title":"Understanding XSS Attacks","summary":"Learn about XSS attacks, their types, risks, and effective prevention strategies in this comprehensive guide for web security.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/cdn-security/security-headers"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/understanding-csrf-attacks","distance":0.2486},{"site":"vercel-docs","path":"/docs/cdn-security/security-headers","distance":0.2951},{"site":"vercel-kb","path":"/kb/guide/enhancing-security-for-redirects-and-rewrites","distance":0.3},{"site":"vercel-kb","path":"/kb/guide/understanding-the-samesite-cookie-attribute","distance":0.3857},{"site":"nextjs","path":"/docs/pages/guides/authentication","distance":0.4031}],"related":[{"site":"vercel-docs","path":"/docs/cdn-security/security-headers","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/understanding-csrf-attacks","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/content-security-policy","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/enhancing-security-for-redirects-and-rewrites","via":"neighbor"},{"site":"vercel-docs","path":"/docs/botid/get-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/security","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/understanding-the-samesite-cookie-attribute","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/understanding-cookies","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-cross-origin-errors-neterr-blocked-by-orb-with-deployment-protection","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/update-icann-domain-information-for-vercel-domain","title":"How do I view and update my domain's ICANN registrant information on Vercel? ","summary":"Learn how to view and update the registrant information for a domain registered with Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/rbac/access-roles"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-to-vercel","distance":0.2899},{"site":"vercel-kb","path":"/kb/guide/why-is-my-vercel-domain-unverified","distance":0.2901},{"site":"vercel-kb","path":"/kb/guide/how-do-i-change-my-nameservers-on-vercel","distance":0.2993},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-out-of-vercel","distance":0.3065},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-domain-using-the-vercel-api","distance":0.3171}],"related":[{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/view-and-search-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/troubleshooting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-vercel-domain-unverified","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-change-my-nameservers-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-out-of-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-domain-using-the-vercel-api","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/update-mega-nav-min-reval","title":"Updating large-scale site navigation with minimal revalidation","summary":"When working with a large number of pages that share a common multi-level navigation, making a navigation update requires revalidating all pages. Learn how to avoid this by using smart revalidation.","outbound":[{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/quickstart"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/how-to-move-to-on-demand-revalidation"},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-revalidation-costs"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-move-to-on-demand-revalidation","distance":0.2814},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/quickstart","distance":0.3172},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","distance":0.3184},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-revalidation-costs","distance":0.328},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration","distance":0.3332}],"related":[{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration","via":"neighbor"},{"site":"swr","path":"/docs/revalidation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/incremental-migration","via":"neighbor"},{"site":"swr","path":"/docs/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","via":"neighbor"},{"site":"swr","path":"/docs/advanced/understanding","via":"neighbor"},{"site":"swr","path":"/docs/pagination","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nuxt","via":"neighbor"},{"site":"swr","path":"/blog/swr-v2","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-move-to-on-demand-revalidation","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/use-crypto-web-api","title":"Using the crypto Web API to redirect requests with a unique token","summary":"Learn how to use the Crypto Web API in your Middleware.","outbound":[{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/routing-middleware/api"}],"inbound":[{"site":"vercel-docs","path":"/docs/routing-middleware/api"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/modify-request-headers","distance":0.3275},{"site":"vercel-docs","path":"/docs/routing-middleware/getting-started","distance":0.3559},{"site":"vercel-kb","path":"/kb/guide/rendering-content-based-on-device","distance":0.3568},{"site":"vercel-docs","path":"/docs/routing-middleware","distance":0.3576},{"site":"vercel-kb","path":"/kb/guide/add-response-header","distance":0.3589}],"related":[{"site":"vercel-docs","path":"/docs/routing-middleware/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects/configuration-redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/authorization-server-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/oidc/api","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/modify-request-headers","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/rendering-content-based-on-device","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/add-response-header","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/filter-query-parameters","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-reverse-proxy-rewrites-external","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/use-feature-flags-in-fumadocs-with-the-vercel-toolbar","title":"Use feature flags in Fumadocs with the Vercel Toolbar","summary":"Control documentation visibility with feature flags. Hide inline content, entire pages, and navigation items based on flag state.","outbound":[{"site":"vercel-docs","path":"/docs/vercel-toolbar"}],"inbound":[],"requires":[],"neighbors":[{"site":"flags-sdk","path":"/docs/frameworks/sveltekit","distance":0.248},{"site":"flags-sdk","path":"/docs/frameworks/next","distance":0.2629},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","distance":0.2643},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","distance":0.2705},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard","distance":0.2748}],"related":[{"site":"flags-sdk","path":"/docs/frameworks/sveltekit","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/set-up-flags-explorer","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/use-my-domain-bluesky","title":"Use your Vercel-owned domain on Bluesky","summary":"Learn how to add your domain as your handle on Bluesky","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/domains/managing-dns-records"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","distance":0.2944},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","distance":0.3089},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","distance":0.3139},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain-to-environment","distance":0.3216},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","distance":0.3327}],"related":[{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","via":"inbound"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain-to-environment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-domain-using-the-vercel-api","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-using-vercel-s-nameserver-s-lock-you-in","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/domain-linked-to-another-account","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/use-vercel-with-github-ip-restrictions","title":"How can I use Vercel with GitHub IP restrictions?","summary":"This guide will describe how you can use Vercel even when you have an IP allowlist configured in GitHub.","outbound":[{"site":"vercel-docs","path":"/docs/cli"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/can-i-use-github-enterprise-server-with-vercel","distance":0.2456},{"site":"vercel-kb","path":"/kb/guide/unable-to-find-github-repository","distance":0.3194},{"site":"vercel-kb","path":"/kb/guide/how-to-prevent-vercel-github-comments","distance":0.3263},{"site":"vercel-kb","path":"/kb/guide/can-i-use-vercel-to-deploy-to-a-private-cloud","distance":0.3292},{"site":"vercel-kb","path":"/kb/guide/using-vercel-cli-for-custom-workflows","distance":0.3303}],"related":[{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-github","via":"neighbor"},{"site":"vercel-docs","path":"/docs/protected-git-scopes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-i-use-github-enterprise-server-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/unable-to-find-github-repository","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-prevent-vercel-github-comments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-i-use-vercel-to-deploy-to-a-private-cloud","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-vercel-cli-for-custom-workflows","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/user-uploaded-files-vercel-sandbox-and-blob","title":"How to process user-uploaded files with Vercel Sandbox and Vercel Blob","summary":"Learn how to upload files to Vercel Blob, process them safely with FFmpeg in an isolated Vercel Sandbox, and store the results back in Blob.","outbound":[{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference"},{"site":"vercel-docs","path":"/docs/vercel-blob/client-upload"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-snapshots-for-faster-sandbox-startup"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nextjs","distance":0.2315},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","distance":0.2327},{"site":"vercel-kb","path":"/kb/guide/test-container-image-vercel-sandbox","distance":0.2365},{"site":"vercel-docs","path":"/docs/sandbox/concepts","distance":0.2569},{"site":"vercel-kb","path":"/kb/guide/docker","distance":0.2584}],"related":[{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/run-commands-in-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/examples","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nextjs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/test-container-image-vercel-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-upload-and-store-files-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nuxt-imgur-clone","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/using-a-headless-cms-with-vercel","title":"Using a Headless CMS with Vercel","summary":"Learn best practices for using databases in a serverless environment with Vercel","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/cms","distance":0.2256},{"site":"vercel-kb","path":"/kb/guide/wordpress-with-vercel","distance":0.2296},{"site":"vercel-kb","path":"/kb/guide/integrating-next-js-and-contentful-for-your-headless-cms","distance":0.2457},{"site":"vercel-docs","path":"/docs/integrations/cms/dato-cms","distance":0.2668},{"site":"vercel-kb","path":"/kb/guide/why-innovators-are-going-headless","distance":0.2776}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"inbound"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/sveltekit","via":"inbound"},{"site":"vercel-docs","path":"/docs/integrations/cms","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/dato-cms","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/contentful","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/wordpress-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-innovators-are-going-headless","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/integrate-vercel-and-contentstack","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/using-an-external-dynamic-image","title":"Using an external image as OG image","summary":"Learn how to pass the username as a URL parameter to pull an external profile image for the image generation.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image"},{"site":"vercel-docs","path":"/docs/og-image-generation"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/using-svg-image","distance":0.1173},{"site":"vercel-kb","path":"/kb/guide/dynamic-text-as-image","distance":0.1205},{"site":"vercel-kb","path":"/kb/guide/using-emoji-in-image","distance":0.1231},{"site":"vercel-kb","path":"/kb/guide/using-tailwind","distance":0.1473},{"site":"vercel-kb","path":"/kb/guide/using-different-languages","distance":0.1939}],"related":[{"site":"vercel-kb","path":"/kb/guide/using-svg-image","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/dynamic-text-as-image","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-emoji-in-image","via":"neighbor"},{"site":"vercel-docs","path":"/docs/og-image-generation/examples","via":"neighbor"},{"site":"vercel-docs","path":"/docs/og-image-generation/og-image-api","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-tailwind","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-different-languages","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/image-response","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/images","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","title":"Using coding agents to procure Vercel Marketplace integrations","summary":"Coding agents can now discover, provision, and manage third-party services from the Vercel Marketplace using the Vercel CLI integration commands.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/integration"},{"site":"vercel-docs","path":"/docs/environment-variables"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","distance":0.1606},{"site":"vercel-docs","path":"/docs/integrations","distance":0.2111},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-agents","distance":0.2156},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration","distance":0.2161},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/agent-tools","distance":0.2189}],"related":[{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-agents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/agent-tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-deploy-a-next-js-online-store-with-stripe","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/using-custom-font","title":"Using a custom font in your OG Image","summary":"Learn how to use a custom font from the tile system in your OG images.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image"},{"site":"vercel-docs","path":"/docs/og-image-generation"}],"inbound":[{"site":"vercel-docs","path":"/docs/og-image-generation/og-image-api"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/using-svg-image","distance":0.1474},{"site":"vercel-kb","path":"/kb/guide/using-emoji-in-image","distance":0.1492},{"site":"vercel-kb","path":"/kb/guide/using-tailwind","distance":0.1639},{"site":"vercel-kb","path":"/kb/guide/using-an-external-dynamic-image","distance":0.1941},{"site":"vercel-docs","path":"/docs/og-image-generation","distance":0.1948}],"related":[{"site":"vercel-docs","path":"/docs/og-image-generation/og-image-api","via":"inbound"},{"site":"vercel-docs","path":"/docs/og-image-generation/examples","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-svg-image","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-emoji-in-image","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/fonts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-tailwind","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/image-response","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-an-external-dynamic-image","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-different-languages","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/using-different-languages","title":"Using languages in your OG image","summary":"Learn how to use other languages in the text of your OG image.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image"},{"site":"vercel-docs","path":"/docs/og-image-generation"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/using-emoji-in-image","distance":0.1411},{"site":"vercel-kb","path":"/kb/guide/using-svg-image","distance":0.161},{"site":"vercel-kb","path":"/kb/guide/using-tailwind","distance":0.1859},{"site":"vercel-kb","path":"/kb/guide/using-an-external-dynamic-image","distance":0.1939},{"site":"vercel-kb","path":"/kb/guide/using-custom-font","distance":0.1971}],"related":[{"site":"vercel-kb","path":"/kb/guide/using-emoji-in-image","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-svg-image","via":"neighbor"},{"site":"vercel-docs","path":"/docs/og-image-generation/og-image-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-tailwind","via":"neighbor"},{"site":"vercel-docs","path":"/docs/og-image-generation/examples","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-an-external-dynamic-image","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-custom-font","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/image-response","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/using-email-with-your-vercel-domain","title":"How do I send and receive emails with my Vercel purchased domain?","summary":"Information on how to send and receive emails with a domain purchased from Vercel.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/domains/troubleshooting"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains"},{"site":"vercel-kb","path":"/kb/guide/sending-emails-from-an-application-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/serverless-functions-and-smtp"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/why-has-email-stopped-working","distance":0.1717},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","distance":0.2235},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","distance":0.2838},{"site":"vercel-docs","path":"/docs/domains/troubleshooting","distance":0.2849},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-to-vercel","distance":0.2891}],"related":[{"site":"vercel-docs","path":"/docs/domains/troubleshooting","via":"inbound"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","via":"inbound"},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-dns","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-has-email-stopped-working","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-vercel-domain-unverified","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/pointing-subdomains-to-external-services","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/using-emoji-in-image","title":"Using emoji in your OG image","summary":"Learn how to use emojis to generate an OG image.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image"},{"site":"vercel-docs","path":"/docs/og-image-generation"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/using-svg-image","distance":0.0836},{"site":"vercel-kb","path":"/kb/guide/using-tailwind","distance":0.1218},{"site":"vercel-kb","path":"/kb/guide/using-an-external-dynamic-image","distance":0.1231},{"site":"vercel-kb","path":"/kb/guide/using-different-languages","distance":0.1411},{"site":"vercel-kb","path":"/kb/guide/dynamic-text-as-image","distance":0.1461}],"related":[{"site":"vercel-kb","path":"/kb/guide/using-svg-image","via":"neighbor"},{"site":"vercel-docs","path":"/docs/og-image-generation/examples","via":"neighbor"},{"site":"vercel-docs","path":"/docs/og-image-generation/og-image-api","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-tailwind","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-an-external-dynamic-image","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-different-languages","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/dynamic-text-as-image","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/image-response","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/using-express-with-vercel","title":"Using Express.js with Vercel","summary":"Learn how to use Express.js in a Serverless environment.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/websockets"}],"inbound":[{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel","distance":0.1206},{"site":"vercel-docs","path":"/docs/frameworks/backend/express","distance":0.127},{"site":"vercel-kb","path":"/kb/guide/build-with-a-express-starter-template","distance":0.147},{"site":"vercel-kb","path":"/kb/guide/ship-a-nestjs-app-on-vercel","distance":0.2104},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","distance":0.2163}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/backend/express","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","via":"inbound"},{"site":"vercel-docs","path":"/docs/fundamentals/builds","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-express-starter-template","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-elysia-app-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/using-private-dependencies-with-vercel","title":"How do I use private dependencies with Vercel?","summary":"Information on how to use private dependencies with a Vercel deployment.","outbound":[{"site":"vercel-docs","path":"/docs/cli/env"}],"inbound":[{"site":"vercel-docs","path":"/docs/builds/build-features"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/builds/build-features","distance":0.2355},{"site":"vercel-kb","path":"/kb/guide/dependencies-from-package-json-missing-after-install","distance":0.2596},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/advanced-node-configuration","distance":0.2821},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-the-latest-npm-version-for-my-vercel-deployment","distance":0.3051},{"site":"vercel-docs","path":"/docs/package-managers","distance":0.3161}],"related":[{"site":"vercel-docs","path":"/docs/builds/build-features","via":"inbound"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/advanced-node-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/package-managers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/go","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/ci-vendors/vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/dependencies-from-package-json-missing-after-install","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-the-latest-npm-version-for-my-vercel-deployment","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/sandbox-private-github-repositories","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-aws-sdk-environment-variables-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/using-sveltekit-form-actions","title":"Using SvelteKit Form Actions","summary":"This guide explains how to use form actions in SvelteKit to handle form submissions, process form data, and enhance form interactions, providing seamless integration with the endpoint system.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/forms","distance":0.3013},{"site":"nextjs","path":"/docs/app/api-reference/components/form","distance":0.3242},{"site":"nextjs","path":"/docs/pages/api-reference/components/form","distance":0.3488},{"site":"vercel-docs","path":"/docs/botid/form-submissions","distance":0.3626},{"site":"nextjs","path":"/docs/pages/guides/forms","distance":0.3734}],"related":[{"site":"nextjs","path":"/docs/app/guides/forms","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/components/form","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/components/form","via":"neighbor"},{"site":"vercel-docs","path":"/docs/botid/form-submissions","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/forms","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/frameworks/sveltekit","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/sveltekit","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/sveltekit","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/precompute","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-sveltekit","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/use-eve-agent-svelte","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/using-svg-image","title":"Using an SVG image in your OG image","summary":"Learn how to use SVG embedded content to generate your OG images.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image"},{"site":"vercel-docs","path":"/docs/og-image-generation"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/using-emoji-in-image","distance":0.0836},{"site":"vercel-kb","path":"/kb/guide/using-tailwind","distance":0.0927},{"site":"vercel-kb","path":"/kb/guide/using-an-external-dynamic-image","distance":0.1173},{"site":"vercel-docs","path":"/docs/og-image-generation","distance":0.1437},{"site":"vercel-kb","path":"/kb/guide/using-custom-font","distance":0.1474}],"related":[{"site":"vercel-kb","path":"/kb/guide/using-emoji-in-image","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-tailwind","via":"neighbor"},{"site":"vercel-docs","path":"/docs/og-image-generation/examples","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-an-external-dynamic-image","via":"neighbor"},{"site":"vercel-docs","path":"/docs/og-image-generation/og-image-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-custom-font","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/image-response","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/dynamic-text-as-image","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/using-tailwind","title":"Using Tailwind CSS with your OG Image","summary":"Learn how to use Tailwind CSS to style your OG images.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image"},{"site":"vercel-docs","path":"/docs/og-image-generation"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/using-svg-image","distance":0.0927},{"site":"vercel-kb","path":"/kb/guide/using-emoji-in-image","distance":0.1218},{"site":"vercel-kb","path":"/kb/guide/using-an-external-dynamic-image","distance":0.1473},{"site":"vercel-docs","path":"/docs/og-image-generation","distance":0.1574},{"site":"vercel-kb","path":"/kb/guide/using-custom-font","distance":0.1639}],"related":[{"site":"vercel-kb","path":"/kb/guide/using-svg-image","via":"neighbor"},{"site":"vercel-docs","path":"/docs/og-image-generation/examples","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-emoji-in-image","via":"neighbor"},{"site":"vercel-docs","path":"/docs/og-image-generation/og-image-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-an-external-dynamic-image","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/image-response","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-custom-font","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/dynamic-text-as-image","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/using-tanstack-intent-to-ship-and-consume-agent-skills","title":"Using TanStack Intent to ship and consume agent skills","summary":"TanStack Intent is a CLI for shipping and consuming agent skills, markdown files that teach AI coding agents how to use a library correctly. This guide covers installing Intent, loading skills from your dependencies, and shipping skills as a maintainer.","outbound":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/tanstack-start"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel"},{"site":"vercel-kb","path":"/kb/guide/tanstack-intent-vs-skills"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/tanstack-intent-vs-skills","distance":0.0745},{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","distance":0.261},{"site":"ai-sdk","path":"/cookbook/guides/agent-skills","distance":0.3125},{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel","distance":0.3125},{"site":"nextjs","path":"/docs/app/guides/ai-agents","distance":0.3129}],"related":[{"site":"vercel-kb","path":"/kb/guide/tanstack-intent-vs-skills","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/agent-skills","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/ai-agents","via":"neighbor"},{"site":"eve","path":"/docs/skills","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started/extending-with-agents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/skills","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/adding-keyboard-shortcuts-to-react-apps-with-tanstack-hotkeys","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/using-vercel-cli-for-custom-workflows","title":"How can I use the Vercel CLI for custom workflows?","summary":"You can use the Vercel CLI to deploy any application, including custom git providers and restricted source code.","outbound":[{"site":"vercel-docs","path":"/docs/deployments/promoting-a-deployment"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli/build"},{"site":"vercel-docs","path":"/docs/cli/global-options"},{"site":"vercel-docs","path":"/docs/cli/tokens"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/monorepos/monorepo-faq"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-circleci-with-vercel","distance":0.1721},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-gitlab-pipelines-with-vercel","distance":0.1834},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-bitbucket-pipelines-with-vercel","distance":0.1976},{"site":"vercel-docs","path":"/docs/git","distance":0.2152},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","distance":0.2187}],"related":[{"site":"vercel-docs","path":"/docs/cli/build","via":"inbound"},{"site":"vercel-docs","path":"/docs/cli/global-options","via":"inbound"},{"site":"vercel-docs","path":"/docs/cli/tokens","via":"inbound"},{"site":"vercel-docs","path":"/docs/git","via":"inbound"},{"site":"vercel-docs","path":"/docs/monorepos/monorepo-faq","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-circleci-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-gitlab-pipelines-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-bitbucket-pipelines-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-vuejs-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/using-vercel-sandbox-claude-agent-sdk","title":"Using Vercel Sandbox to run Claude’s Agent SDK","summary":"Learn how to deploy Claude's Agent SDK in Vercel Sandbox for secure and isolated execution of AI-powered code generation and autonomous agent tasks.","outbound":[{"site":"vercel-docs","path":"/docs/oidc"},{"site":"vercel-docs","path":"/docs/projects"}],"inbound":[{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/building-an-agent-with-openai-agents-sdk-and-vercel-sandbox","distance":0.1739},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","distance":0.1796},{"site":"vercel-docs","path":"/docs/sandbox","distance":0.184},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/anthropic-sdk","distance":0.1867},{"site":"vercel-kb","path":"/kb/guide/running-ai-generated-code-sandbox","distance":0.1939}],"related":[{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","via":"inbound"},{"site":"vercel-docs","path":"/docs/sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/anthropic-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/run-commands-in-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-an-agent-with-openai-agents-sdk-and-vercel-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/running-ai-generated-code-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/python-ai-sdk-vercel-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/test-container-image-vercel-sandbox","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/using-xmcp-with-nextjs","title":"Using xmcp with Next.js","summary":"Add an MCP server to an existing Next.js app with xmcp. Create typed tools, add authentication, and deploy to Vercel as a Vercel Function.","outbound":[{"site":"vercel-docs","path":"/docs/cli/dev"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/backend/xmcp"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/routing-middleware"}],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/backend/xmcp"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/frameworks/backend/xmcp","distance":0.1395},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","distance":0.1856},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-mcp-server-with-nuxt","distance":0.1945},{"site":"vercel-kb","path":"/kb/guide/mcp-server-with-weather-tool-express","distance":0.1997},{"site":"vercel-kb","path":"/kb/guide/how-to-create-a-contentful-asset-on-vercel","distance":0.209}],"related":[{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/mcp","via":"neighbor"},{"site":"v0","path":"/docs/MCP","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/sitecore","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/adapters/mcp-server","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-mcp-server-with-nuxt","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/mcp-server-with-weather-tool-express","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-create-a-contentful-asset-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-mcp-apps","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/mcp-server-chatgpt-connector","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","title":"Using Vercel as a Standalone CDN","summary":"Use Vercel's external rewrites to proxy and cache content from external websites or APIs through Vercel's global edge network.","outbound":[{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/vercel-firewall"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/cdn","distance":0.1447},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works","distance":0.175},{"site":"vercel-kb","path":"/kb/guide/vercel-reverse-proxy-rewrites-external","distance":0.179},{"site":"vercel-docs","path":"/docs/security/reverse-proxy","distance":0.2196},{"site":"vercel-docs","path":"/docs/routing","distance":0.2312}],"related":[{"site":"vercel-docs","path":"/docs/cdn","via":"neighbor"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/reverse-proxy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/rewrites","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-reverse-proxy-rewrites-external","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-troubleshoot-stale-content-returned-from-the-edge-network-when-using-an-external-proxy-or-cdn","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-cache-tags-for-external-origins","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/cloudflare-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-serve-multiple-projects-under-a-single-domain","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/vector-databases","title":"Vector Databases Explained","summary":"Learn about vector databases: what they are, 8 of the best examples and how to build an AI semantic search app with them.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/understanding-vector-databases-for-ai-apps","distance":0.2325},{"site":"ai-sdk","path":"/providers/community-providers/vectorstores","distance":0.2842},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","distance":0.354},{"site":"vercel-kb","path":"/kb/guide/what-is-a-large-language-model","distance":0.3562},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","distance":0.36}],"related":[{"site":"ai-sdk","path":"/providers/community-providers/vectorstores","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/understanding-vector-databases-for-ai-apps","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/pinecone","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-a-large-language-model","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-a-headless-cms-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/mysql-vs-postgresql-vs-mongodb","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/vercel-agent","title":"The Complete Guide to Vercel Agent","summary":"Learn what Vercel Agent does, how to set up Code Review, Investigation, Chat, and Installation, and what each feature costs on Pro and Enterprise plans.","outbound":[{"site":"vercel-docs","path":"/docs/agent/installation"},{"site":"vercel-docs","path":"/docs/agent/investigation"},{"site":"vercel-docs","path":"/docs/agent/pr-review"},{"site":"vercel-docs","path":"/docs/agent/pricing"},{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/analytics/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/speed-insights"},{"site":"vercel-docs","path":"/docs/speed-insights/limits-and-pricing"},{"site":"vercel-kb","path":"/kb/guide/vercel-agent-code-review"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-agent-code-review","distance":0.1105},{"site":"vercel-docs","path":"/docs/agent","distance":0.1228},{"site":"vercel-docs","path":"/docs/agent/pricing","distance":0.138},{"site":"vercel-docs","path":"/docs/agent/pr-review","distance":0.1889},{"site":"vercel-docs","path":"/docs/agent/pr-review/usage","distance":0.1978}],"related":[{"site":"vercel-docs","path":"/docs/agent","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent/pr-review/usage","via":"neighbor"},{"site":"v0","path":"/docs/teams","via":"neighbor"},{"site":"v0","path":"/docs/faqs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-agents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agents-chat-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/monitor-uptime-for-ai-native-apps-with-vercel-alerts","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/vercel-agent-code-review","title":"Using Vercel Agent to review pull requests","summary":"Set up Vercel Agent Code Review to automatically review pull requests, apply validated fixes, request reviews with @vercel, and tune feedback with coding guidelines.","outbound":[{"site":"vercel-docs","path":"/docs/agent"},{"site":"vercel-docs","path":"/docs/agent/pr-review/usage"},{"site":"vercel-docs","path":"/docs/agent/pricing"},{"site":"vercel-docs","path":"/docs/git/vercel-for-github"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/sandbox"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/vercel-agent"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/agent/pr-review","distance":0.0643},{"site":"vercel-docs","path":"/docs/agent/pr-review/usage","distance":0.109},{"site":"vercel-kb","path":"/kb/guide/vercel-agent","distance":0.1105},{"site":"vercel-docs","path":"/docs/agent","distance":0.1875},{"site":"vercel-docs","path":"/docs/agent/pricing","distance":0.2423}],"related":[{"site":"vercel-docs","path":"/docs/agent/pr-review","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-agent","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent/installation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-github-code-review-bot-with-hono-and-redis","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-an-agent-with-vercel-and-flue","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/vercel-ai-sdk-vs-tanstack-ai","title":"Vercel AI SDK vs TanStack AI","summary":"Compare the Vercel AI SDK and TanStack AI for building AI-powered TypeScript applications. Learn how they differ in agent abstractions, framework support, streaming, tool calling, and bundle optimization to choose the right toolkit for your project.","outbound":[{"site":"ai-sdk","path":"/docs/agents/overview"},{"site":"ai-sdk","path":"/docs/introduction"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-sdk","distance":0.1935},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","distance":0.2149},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","distance":0.2313},{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.2346},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis","distance":0.2367}],"related":[{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/packages/ai-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk-python","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/vercel-blob","title":"The Complete Guide to Vercel Blob","summary":"Vercel Blob stores and serves files of any size through Vercel's global network. Learn how Blob works, what it costs, and how to upload files from your server or directly from the browser.","outbound":[{"site":"vercel-docs","path":"/docs/oidc"},{"site":"vercel-docs","path":"/docs/storage"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-blob/using-blob-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage","distance":0.1109},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nextjs","distance":0.1373},{"site":"vercel-kb","path":"/kb/guide/how-to-upload-and-store-files-with-vercel","distance":0.147},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing","distance":0.1594},{"site":"vercel-docs","path":"/docs/vercel-blob/server-upload","distance":0.1668}],"related":[{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/server-upload","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/examples","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/private-storage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/manage-blob-storage","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nextjs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-upload-and-store-files-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-aws-s3-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nextjs","title":"Build with Vercel Blob on Next.js","summary":"Deploy the Vercel Blob Next.js Starter and learn how client uploads store images securely in a private Blob store.","outbound":[{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/vercel-blob/client-upload"},{"site":"vercel-docs","path":"/docs/vercel-blob/server-upload"},{"site":"vercel-docs","path":"/docs/vercel-blob/using-blob-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-blob","distance":0.1373},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nuxt","distance":0.1428},{"site":"vercel-docs","path":"/docs/vercel-blob/server-upload","distance":0.1803},{"site":"vercel-kb","path":"/kb/guide/how-to-upload-and-store-files-with-vercel","distance":0.2073},{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage","distance":0.2258}],"related":[{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/examples","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/private-storage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/storage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/manage-blob-storage","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-upload-and-store-files-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nuxt-imgur-clone","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/user-uploaded-files-vercel-sandbox-and-blob","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-aws-s3-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nuxt","title":"Build with Vercel Blob on Nuxt","summary":"Set up Vercel Blob in a Nuxt application with NuxtHub, upload and serve files, and deliver optimized images with Nuxt Image.","outbound":[{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/vercel-blob/using-blob-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nextjs","distance":0.1428},{"site":"vercel-kb","path":"/kb/guide/vercel-blob","distance":0.1694},{"site":"vercel-docs","path":"/docs/vercel-blob/server-upload","distance":0.2076},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nuxt-imgur-clone","distance":0.2433},{"site":"vercel-docs","path":"/docs/storage","distance":0.2444}],"related":[{"site":"vercel-docs","path":"/docs/vercel-blob/server-upload","via":"neighbor"},{"site":"vercel-docs","path":"/docs/storage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/image-optimization/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/manage-blob-storage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nextjs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nuxt-imgur-clone","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-aws-s3-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/user-uploaded-files-vercel-sandbox-and-blob","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-upload-and-store-files-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nuxt-imgur-clone","title":"Build Imgur-style image hosting with Nuxt and Vercel Blob","summary":"Learn how to build an Imgur-style paste-to-share image host using Nuxt and Vercel Blob, with direct-to-storage client uploads, shareable ISR preview pages, and CDN caching at every layer.","outbound":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin"},{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/analytics/custom-events"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nuxt"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/vercel-blob/client-upload"},{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage"},{"site":"vercel-docs","path":"/docs/vercel-blob/using-blob-sdk"}],"inbound":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nuxt"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nextjs","distance":0.2259},{"site":"vercel-kb","path":"/kb/guide/how-to-upload-and-store-files-with-vercel","distance":0.2303},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nuxt","distance":0.2433},{"site":"vercel-docs","path":"/docs/vercel-blob/client-upload","distance":0.2536},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nuxt","distance":0.2623}],"related":[{"site":"vercel-docs","path":"/docs/vercel-blob/private-storage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/examples","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/vercel-signed-urls","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/redacting-sensitive-data","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nextjs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-upload-and-store-files-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/user-uploaded-files-vercel-sandbox-and-blob","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-aws-s3-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-vs-netlify-blobs","title":"Vercel Blob vs Netlify Blobs","summary":"Compare Vercel Blob and Netlify Blobs on storage model, public URLs, delivery, limits, and pricing to choose the right object or key/value store for your app.","outbound":[{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/vercel-blob/client-upload"},{"site":"vercel-docs","path":"/docs/vercel-blob/private-storage"},{"site":"vercel-docs","path":"/docs/vercel-blob/server-upload"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/vercel-blob/using-blob-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-upload-and-store-files-with-vercel","distance":0.2048},{"site":"vercel-kb","path":"/kb/guide/vercel-blob","distance":0.2156},{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage","distance":0.275},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nextjs","distance":0.2753},{"site":"vercel-docs","path":"/docs/storage","distance":0.2756}],"related":[{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/storage","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-upload-and-store-files-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nextjs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nuxt","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/nextjs-on-vercel-vs-netlify","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/vercel-botid-vs-cloudflare-turnstile","title":"Vercel BotID vs Cloudflare Turnstile","summary":"Compare Vercel BotID and Cloudflare Turnstile for bot protection, including detection model, hosting requirements, checkBotId\\(\\) vs Siteverify, framework support, and pricing.","outbound":[{"site":"vercel-docs","path":"/docs/botid"},{"site":"vercel-docs","path":"/docs/botid/get-started"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-concepts"},{"site":"vercel-kb","path":"/kb/guide/deploying-and-testing-botid"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features"},{"site":"vercel-kb","path":"/kb/guide/protect-ai-endpoints-with-vercel-botid"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deploying-and-testing-botid","distance":0.1729},{"site":"vercel-docs","path":"/docs/botid","distance":0.1825},{"site":"vercel-kb","path":"/kb/guide/protect-ai-endpoints-with-vercel-botid","distance":0.1828},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","distance":0.2371},{"site":"vercel-kb","path":"/kb/guide/how-to-protect-your-ai-app-from-bots","distance":0.2668}],"related":[{"site":"vercel-docs","path":"/docs/bot-management","via":"neighbor"},{"site":"vercel-docs","path":"/docs/botid/advanced-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/botid/verified-bots","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-protect-your-ai-app-from-bots","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-waf-vs-cloudflare-waf","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-block-bots-openai-gptbot","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/vercel-connect","title":"Give your agents secure access to third-party APIs","summary":"Use Vercel Connect to call provider APIs like Slack, GitHub, Linear, Discord, Notion, Figma, Snowflake, and Salesforce from your agents and services with short-lived, user-authorized tokens instead of long-lived secrets.","outbound":[{"site":"vercel-docs","path":"/docs/cli/connect"},{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/connect/concepts/connectors"},{"site":"vercel-docs","path":"/docs/connect/legal"},{"site":"vercel-docs","path":"/docs/connect/pricing"},{"site":"vercel-docs","path":"/docs/connect/quickstart"},{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"eve","path":"/docs/channels/slack"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk"},{"site":"vercel-kb","path":"/kb/guide/sanity-eve-agent"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/connect","distance":0.0644},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","distance":0.1247},{"site":"vercel-docs","path":"/docs/connect/concepts/connectors","distance":0.1476},{"site":"chat-sdk","path":"/docs/vercel-connect","distance":0.1483},{"site":"vercel-docs","path":"/docs/cli/connect","distance":0.1578}],"related":[{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","via":"neighbor"},{"site":"chat-sdk","path":"/docs/vercel-connect","via":"neighbor"},{"site":"eve","path":"/docs/channels/slack","via":"inbound"},{"site":"vercel-docs","path":"/docs/connect/ts-sdk-reference","via":"neighbor"},{"site":"v0","path":"/docs/vercel-connect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/tokens","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/sanity-eve-agent","via":"inbound"}]},{"site":"vercel-kb","path":"/kb/guide/vercel-docker-python-apps","title":"Deploy Python apps on Vercel using Docker ","summary":"Deploy a Dockerized Python application that depends on native software, OCR engines, or small local models, plus a Next.js frontend, on Vercel Services.","outbound":[{"site":"ai-sdk","path":"/docs/introduction"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin"},{"site":"vercel-docs","path":"/docs/container-registry"},{"site":"vercel-docs","path":"/docs/functions/runtimes/python"},{"site":"vercel-docs","path":"/docs/workflows"},{"site":"vercel-kb","path":"/kb/guide/docker"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments"},{"site":"vercel-kb","path":"/kb/guide/vercel-services"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker","distance":0.1671},{"site":"vercel-kb","path":"/kb/guide/docker","distance":0.1701},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","distance":0.1708},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments","distance":0.1766},{"site":"vercel-kb","path":"/kb/guide/deploy-php-on-vercel-with-docker","distance":0.1972}],"related":[{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-php-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-go-using-docker-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-cloud-run-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/vercel-drives","title":"The Complete Guide to Vercel Drives","summary":"Learn how Vercel Drives provide persistent storage for Vercel Sandboxes, and how to create, mount, list, and delete a drive with the Sandbox CLI and SDK.","outbound":[{"site":"vercel-docs","path":"/docs/oidc"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/sandbox/cli-reference"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/snapshots"},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-duration-and-persistence"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/sandbox/concepts/drives","distance":0.0697},{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-duration-and-persistence","distance":0.2336},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-drives","distance":0.2544},{"site":"vercel-docs","path":"/docs/sandbox/concepts","distance":0.2601},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-drive","distance":0.2646}],"related":[{"site":"vercel-docs","path":"/docs/sandbox/concepts/drives","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-drives","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/delete-a-drive","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/get-or-create-a-drive","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-duration-and-persistence","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/test-container-image-vercel-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-snapshots-for-faster-sandbox-startup","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/vercel-drop-vs-cloudflare-direct-upload","title":"Vercel Drop vs Cloudflare Direct Upload","summary":"Compare Vercel Drop and Cloudflare Direct Upload: framework builds, browser vs CLI workflows, file limits, Git integration paths, and when to choose each.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/drop"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-kb","path":"/kb/guide/bolt-vercel-drop"},{"site":"vercel-kb","path":"/kb/guide/claude-design"},{"site":"vercel-kb","path":"/kb/guide/google-stitch-vercel-drop"},{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-cloudflare"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-drop-vs-netlify-drop","distance":0.0823},{"site":"vercel-docs","path":"/docs/drop","distance":0.1668},{"site":"vercel-kb","path":"/kb/guide/claude-design","distance":0.2202},{"site":"vercel-docs","path":"/docs/deployments","distance":0.2335},{"site":"vercel-kb","path":"/kb/guide/webflow-vercel-drop","distance":0.2361}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-drop-vs-netlify-drop","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/webflow-vercel-drop","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/vercel-drop-vs-netlify-drop","title":"Vercel Drop vs Netlify Drop","summary":"Compare Vercel Drop and Netlify Drop for drag-and-drop deployment: framework builds, static sites, updates, size limits, and when to choose each one.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/drop"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-kb","path":"/kb/guide/bolt-vercel-drop"},{"site":"vercel-kb","path":"/kb/guide/google-stitch-vercel-drop"},{"site":"vercel-kb","path":"/kb/guide/nextjs-on-vercel-vs-netlify"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-drop-vs-cloudflare-direct-upload","distance":0.0823},{"site":"vercel-docs","path":"/docs/drop","distance":0.1496},{"site":"vercel-kb","path":"/kb/guide/bolt-vercel-drop","distance":0.2145},{"site":"vercel-kb","path":"/kb/guide/claude-design","distance":0.2246},{"site":"vercel-kb","path":"/kb/guide/webflow-vercel-drop","distance":0.2303}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-drop-vs-cloudflare-direct-upload","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/claude-design","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/webflow-vercel-drop","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/tanstack-start-on-vercel-vs-netlify","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-netlify-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/vercel-kubernetes-support","title":"Does Vercel support Kubernetes?","summary":"Vercel doesn't run Kubernetes clusters. Learn how Kubernetes workloads like Deployments, Ingress, ConfigMaps, and CronJobs map to Vercel Functions, container images, and Cron Jobs.","outbound":[{"site":"vercel-docs","path":"/docs/container-registry"},{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-docs","path":"/docs/functions/container-images"},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/oidc"},{"site":"vercel-docs","path":"/docs/services"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/workflows"},{"site":"vercel-kb","path":"/kb/guide/docker"},{"site":"vercel-kb","path":"/kb/guide/migrate-containers-from-aws-to-vercel"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/vercel-vs-kubernetes"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-vs-kubernetes","distance":0.0821},{"site":"vercel-kb","path":"/kb/guide/migrate-cloud-run-to-vercel","distance":0.1444},{"site":"vercel-kb","path":"/kb/guide/kubernetes-manifests-to-vercel-json","distance":0.1453},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments","distance":0.1681},{"site":"vercel-kb","path":"/kb/guide/migrate-fly-io-to-vercel","distance":0.1726}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-vs-kubernetes","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-cloud-run-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/kubernetes-manifests-to-vercel-json","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-fly-io-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/vercel-passport","title":"The Complete Guide to Vercel Passport","summary":"Vercel Passport protects deployments behind your own identity provider, such as Okta or Auth0. Learn how Passport works, what it costs, and how to set it up for a project or an entire team.","outbound":[{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/passport","distance":0.1077},{"site":"vercel-docs","path":"/docs/passport/set-up-identity-provider","distance":0.1254},{"site":"vercel-kb","path":"/kb/guide/vercel-passport-nextjs","distance":0.1467},{"site":"vercel-docs","path":"/docs/passport/read-identity","distance":0.1728},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments","distance":0.2011}],"related":[{"site":"vercel-docs","path":"/docs/passport","via":"neighbor"},{"site":"vercel-docs","path":"/docs/passport/set-up-identity-provider","via":"neighbor"},{"site":"vercel-docs","path":"/docs/passport/read-identity","via":"neighbor"},{"site":"vercel-docs","path":"/docs/passport/verify-identity","via":"neighbor"},{"site":"vercel-docs","path":"/docs/passport/token-claims","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-passport-nextjs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/complete-guide-authentication-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-password-protection-to-my-vercel-deployment","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/vercel-passport-nextjs","title":"How to identify and authorize visitors with the Vercel Passport token in Next.js","summary":"Read the Vercel Passport token server-side in a Next.js app to identify visitors with the external_sub claim and authorize access to your data.","outbound":[{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments"},{"site":"vercel-docs","path":"/docs/passport"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/passport/read-identity","distance":0.1386},{"site":"vercel-kb","path":"/kb/guide/vercel-passport","distance":0.1467},{"site":"vercel-docs","path":"/docs/passport","distance":0.1823},{"site":"vercel-docs","path":"/docs/passport/token-claims","distance":0.2122},{"site":"vercel-docs","path":"/docs/passport/verify-identity","distance":0.2173}],"related":[{"site":"vercel-docs","path":"/docs/passport/read-identity","via":"neighbor"},{"site":"vercel-docs","path":"/docs/passport/token-claims","via":"neighbor"},{"site":"vercel-docs","path":"/docs/passport/verify-identity","via":"neighbor"},{"site":"vercel-docs","path":"/docs/passport/set-up-identity-provider","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/tokens","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-passport","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/complete-guide-authentication-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/application-authentication-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/vercel-reverse-proxy-rewrites-external","title":"Can I use Vercel as a reverse proxy?","summary":"Learn how to use rewrites to proxy requests from Vercel to other deployments.","outbound":[{"site":"vercel-docs","path":"/docs/caching"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/cli/routes"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/incremental-migration"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/rest-api/project-routes/add-a-routing-rule"},{"site":"vercel-docs","path":"/docs/routing/project-routing-rules"},{"site":"vercel-docs","path":"/docs/routing/rewrites"},{"site":"vercel-docs","path":"/docs/vercel-firewall"}],"inbound":[{"site":"vercel-docs","path":"/docs/security/reverse-proxy"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/routing/rewrites","distance":0.1716},{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","distance":0.179},{"site":"vercel-docs","path":"/docs/security/reverse-proxy","distance":0.1974},{"site":"vercel-docs","path":"/docs/routing","distance":0.2118},{"site":"vercel-kb","path":"/kb/guide/can-i-use-a-proxy-on-top-of-my-vercel-deployment","distance":0.2572}],"related":[{"site":"vercel-docs","path":"/docs/security/reverse-proxy","via":"inbound"},{"site":"vercel-docs","path":"/docs/routing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects/configuration-redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/services/routing","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-i-use-a-proxy-on-top-of-my-vercel-deployment","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-increase-the-limit-of-redirects-or-use-dynamic-redirects-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/cloudflare-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-i-redirect-from-a-subdomain-to-a-subpath","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-duration-and-persistence","title":"How Vercel Sandbox duration and persistence work","summary":"Session duration and persistence are two separate controls in Vercel Sandbox. The timeout option keeps a single run alive for up to 24 hours, while snapshots and persistent sandboxes carry state across runs for long-running agents and pipelines.","outbound":[{"site":"vercel-docs","path":"/docs/sandbox/concepts/drives"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/snapshots"},{"site":"vercel-docs","path":"/docs/sandbox/pricing"},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference"},{"site":"vercel-kb","path":"/kb/guide/vercel-drives"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes","distance":0.1499},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","distance":0.1932},{"site":"vercel-docs","path":"/docs/sandbox/concepts","distance":0.1951},{"site":"vercel-docs","path":"/docs/sandbox/pricing","distance":0.2003},{"site":"vercel-docs","path":"/docs/sandbox/concepts/snapshots","distance":0.2178}],"related":[{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/run-commands-in-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-vs-codesandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-snapshots-for-faster-sandbox-startup","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/test-container-image-vercel-sandbox","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-vs-codesandbox","title":"Vercel Sandbox vs CodeSandbox","summary":"A detailed guide to Vercel Sandbox vs CodeSandbox: compute isolation, credential brokering, Active CPU billing, Docker support, persistent environments, and when to choose each product for your AI workloads.","outbound":[{"site":"vercel-docs","path":"/docs/sandbox"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-vs-e2b","distance":0.0658},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","distance":0.2175},{"site":"vercel-docs","path":"/docs/sandbox","distance":0.2189},{"site":"vercel-docs","path":"/docs/sandbox/pricing","distance":0.2258},{"site":"vercel-docs","path":"/docs/sandbox/concepts","distance":0.2268}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-vs-e2b","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/run-commands-in-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/test-container-image-vercel-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/running-ai-generated-code-sandbox","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-vs-e2b","title":"Vercel Sandbox vs E2B","summary":"A detailed guide to Vercel Sandbox vs E2B: compute lifecycle, security controls, code execution, pricing, and when to choose each sandbox for your AI agent workloads.","outbound":[{"site":"vercel-docs","path":"/docs/sandbox"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-vs-codesandbox","distance":0.0658},{"site":"vercel-docs","path":"/docs/sandbox/pricing","distance":0.2399},{"site":"vercel-docs","path":"/docs/sandbox","distance":0.2574},{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-duration-and-persistence","distance":0.2706},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","distance":0.2774}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-vs-codesandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-duration-and-persistence","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/run-herdr-coding-agents-isolated-vercel-sandboxes","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/test-container-image-vercel-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/vercel-services","title":"The Complete Guide to Vercel Services","summary":"Vercel Services let you deploy multiple frontends and backends in one project on a shared domain. Learn how to define services in vercel.json, route requests by path prefix, and connect services with generated environment variables.","outbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/runtimes/python"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/monorepos"},{"site":"vercel-docs","path":"/docs/plans"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"},{"site":"vercel-docs","path":"/docs/services/bindings"},{"site":"vercel-docs","path":"/docs/services/config-reference"},{"site":"vercel-docs","path":"/docs/services/pricing"},{"site":"vercel-docs","path":"/docs/services/routing"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/docker"},{"site":"vercel-kb","path":"/kb/guide/docker-compose-concepts-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/docker-on-vercel-vs-render"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments"},{"site":"vercel-kb","path":"/kb/guide/full-stack-preview-deployments-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/real-time-board-nextjs-fastapi"},{"site":"vercel-kb","path":"/kb/guide/vercel-docker-python-apps"},{"site":"vercel-kb","path":"/kb/guide/vercel-services-fluid-compute"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/services","distance":0.0927},{"site":"vercel-docs","path":"/docs/services/experimental","distance":0.1622},{"site":"vercel-kb","path":"/kb/guide/full-stack-preview-deployments-on-vercel","distance":0.1744},{"site":"vercel-kb","path":"/kb/guide/structure-your-application","distance":0.1893},{"site":"vercel-docs","path":"/docs/services/routing","distance":0.1924}],"related":[{"site":"vercel-docs","path":"/docs/services","via":"neighbor"},{"site":"vercel-docs","path":"/docs/services/experimental","via":"neighbor"},{"site":"vercel-docs","path":"/docs/build-output-api/services","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/full-stack-preview-deployments-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/structure-your-application","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-services-fluid-compute","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/vercel-services-fluid-compute","title":"How Vercel Services run on Fluid compute","summary":"The backends in a Vercel Services project run as Vercel Functions on Fluid compute by default. Learn how optimized concurrency, Active CPU pricing, and per-service memory and maxDuration settings make multi-backend projects efficient.","outbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/memory"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js"},{"site":"vercel-docs","path":"/docs/functions/runtimes/python"},{"site":"vercel-docs","path":"/docs/functions/websockets"},{"site":"vercel-docs","path":"/docs/services"},{"site":"vercel-docs","path":"/docs/services/config-reference"},{"site":"vercel-docs","path":"/docs/workflows"},{"site":"vercel-kb","path":"/kb/guide/vercel-services"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/fundamentals/what-is-compute","distance":0.1689},{"site":"vercel-docs","path":"/docs/fluid-compute","distance":0.1905},{"site":"vercel-kb","path":"/kb/guide/vercel-services","distance":0.1972},{"site":"vercel-kb","path":"/kb/guide/hosting-backend-apis","distance":0.1999},{"site":"vercel-docs","path":"/docs/frameworks/backend","distance":0.2022}],"related":[{"site":"vercel-docs","path":"/docs/fundamentals/what-is-compute","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/hosting-backend-apis","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/vercel-support-queue-time","title":"How long does it take to get a response from Vercel Support?","summary":"Information on how long it might take Vercel Support to respond to your request.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-get-vercel-support","distance":0.3304},{"site":"vercel-docs","path":"/docs/support-center","distance":0.3347},{"site":"vercel-kb","path":"/kb/guide/why-are-my-vercel-builds-queued","distance":0.359},{"site":"vercel-docs","path":"/docs/queues","distance":0.3763},{"site":"vercel-kb","path":"/kb/guide/investigate-latency-issues-and-slowness","distance":0.3801}],"related":[{"site":"vercel-docs","path":"/docs/support-center","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds/build-queues","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans/enterprise","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-get-vercel-support","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-are-my-vercel-builds-queued","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/investigate-latency-issues-and-slowness","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-get-good-answers-on-vercel-community","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/where-to-submit-feature-requests","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai","title":"Vercel vs Akamai","summary":"A detailed guide to Vercel vs Akamai: compute models, AI infrastructure, framework support, media streaming, CDN capabilities, and when to choose each platform for your project.","outbound":[{"site":"vercel-docs","path":"/docs/agent"},{"site":"vercel-docs","path":"/docs/agent/investigation"},{"site":"vercel-docs","path":"/docs/agent/pr-review"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/bot-management"},{"site":"vercel-docs","path":"/docs/botid"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/password-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/draft-mode"},{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/edit-mode"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/instant-rollback"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"},{"site":"vercel-docs","path":"/docs/rolling-releases"},{"site":"vercel-docs","path":"/docs/skew-protection"},{"site":"vercel-docs","path":"/docs/speed-insights"},{"site":"vercel-docs","path":"/docs/spend-management"},{"site":"vercel-docs","path":"/docs/tracing"},{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","distance":0.1356},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify","distance":0.1684},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank","distance":0.2047},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud","distance":0.2064},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway","distance":0.2065}],"related":[{"site":"vercel-docs","path":"/docs/security/compliance","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","title":"Vercel vs Fastly","summary":"A detailed guide to Vercel vs Fastly: full-stack application platform vs edge infrastructure layer, covering framework support, CDN caching, edge compute, integrated security, AI infrastructure, and when to choose each platform.","outbound":[{"site":"vercel-docs","path":"/docs/agent"},{"site":"vercel-docs","path":"/docs/agent/investigation"},{"site":"vercel-docs","path":"/docs/agent/pr-review"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/bot-management"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/draft-mode"},{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/edit-mode"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/instant-rollback"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"},{"site":"vercel-docs","path":"/docs/oidc"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"},{"site":"vercel-docs","path":"/docs/rolling-releases"},{"site":"vercel-docs","path":"/docs/routing-middleware/api"},{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/speed-insights"},{"site":"vercel-docs","path":"/docs/spend-management"},{"site":"vercel-docs","path":"/docs/tracing"},{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify","distance":0.0949},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway","distance":0.1261},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud","distance":0.1291},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai","distance":0.1356},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank","distance":0.1448}],"related":[{"site":"vercel-docs","path":"/docs/cdn","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/compliance","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/what-is-compute","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-kubernetes","title":"Vercel vs Kubernetes","summary":"Compare Vercel and Kubernetes on operational ownership, deployment workflow, scaling, and cost model to decide which platform fits your workload and team.","outbound":[{"site":"vercel-docs","path":"/docs/container-registry"},{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions/container-images"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/oidc"},{"site":"vercel-docs","path":"/docs/services"},{"site":"vercel-kb","path":"/kb/guide/fluid-compute-vs-cloud-cost"},{"site":"vercel-kb","path":"/kb/guide/kubernetes-manifests-to-vercel-json"},{"site":"vercel-kb","path":"/kb/guide/vercel-kubernetes-support"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-kubernetes-support","distance":0.0821},{"site":"vercel-kb","path":"/kb/guide/docker-on-vercel-vs-render","distance":0.175},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes","distance":0.1814},{"site":"vercel-kb","path":"/kb/guide/kubernetes-manifests-to-vercel-json","distance":0.1818},{"site":"vercel-kb","path":"/kb/guide/migrate-cloud-run-to-vercel","distance":0.1861}],"related":[{"site":"vercel-kb","path":"/kb/guide/docker-on-vercel-vs-render","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-cloud-run-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/tanstack-start-on-vercel-vs-cloudflare","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-fly-io-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/tanstack-start-on-vercel-vs-netlify","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify","title":"Vercel vs Netlify","summary":"A detailed guide to Vercel vs Netlify: runtimes, compute architecture, AI infrastructure, security, and when to choose each platform for your project.","outbound":[{"site":"vercel-docs","path":"/docs/agent"},{"site":"vercel-docs","path":"/docs/agent/investigation"},{"site":"vercel-docs","path":"/docs/agent/pr-review"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/bot-management"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/password-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/draft-mode"},{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/edit-mode"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/instant-rollback"},{"site":"vercel-docs","path":"/docs/oidc"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"},{"site":"vercel-docs","path":"/docs/rolling-releases"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/routing-middleware/api"},{"site":"vercel-docs","path":"/docs/skew-protection"},{"site":"vercel-docs","path":"/docs/speed-insights"},{"site":"vercel-docs","path":"/docs/spend-management"},{"site":"vercel-docs","path":"/docs/tracing"},{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/managed-rulesets"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-netlify"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","distance":0.0949},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud","distance":0.1435},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank","distance":0.1493},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway","distance":0.151},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-render","distance":0.1548}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-render","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank","title":"Vercel vs Northflank","summary":"A detailed guide to Vercel vs Northflank: Fluid compute, CDN and caching, security defaults, AI infrastructure, GPU compute, BYOC, and when to choose each platform for your project.","outbound":[{"site":"vercel-docs","path":"/docs/agent"},{"site":"vercel-docs","path":"/docs/agent/investigation"},{"site":"vercel-docs","path":"/docs/agent/pr-review"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/bot-management"},{"site":"vercel-docs","path":"/docs/botid"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/draft-mode"},{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/edit-mode"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/instant-rollback"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"},{"site":"vercel-docs","path":"/docs/oidc"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"},{"site":"vercel-docs","path":"/docs/rolling-releases"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/routing-middleware/api"},{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/speed-insights"},{"site":"vercel-docs","path":"/docs/spend-management"},{"site":"vercel-docs","path":"/docs/tracing"},{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","distance":0.1448},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify","distance":0.1493},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway","distance":0.1646},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud","distance":0.1789},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai","distance":0.2047}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/frontend","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway","title":"Vercel vs Railway","summary":"A detailed guide to Vercel vs Railway: serverless vs always-on containers, container images via Dockerfile.vercel, framework-defined infrastructure, AI infrastructure, global CDN, security, and when to choose each platform for your project.","outbound":[{"site":"vercel-docs","path":"/docs/agent"},{"site":"vercel-docs","path":"/docs/agent/investigation"},{"site":"vercel-docs","path":"/docs/agent/pr-review"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/bot-management"},{"site":"vercel-docs","path":"/docs/botid"},{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/draft-mode"},{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/edit-mode"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions/container-images"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/instant-rollback"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"},{"site":"vercel-docs","path":"/docs/oidc"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"},{"site":"vercel-docs","path":"/docs/rolling-releases"},{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/speed-insights"},{"site":"vercel-docs","path":"/docs/spend-management"},{"site":"vercel-docs","path":"/docs/tracing"},{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","distance":0.1261},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify","distance":0.151},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank","distance":0.1646},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud","distance":0.1672},{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-cloudflare","distance":0.2031}],"related":[{"site":"vercel-docs","path":"/docs/fundamentals/what-is-compute","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-northflank","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-cloudflare","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-render","title":"Vercel vs Render","summary":"A detailed guide to Vercel vs Render: compute models, AI infrastructure, Docker support, background workers, and when to choose each platform for your project.","outbound":[{"site":"vercel-docs","path":"/docs/agent"},{"site":"vercel-docs","path":"/docs/agent/investigation"},{"site":"vercel-docs","path":"/docs/agent/pr-review"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/bot-management"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/password-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/draft-mode"},{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/edit-mode"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"},{"site":"vercel-docs","path":"/docs/functions/runtimes"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/image-optimization"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/oidc"},{"site":"vercel-docs","path":"/docs/rolling-releases"},{"site":"vercel-docs","path":"/docs/routing-middleware/api"},{"site":"vercel-docs","path":"/docs/skew-protection"},{"site":"vercel-docs","path":"/docs/speed-insights"},{"site":"vercel-docs","path":"/docs/spend-management"},{"site":"vercel-docs","path":"/docs/tracing"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/docker-on-vercel-vs-render"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify","distance":0.1548},{"site":"vercel-kb","path":"/kb/guide/docker-on-vercel-vs-render","distance":0.1785},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud","distance":0.1843},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","distance":0.1852},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway","distance":0.2083}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/docker-on-vercel-vs-render","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-railway","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud","title":"Vercel vs Webflow Cloud","summary":"Compare Vercel and Webflow Cloud for deploying Next.js and Astro apps, including runtime, framework support, storage, pricing, and where your code runs.","outbound":[{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/marketplace-storage"},{"site":"vercel-docs","path":"/docs/queues"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/workflows"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-webflow-cloud","distance":0.0773},{"site":"vercel-kb","path":"/kb/guide/astro-on-vercel-vs-webflow-cloud","distance":0.1198},{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-cloudflare","distance":0.1233},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","distance":0.1291},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify","distance":0.1435}],"related":[{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-webflow-cloud","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/astro-on-vercel-vs-webflow-cloud","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/next-js-on-vercel-vs-cloudflare","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/vercel-waf-vs-cloudflare-waf","title":"Vercel WAF vs Cloudflare WAF","summary":"A detailed guide to Vercel WAF vs Cloudflare WAF: framework-aware rules, sub-300ms propagation, BotID bot detection, OWASP paranoia levels, leaked credential lookup, and when to choose each product for your web application.","outbound":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules"},{"site":"vercel-kb","path":"/kb/guide/cloudflare-with-vercel"},{"site":"vercel-kb","path":"/kb/guide/firewall-terraform-configuration"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","distance":0.2315},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud","distance":0.2386},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai","distance":0.2455},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify","distance":0.2712},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","distance":0.2744}],"related":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-fastly","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-webflow-cloud","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-akamai","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-vs-netlify","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/weather-api-with-express","title":"How to Build a Weather API with Express and Vercel","summary":"Provide real-time weather data to apps and websites with a single Express route.","outbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/backend/express"},{"site":"vercel-docs","path":"/docs/functions"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/weather-api-with-fastapi","distance":0.1014},{"site":"vercel-kb","path":"/kb/guide/weather-api-with-nitro","distance":0.1608},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel","distance":0.232},{"site":"vercel-docs","path":"/docs/frameworks/backend/express","distance":0.2395},{"site":"vercel-kb","path":"/kb/guide/mcp-server-with-weather-tool-express","distance":0.2444}],"related":[{"site":"vercel-kb","path":"/kb/guide/weather-api-with-fastapi","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/weather-api-with-nitro","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/quickstart","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/mcp-server-with-weather-tool-express","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-express-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/weather-api-with-fastapi","title":"How to Build a Weather API with FastAPI and Vercel","summary":"Provide real-time weather data to apps and websites with a single FastAPI route.","outbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi"},{"site":"vercel-docs","path":"/docs/functions"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/weather-api-with-express","distance":0.1014},{"site":"vercel-kb","path":"/kb/guide/weather-api-with-nitro","distance":0.1591},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","distance":0.2538},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi","distance":0.263},{"site":"vercel-kb","path":"/kb/guide/build-with-a-fastapi-starter-template","distance":0.2697}],"related":[{"site":"vercel-kb","path":"/kb/guide/weather-api-with-express","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/weather-api-with-nitro","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastify","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/flask","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-fastapi-starter-template","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/weather-api-with-nitro","title":"How to Build a Weather API with Nitro and Vercel","summary":"Provide real-time weather data to apps and websites with a single Nitro route, Vercel cache storage, and Observability.","outbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/observability"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/weather-api-with-fastapi","distance":0.1591},{"site":"vercel-kb","path":"/kb/guide/weather-api-with-express","distance":0.1608},{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel","distance":0.25},{"site":"vercel-docs","path":"/docs/frameworks/backend/nitro","distance":0.2868},{"site":"vercel-kb","path":"/kb/guide/build-ai-agent-weather-api","distance":0.2884}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/backend/nitro","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/weather-api-with-fastapi","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/weather-api-with-express","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/vite-with-nitro","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-ai-agent-weather-api","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-nitro-starter-template","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/webflow-vercel-drop","title":"Export your Webflow site and host it on Vercel","summary":"Learn how to export your Webflow site's code and host it on Vercel with Vercel Drop. Drag your .zip export into the browser for a live production URL with no Git or CLI setup.","outbound":[{"site":"vercel-docs","path":"/docs/botid/form-submissions"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments"},{"site":"vercel-docs","path":"/docs/drop"},{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-kb","path":"/kb/guide/bolt-vercel-drop"},{"site":"vercel-kb","path":"/kb/guide/google-stitch-vercel-drop"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/claude-design","distance":0.2287},{"site":"vercel-kb","path":"/kb/guide/vercel-drop-vs-netlify-drop","distance":0.2303},{"site":"vercel-kb","path":"/kb/guide/bolt-vercel-drop","distance":0.2344},{"site":"vercel-kb","path":"/kb/guide/vercel-drop-vs-cloudflare-direct-upload","distance":0.2361},{"site":"vercel-kb","path":"/kb/guide/google-stitch-vercel-drop","distance":0.2404}],"related":[{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/claude-design","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-drop-vs-netlify-drop","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-drop-vs-cloudflare-direct-upload","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-an-astro-app-from-webflow-cloud-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out","title":"How to stop Vercel Functions from timing out","summary":"Vercel Functions that time out usually trace back to a few causes. Learn how Fluid Compute fixes most of them and how to handle the edge cases.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions/after"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package"},{"site":"vercel-docs","path":"/docs/functions/runtimes/bun"},{"site":"vercel-docs","path":"/docs/functions/runtimes/edge"},{"site":"vercel-docs","path":"/docs/functions/runtimes/go"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js"},{"site":"vercel-docs","path":"/docs/functions/runtimes/python"},{"site":"vercel-docs","path":"/docs/functions/runtimes/ruby"},{"site":"vercel-docs","path":"/docs/functions/runtimes/rust"},{"site":"vercel-docs","path":"/docs/functions/runtimes/wasm"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions"},{"site":"vercel-docs","path":"/docs/observability"}],"inbound":[{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing"},{"site":"vercel-kb","path":"/kb/guide/serverless-functions-and-smtp"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/improve-function-cold-start-performance-on-vercel","distance":0.1783},{"site":"vercel-kb","path":"/kb/guide/how-do-i-lower-my-serverless-function-execution-time","distance":0.1901},{"site":"vercel-docs","path":"/docs/fundamentals/what-is-compute","distance":0.1928},{"site":"vercel-docs","path":"/docs/functions","distance":0.2079},{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel","distance":0.2114}],"related":[{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing","via":"inbound"},{"site":"vercel-docs","path":"/docs/fundamentals/what-is-compute","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fluid-compute","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/debug-slow-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/limitations","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/timeout-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-lower-my-serverless-function-execution-time","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-services-fluid-compute","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-function-250mb-limit","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/hosting-backend-apis","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-when-i-run-into-build-output-limits-with-next-js-on-vercel","title":"What can I do when I run into build output limits with Next.js on Vercel?","summary":"Learn how to work with build output limits for Next.js on Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-reduce-my-build-time-with-next-js-on-vercel","distance":0.2413},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","distance":0.3128},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-your-document-size-in-next-js","distance":0.3139},{"site":"vercel-kb","path":"/kb/guide/best-practices-for-hosting-videos-on-vercel-nextjs-mp4-gif","distance":0.3156},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-next.js-sitecore-jss","distance":0.3185}],"related":[{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/advanced-node-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/builds","via":"neighbor"},{"site":"vercel-docs","path":"/docs/build-output-api/features","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-reduce-my-build-time-with-next-js-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-your-document-size-in-next-js","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/best-practices-for-hosting-videos-on-vercel-nextjs-mp4-gif","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-prerender-my-application-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-running-another-cdn-on-top-of-vercel-is-not-recommended","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/what-is-a-large-language-model","title":"What is a Large Language Model \\(LLM\\)?","summary":"Learn what Large Language Models \\(LLMs\\) are, how they work, and how you can use them to generate UI, debug code, and integrate AI features into your web applications.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","distance":0.2539},{"site":"vercel-kb","path":"/kb/guide/what-is-an-llm-tool","distance":0.2552},{"site":"vercel-kb","path":"/kb/guide/chained-openai-llm-calls-vercel-inngest","distance":0.2588},{"site":"ai-sdk","path":"/docs/introduction","distance":0.2678},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","distance":0.2716}],"related":[{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","via":"neighbor"},{"site":"ai-sdk","path":"/docs/introduction","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/litellm","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/prompt-engineering","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/llamaindex","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-an-llm-tool","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/chained-openai-llm-calls-vercel-inngest","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/what-is-an-llm-tool","title":"What is an LLM Tool?","summary":"Learn what tools are, how tool calling works, and how you can use them to build agents.","outbound":[{"site":"ai-sdk","path":"/docs/foundations/tools"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.1818},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","distance":0.2107},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk","distance":0.2443},{"site":"vercel-kb","path":"/kb/guide/what-is-a-large-language-model","distance":0.2552},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","distance":0.2696}],"related":[{"site":"ai-sdk","path":"/docs/getting-started/nodejs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/tool-calling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/overview","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/tool-calling","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/tool-calling","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/manual-agent-loop","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/building-agents","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","via":"neighbor"},{"site":"eve","path":"/docs/tools","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/examples/ai-tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-a-large-language-model","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/what-is-rag","title":"What is Retrieval Augmented Generation \\(RAG\\)","summary":"Learn how RAG enhances AI applications by providing Large Language Models \\(LLMs\\) with relevant context, enabling accurate responses to queries about proprietary data, recent information, and domain-specific knowledge.","outbound":[{"site":"ai-sdk","path":"/cookbook/guides/rag-chatbot"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/building-ai-chat-app-with-rag-and-citations-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/rag-chatbot-production-architecture-on-vercel"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/rag-chatbot-production-architecture-on-vercel","distance":0.2528},{"site":"ai-sdk","path":"/cookbook/node/retrieval-augmented-generation","distance":0.2978},{"site":"vercel-kb","path":"/kb/guide/nextjs-langchain-vercel-ai","distance":0.3302},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","distance":0.3302},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","distance":0.3358}],"related":[{"site":"ai-sdk","path":"/cookbook/node/retrieval-augmented-generation","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/slackbot","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/rag-chatbot-production-architecture-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/nextjs-langchain-vercel-ai","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-a-large-language-model","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/what-is-streaming","title":"Streaming in web applications","summary":"Learn how streaming works in web applications. Explore benefits, use cases, and implementation details with Vercel Functions and the Web Streams API","outbound":[{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions"}],"inbound":[{"site":"vercel-docs","path":"/docs/functions/functions-api-reference"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/functions/streaming-functions","distance":0.1188},{"site":"vercel-kb","path":"/kb/guide/processing-data-chunks","distance":0.1851},{"site":"vercel-kb","path":"/kb/guide/streaming-from-llm","distance":0.1953},{"site":"vercel-kb","path":"/kb/guide/handling-backpressure","distance":0.2221},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/streaming","distance":0.2624}],"related":[{"site":"vercel-docs","path":"/docs/functions/functions-api-reference","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/streaming","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/streaming","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/streaming","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/streaming","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/processing-data-chunks","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/streaming-from-llm","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/handling-backpressure","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-streaming-affect-seo","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/publish-and-subscribe-to-realtime-data-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/what-is-workflowagent","title":"What is WorkflowAgent?","summary":"Build durable AI agents with WorkflowAgent: tool calls that retry as workflow steps, suspend for human approval, and resume after timeouts or page refreshes.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/agent-approval-workflow-stack-guide"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/agents/workflow-agent","distance":0.0901},{"site":"vercel-kb","path":"/kb/guide/durableagent-to-workflowagent","distance":0.114},{"site":"workflow","path":"/docs/ai","distance":0.1749},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow","distance":0.2345},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","distance":0.2409}],"related":[{"site":"ai-sdk","path":"/docs/agents/workflow-agent","via":"neighbor"},{"site":"workflow","path":"/docs/ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow","via":"neighbor"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-aws-agentcore","via":"neighbor"},{"site":"eve","path":"/docs/concepts/built-in-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-agent","via":"neighbor"},{"site":"workflow","path":"/docs/ai/defining-tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/durableagent-to-workflowagent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/building-agents","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-a-slack-agent-with-durable-workflows","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/agent-approval-workflow-stack-guide","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/what-s-vercel-s-policy-regarding-load-testing-deployments","title":"What is Vercel's policy regarding load testing deployments?","summary":"Learn about Vercel's policies regarding load tests.","outbound":[{"site":"vercel-docs","path":"/docs/cli"}],"inbound":[{"site":"vercel-docs","path":"/docs/production-checklist"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-effectively-load-test-your-vercel-application","distance":0.1825},{"site":"vercel-kb","path":"/kb/guide/penetration-testing-on-vercel","distance":0.2521},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing","distance":0.294},{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel","distance":0.2943},{"site":"vercel-docs","path":"/docs/functions/limitations","distance":0.2974}],"related":[{"site":"vercel-docs","path":"/docs/production-checklist","via":"inbound"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/limitations","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/limits/fair-use-guidelines","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-effectively-load-test-your-vercel-application","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/penetration-testing-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-reduce-my-serverless-execution-usage-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/hosting-backend-apis","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ensuring-safe-and-effective-infrastructure-testing","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/what-should-i-do-if-i-receive-a-503-error-on-vercel","title":"What should I do if I receive a 503 error on Vercel?","summary":"Learn about when Serverless Functions return a 503 status code and what can be done about them.","outbound":[{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"}],"inbound":[{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-debug-a-502-error","distance":0.2481},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out","distance":0.2804},{"site":"vercel-kb","path":"/kb/guide/how-do-i-lower-my-serverless-function-execution-time","distance":0.2859},{"site":"vercel-docs","path":"/docs/functions/concurrency-scaling","distance":0.2864},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing","distance":0.3087}],"related":[{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing","via":"inbound"},{"site":"vercel-docs","path":"/docs/functions/concurrency-scaling","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/limitations","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/debug-slow-functions","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-a-502-error","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-lower-my-serverless-function-execution-time","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-s-vercel-s-policy-regarding-load-testing-deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-function-250mb-limit","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/where-can-i-get-copies-of-my-vercel-invoices","title":"Where can I get copies of my Vercel Invoices?","summary":"Learn about how you can get access to your Vercel invoices.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-invoice","distance":0.2982},{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice","distance":0.3123},{"site":"vercel-docs","path":"/docs/integrations/create-integration/billing","distance":0.3393},{"site":"vercel-docs","path":"/docs/plans/enterprise/billing","distance":0.3586},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-invoice","distance":0.3617}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/marketplace/get-invoice","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/billing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans/enterprise/billing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-invoice","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/export-domain-dns-records-via-api","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/where-to-submit-feature-requests","title":"Where can I submit Vercel feature requests?","summary":"Information on how to make feature requests for the Vercel platform.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-get-vercel-support","distance":0.2893},{"site":"vercel-kb","path":"/kb/guide/how-to-get-good-answers-on-vercel-community","distance":0.3377},{"site":"vercel-kb","path":"/kb/guide/how-to-contribute-to-the-vercel-community","distance":0.3761},{"site":"vercel-docs","path":"/docs/support-center","distance":0.3865},{"site":"vercel-docs","path":"/docs/comments","distance":0.3968}],"related":[{"site":"vercel-docs","path":"/docs/support-center","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/infrastructure","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments/how-comments-work","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments/integrations","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-get-vercel-support","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-get-good-answers-on-vercel-community","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-contribute-to-the-vercel-community","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-support-queue-time","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-can-i-not-signup","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/why-are-my-build-logs-loading-infinitely-and-not-showing-up","title":"Why are my Build Logs loading infinitely and not showing up?","summary":"How to mitigate the issue when build logs aren't showing up?","outbound":[],"inbound":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-resolve-a-module-not-found-error"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/deployments/logs","distance":0.3324},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","distance":0.3506},{"site":"vercel-kb","path":"/kb/guide/fixing-deployments-that-hang-after-the-build-step-succeeds","distance":0.3578},{"site":"vercel-kb","path":"/kb/guide/resolve-err-ssl-protocol-error-with-vercel","distance":0.3738},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-cross-origin-errors-neterr-blocked-by-orb-with-deployment-protection","distance":0.3739}],"related":[{"site":"vercel-docs","path":"/docs/deployments/logs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/troubleshooting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/troubleshooting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/logs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/fixing-deployments-that-hang-after-the-build-step-succeeds","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/resolve-err-ssl-protocol-error-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-cross-origin-errors-neterr-blocked-by-orb-with-deployment-protection","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-resolve-ip-blocking-issues","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-are-my-vercel-builds-queued","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/why-are-my-vercel-builds-queued","title":"Why are my Vercel builds queued?","summary":"Learn about why your Vercel builds may be getting queued and how to resolve this.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/builds/build-queues","distance":0.1244},{"site":"vercel-docs","path":"/docs/builds/managing-builds","distance":0.1879},{"site":"vercel-docs","path":"/docs/builds","distance":0.2315},{"site":"vercel-kb","path":"/kb/guide/why-aren-t-commits-triggering-deployments-on-vercel","distance":0.2441},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","distance":0.2613}],"related":[{"site":"vercel-docs","path":"/docs/builds/build-queues","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds/managing-builds","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","via":"neighbor"},{"site":"vercel-docs","path":"/docs/monorepos/monorepo-faq","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-aren-t-commits-triggering-deployments-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-vercel-cli-for-custom-workflows","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/why-aren-t-commits-triggering-deployments-on-vercel","title":"Why aren't commits triggering deployments on Vercel?","summary":"Commits not triggering deployments on Vercel? Walk the diagnostic checklist covering authentication, commit author access, webhooks, and build filters.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-github-actions-with-vercel","distance":0.2066},{"site":"vercel-docs","path":"/docs/git/vercel-for-github","distance":0.2141},{"site":"vercel-docs","path":"/docs/git","distance":0.235},{"site":"vercel-kb","path":"/kb/guide/why-are-my-vercel-builds-queued","distance":0.2441},{"site":"vercel-docs","path":"/docs/builds","distance":0.2461}],"related":[{"site":"vercel-docs","path":"/docs/git/vercel-for-github","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-github-actions-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/why-can-i-not-signup","title":"Why am I unable to login or signup to the Vercel platform?","summary":"Information on what to do if you are experiencing issues logging in or signing up to the Vercel platform.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/troubleshooting","distance":0.2693},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel","distance":0.2903},{"site":"vercel-kb","path":"/kb/guide/why-is-vercel-cli-asking-me-to-log-in","distance":0.3135},{"site":"vercel-docs","path":"/docs/cli/login","distance":0.3165},{"site":"vercel-kb","path":"/kb/guide/how-to-get-vercel-support","distance":0.3278}],"related":[{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/troubleshooting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/login","via":"neighbor"},{"site":"vercel-docs","path":"/docs/two-factor-authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/manage-from-dashboard","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-is-vercel-cli-asking-me-to-log-in","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-get-vercel-support","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-delete-my-vercel-account","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/resolve-err-ssl-protocol-error-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-get-notified-when-my-vercel-deployment-fails","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/why-do-my-vercel-deployments-have-multiple-domains","title":"Why do my Vercel deployments have multiple domains?","summary":"Learn about why Vercel auto generates URLs for your deployments.","outbound":[{"site":"vercel-docs","path":"/docs/git"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/deployments/generated-urls","distance":0.1986},{"site":"vercel-docs","path":"/docs/deployments/preview-deployment-suffix","distance":0.2051},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting","distance":0.2199},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","distance":0.222},{"site":"vercel-docs","path":"/docs/git","distance":0.2309}],"related":[{"site":"vercel-docs","path":"/docs/deployments/generated-urls","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/preview-deployment-suffix","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"v0","path":"/docs/custom-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/set-up-a-staging-environment-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/why-does-my-serverless-function-work-locally-but-not-when-deployed","title":"Why does my Serverless Function work locally but not when deployed?","summary":"Learn how to troubleshoot your Serverless Functions.","outbound":[{"site":"vercel-docs","path":"/docs/functions"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-debug-404-errors","distance":0.2793},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-a-502-error","distance":0.2803},{"site":"vercel-kb","path":"/kb/guide/npm-run-start-not-working","distance":0.3017},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-inconsistent-logs-in-vercel-functions","distance":0.3255},{"site":"vercel-kb","path":"/kb/guide/using-express-with-vercel","distance":0.3261}],"related":[{"site":"vercel-docs","path":"/docs/functions/debug-slow-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-404-errors","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-a-502-error","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/npm-run-start-not-working","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-inconsistent-logs-in-vercel-functions","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-express-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/why-has-email-stopped-working","title":"Why am I no longer receiving email after adding my domain to Vercel?","summary":"Fix email that stopped working after adding your domain to Vercel, with a concrete MX record table and the DNS preset click path.","outbound":[{"site":"vercel-docs","path":"/docs/domains"},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records"},{"site":"vercel-docs","path":"/docs/domains/working-with-dns"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records"}],"inbound":[{"site":"vercel-docs","path":"/docs/domains/troubleshooting"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/using-email-with-your-vercel-domain","distance":0.1717},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","distance":0.1844},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records","distance":0.2139},{"site":"vercel-docs","path":"/docs/domains/working-with-dns","distance":0.2411},{"site":"vercel-docs","path":"/docs/domains/troubleshooting","distance":0.2448}],"related":[{"site":"vercel-docs","path":"/docs/domains/troubleshooting","via":"inbound"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-nameservers","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-email-with-your-vercel-domain","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/zero-downtime-migration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-vercel-domain-unverified","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/a-record-and-caa-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-long-to-update-dns-records","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/why-innovators-are-going-headless","title":"Why innovators are going headless","summary":"How headless architecture helps enterprise, ecommerce, and content teams move faster, scale reliably, and future-proof their tech stack.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/using-a-headless-cms-with-vercel","distance":0.2776},{"site":"vercel-shop","path":"/docs/why-use-this","distance":0.3041},{"site":"vercel-kb","path":"/kb/guide/integrating-next-js-and-contentful-for-your-headless-cms","distance":0.3167},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes","distance":0.3267},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-ruby-on-rails-applications","distance":0.3267}],"related":[{"site":"vercel-shop","path":"/docs/why-use-this","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/incremental-migration","via":"neighbor"},{"site":"vercel-shop","path":"/docs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-a-headless-cms-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-ruby-on-rails-applications","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-plan-a-successful-composable-commerce-migration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/incremental-migrations-with-microfrontends","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/why-is-my-account-deployment-blocked","title":"Why has my account or deployment been paused?","summary":"Learn why a Vercel account or deployment gets paused, from budget and usage limits to policy violations, and how to resume it.","outbound":[{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/limits/fair-use-guidelines"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/plans/hobby"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"},{"site":"vercel-docs","path":"/docs/spend-management"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/spend-management","distance":0.2659},{"site":"vercel-docs","path":"/docs/projects/managing-projects","distance":0.2798},{"site":"vercel-docs","path":"/docs/plans","distance":0.2835},{"site":"vercel-kb","path":"/kb/guide/why-aren-t-commits-triggering-deployments-on-vercel","distance":0.3054},{"site":"vercel-docs","path":"/docs/limits/fair-use-guidelines","distance":0.306}],"related":[{"site":"vercel-docs","path":"/docs/projects/managing-projects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/pause-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/unpause-a-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-aren-t-commits-triggering-deployments-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/pause-your-project","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/why-is-my-deployed-project-giving-404","title":"Why is my deployed project giving a 404?","summary":"Vercel 404 errors often hit healthy builds when routing metadata does not match the request path. Learn the causes and how to diagnose each one.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-debug-404-errors","distance":0.2089},{"site":"vercel-kb","path":"/kb/guide/a-record-and-caa-with-vercel","distance":0.2446},{"site":"vercel-kb","path":"/kb/guide/debug-routing-on-vercel","distance":0.2687},{"site":"vercel-kb","path":"/kb/guide/how-to-enable-cors","distance":0.2692},{"site":"vercel-docs","path":"/docs/microfrontends/troubleshooting","distance":0.2888}],"related":[{"site":"vercel-docs","path":"/docs/microfrontends/troubleshooting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/routing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/troubleshooting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/incremental-migration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-404-errors","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/a-record-and-caa-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/debug-routing-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-enable-cors","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-cross-origin-errors-neterr-blocked-by-orb-with-deployment-protection","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/why-is-my-vercel-deployment-url-being-shortened","title":"Why is my Vercel Deployment URL being shortened?","summary":"Information on why a Vercel Deployment URL may be shortened.","outbound":[{"site":"vercel-docs","path":"/docs/deployments/generated-urls"}],"inbound":[{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/limits"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/deployments/generated-urls","distance":0.2236},{"site":"vercel-kb","path":"/kb/guide/why-do-my-vercel-deployments-have-multiple-domains","distance":0.2766},{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","distance":0.3124},{"site":"vercel-docs","path":"/docs/deployments/preview-deployment-suffix","distance":0.3131},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting","distance":0.3252}],"related":[{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","via":"inbound"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/limits","via":"inbound"},{"site":"vercel-docs","path":"/docs/deployments/preview-deployment-suffix","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-do-my-vercel-deployments-have-multiple-domains","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-running-another-cdn-on-top-of-vercel-is-not-recommended","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-debug-404-errors","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/why-is-my-vercel-domain-unverified","title":"Why is my Vercel domain not verified?","summary":"Information on why a Vercel domain may not be verified and how to verify it.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-long-to-update-dns-records","distance":0.1645},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","distance":0.2024},{"site":"vercel-docs","path":"/docs/domains/troubleshooting","distance":0.2121},{"site":"vercel-docs","path":"/docs/domains/working-with-dns","distance":0.2168},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","distance":0.2272}],"related":[{"site":"vercel-docs","path":"/docs/domains/troubleshooting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-dns","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-long-to-update-dns-records","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/domain-not-generating-ssl-certificate","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-to-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/why-is-vercel-cli-asking-me-to-log-in","title":"Why is Vercel CLI asking me to log in? ","summary":"Information on why you may be getting prompted to log in to Vercel CLI.","outbound":[{"site":"vercel-docs","path":"/docs/cli"}],"inbound":[{"site":"vercel-docs","path":"/docs/cli/login"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/login","distance":0.295},{"site":"vercel-docs","path":"/docs/cli/tokens","distance":0.3119},{"site":"vercel-kb","path":"/kb/guide/why-can-i-not-signup","distance":0.3135},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-a-vercel-api-access-token","distance":0.3327},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","distance":0.346}],"related":[{"site":"vercel-docs","path":"/docs/cli/login","via":"inbound"},{"site":"vercel-docs","path":"/docs/cli/tokens","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/accounts/access-tokens","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-can-i-not-signup","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/why-running-another-cdn-on-top-of-vercel-is-not-recommended","title":"Why is running another CDN on top of Vercel not recommended?","summary":"Information about possible strategies when using a CDN on top of Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-troubleshoot-stale-content-returned-from-the-edge-network-when-using-an-external-proxy-or-cdn","distance":0.2014},{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","distance":0.2646},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works","distance":0.2662},{"site":"vercel-kb","path":"/kb/guide/cloudflare-with-vercel","distance":0.2727},{"site":"vercel-docs","path":"/docs/cdn","distance":0.2736}],"related":[{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/reverse-proxy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/debug-cache-issues","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-troubleshoot-stale-content-returned-from-the-edge-network-when-using-an-external-proxy-or-cdn","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/cloudflare-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-i-use-a-proxy-on-top-of-my-vercel-deployment","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/avoiding-duplicate-content-with-vercel-app-urls","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/why-site-performance-matters","title":"Why site performance matters","summary":"How site speed, Core Web Vitals, and SEO combine to drive user retention, conversion rates, and revenue growth.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/speed-insights/metrics","distance":0.2654},{"site":"vercel-kb","path":"/kb/guide/how-to-improve-core-web-vitals","distance":0.2796},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-next.js-sitecore-jss","distance":0.2928},{"site":"vercel-docs","path":"/docs/speed-insights","distance":0.314},{"site":"vercel-docs","path":"/docs/pricing/how-does-vercel-calculate-usage-of-resources","distance":0.3481}],"related":[{"site":"vercel-docs","path":"/docs/speed-insights/metrics","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/how-does-vercel-calculate-usage-of-resources","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/privacy-policy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-improve-core-web-vitals","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/avoiding-duplicate-content-with-vercel-app-urls","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/first-input-delay-vs-interaction-to-next-paint","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ab-testing-on-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/why-use-domain-nameservers-method-wildcard-domains","title":"Why must we use the Domain Nameservers method for Wildcard Domains on Vercel?","summary":"Learn why the domain Nameservers method is needed to set up a wildcard domain as custom domain.","outbound":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains"}],"inbound":[{"site":"vercel-docs","path":"/docs/domains/troubleshooting"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/wildcard-domain-without-vercel-nameservers","distance":0.1812},{"site":"vercel-docs","path":"/docs/domains/working-with-nameservers","distance":0.2654},{"site":"vercel-docs","path":"/docs/domains/troubleshooting","distance":0.2871},{"site":"vercel-kb","path":"/kb/guide/does-using-vercel-s-nameserver-s-lock-you-in","distance":0.2881},{"site":"vercel-kb","path":"/kb/guide/why-is-my-vercel-domain-unverified","distance":0.2912}],"related":[{"site":"vercel-docs","path":"/docs/domains/troubleshooting","via":"inbound"},{"site":"vercel-docs","path":"/docs/domains/working-with-nameservers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-ssl","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/wildcard-domain-without-vercel-nameservers","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-using-vercel-s-nameserver-s-lock-you-in","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-vercel-domain-unverified","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-change-my-nameservers-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/cloudflare-with-vercel","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/wildcard-domain-without-vercel-nameservers","title":"Can I use wildcard domains without switching to Vercel Nameservers?","summary":"Information on how to use wildcard domains without Vercel Nameservers","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/preview-deployment-suffix-without-vercel-nameservers","distance":0.1766},{"site":"vercel-kb","path":"/kb/guide/why-use-domain-nameservers-method-wildcard-domains","distance":0.1812},{"site":"vercel-docs","path":"/docs/domains/troubleshooting","distance":0.2446},{"site":"vercel-kb","path":"/kb/guide/a-record-and-caa-with-vercel","distance":0.2511},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","distance":0.2818}],"related":[{"site":"vercel-docs","path":"/docs/domains/troubleshooting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-nameservers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/preview-deployment-suffix-without-vercel-nameservers","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/a-record-and-caa-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/cloudflare-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/domain-not-generating-ssl-certificate","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-add-a-custom-domain-to-my-vercel-project","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/wordpress-with-vercel","title":"Using Headless WordPress with Next.js and Vercel","summary":"Learn how to use Headless WordPress with your Next.js application and deploy it to Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/frameworks"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/integrating-next-js-and-contentful-for-your-headless-cms","distance":0.2167},{"site":"vercel-kb","path":"/kb/guide/using-a-headless-cms-with-vercel","distance":0.2296},{"site":"vercel-kb","path":"/kb/guide/integrate-vercel-and-contentstack","distance":0.2682},{"site":"vercel-kb","path":"/kb/guide/how-to-integrate-nextjs-with-prismic","distance":0.272},{"site":"vercel-docs","path":"/docs/integrations/cms/sitecore","distance":0.2853}],"related":[{"site":"vercel-docs","path":"/docs/integrations/cms/sitecore","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/contentful","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/integrating-next-js-and-contentful-for-your-headless-cms","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-a-headless-cms-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/integrate-vercel-and-contentstack","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-integrate-nextjs-with-prismic","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-ruby-on-rails-applications","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/zero-downtime-migration","title":"How can I migrate a site to Vercel without downtime?","summary":"Information about how to assign a Vercel deployment to a domain without downtime.","outbound":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain"}],"inbound":[{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes"},{"site":"vercel-kb","path":"/kb/guide/how-to-migrate-from-fastly-to-vercel-with-zero-downtime"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/zero-downtime-migration-for-dns","distance":0.1141},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","distance":0.1655},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/transfer-your-domain","distance":0.1874},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records","distance":0.1967},{"site":"vercel-kb","path":"/kb/guide/how-to-move-a-domain-between-vercel-projects-with-zero-downtime","distance":0.2109}],"related":[{"site":"vercel-docs","path":"/docs/integrations/external-platforms/kubernetes","via":"inbound"},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/transfer-your-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/pre-generating-ssl-certs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/troubleshooting","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/zero-downtime-migration-for-dns","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-move-a-domain-between-vercel-projects-with-zero-downtime","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-move-a-domain-to-a-team","via":"neighbor"}]},{"site":"vercel-kb","path":"/kb/guide/zero-downtime-migration-for-dns","title":"How can I do a \"Zero Downtime\" DNS migration to Vercel?","summary":"Information about how to migrate your DNS records to Vercel without downtime.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/production-checklist"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/zero-downtime-migration","distance":0.1141},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","distance":0.2059},{"site":"vercel-kb","path":"/kb/guide/how-to-move-a-domain-between-vercel-projects-with-zero-downtime","distance":0.2112},{"site":"vercel-kb","path":"/kb/guide/how-long-to-update-dns-records","distance":0.2311},{"site":"vercel-docs","path":"/docs/domains/working-with-dns","distance":0.234}],"related":[{"site":"vercel-docs","path":"/docs/production-checklist","via":"inbound"},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-dns","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/zero-downtime-migration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/transfer-your-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-nameservers","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-move-a-domain-between-vercel-projects-with-zero-downtime","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-long-to-update-dns-records","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-transfer-my-domain-to-vercel","via":"neighbor"}]},{"site":"vercel-shop","path":"/docs","title":"Introduction","summary":"Learn about the Vercel Shop template and what it offers.","outbound":[{"site":"vercel-shop","path":"/docs/anatomy/aeo-geo"},{"site":"vercel-shop","path":"/docs/anatomy/agent"},{"site":"vercel-shop","path":"/docs/anatomy/authentication"},{"site":"vercel-shop","path":"/docs/anatomy/cart"},{"site":"vercel-shop","path":"/docs/anatomy/navigation"},{"site":"vercel-shop","path":"/docs/anatomy/pages/content"},{"site":"vercel-shop","path":"/docs/anatomy/pages/pdp"},{"site":"vercel-shop","path":"/docs/anatomy/pages/plp"},{"site":"vercel-shop","path":"/docs/anatomy/proxy"},{"site":"vercel-shop","path":"/docs/anatomy/webhooks"},{"site":"vercel-shop","path":"/docs/getting-started"},{"site":"vercel-shop","path":"/docs/getting-started/extending-with-agents"},{"site":"vercel-shop","path":"/docs/skills/enable-analytics"},{"site":"vercel-shop","path":"/docs/skills/enable-shopify-markets"},{"site":"vercel-shop","path":"/docs/why-use-this"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-shop","path":"/docs/why-use-this","distance":0.12},{"site":"vercel-shop","path":"/docs/getting-started/extending-with-agents","distance":0.1329},{"site":"vercel-shop","path":"/docs/skills/build-shop","distance":0.1559},{"site":"vercel-shop","path":"/docs/reference/troubleshooting","distance":0.163},{"site":"vercel-shop","path":"/docs/getting-started","distance":0.178}],"related":[{"site":"v0","path":"/docs/shopify","via":"neighbor"}]},{"site":"vercel-shop","path":"/docs/anatomy/aeo-geo","title":"AEO & GEO","summary":"How the storefront makes itself legible to AI answer engines and generative search, with built-in content negotiation, structured data, and discovery surfaces.","outbound":[{"site":"vercel-shop","path":"/docs/anatomy/sitemap"}],"inbound":[{"site":"vercel-shop","path":"/docs"}],"requires":[],"neighbors":[{"site":"vercel-shop","path":"/docs/anatomy/pages/content","distance":0.2226},{"site":"vercel-kb","path":"/kb/guide/agent-readability-spec","distance":0.2378},{"site":"vercel-kb","path":"/kb/guide/make-your-documentation-readable-by-ai-agents","distance":0.2476},{"site":"vercel-shop","path":"/docs/anatomy/agent","distance":0.2645},{"site":"vercel-shop","path":"/docs","distance":0.265}],"related":[{"site":"vercel-kb","path":"/kb/guide/agent-readability-spec","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/make-your-documentation-readable-by-ai-agents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/markdown-access","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/pages/content","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/agent","via":"neighbor"},{"site":"vercel-shop","path":"/docs/skills/enable-shopify-markets","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/storefront-api","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started/extending-with-agents","via":"neighbor"}]},{"site":"vercel-shop","path":"/docs/anatomy/agent","title":"Agent","summary":"The shopping assistant - AI-powered product discovery, cart management, and generative UI.","outbound":[{"site":"vercel-docs","path":"/docs/botid"},{"site":"vercel-shop","path":"/docs/reference/shop-config"}],"inbound":[{"site":"vercel-shop","path":"/docs"}],"requires":[{"site":"vercel-shop","path":"/docs/getting-started"}],"neighbors":[{"site":"vercel-shop","path":"/docs/getting-started/extending-with-agents","distance":0.181},{"site":"vercel-shop","path":"/docs","distance":0.2069},{"site":"vercel-shop","path":"/docs/anatomy/cart","distance":0.2376},{"site":"eve","path":"/docs/agent-config","distance":0.2518},{"site":"vercel-shop","path":"/docs/reference/troubleshooting","distance":0.2529}],"related":[{"site":"eve","path":"/docs/agent-config","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"eve","path":"/docs/reference/typescript-api","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/ship-it","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/overview","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started/extending-with-agents","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started","via":"requires"},{"site":"vercel-shop","path":"/docs/anatomy/cart","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/troubleshooting","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/aeo-geo","via":"neighbor"}]},{"site":"vercel-shop","path":"/docs/anatomy/authentication","title":"Authentication","summary":"Built-in customer authentication with Hydrogen and Shopify Customer Account API OIDC.","outbound":[{"site":"vercel-shop","path":"/docs/anatomy/proxy"},{"site":"vercel-shop","path":"/docs/reference/env-vars"}],"inbound":[{"site":"vercel-shop","path":"/docs"},{"site":"vercel-shop","path":"/docs/anatomy/proxy"},{"site":"vercel-shop","path":"/docs/reference/storefront-api-permissions"}],"requires":[],"neighbors":[{"site":"vercel-shop","path":"/docs/reference/shop-config","distance":0.2394},{"site":"vercel-shop","path":"/docs/reference/storefront-api","distance":0.2482},{"site":"vercel-shop","path":"/docs/anatomy/cart","distance":0.2689},{"site":"vercel-shop","path":"/docs","distance":0.2913},{"site":"vercel-shop","path":"/docs/shopify","distance":0.3053}],"related":[{"site":"v0","path":"/docs/shopify","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/shop-config","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/storefront-api","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/cart","via":"neighbor"},{"site":"vercel-shop","path":"/docs/shopify","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/troubleshooting","via":"neighbor"}]},{"site":"vercel-shop","path":"/docs/anatomy/cart","title":"Cart","summary":"The cart system - Hydrogen cart handlers, optimistic store, server actions, and Shopify integration.","outbound":[],"inbound":[{"site":"vercel-shop","path":"/docs"},{"site":"vercel-shop","path":"/docs/shopify"}],"requires":[],"neighbors":[{"site":"vercel-shop","path":"/docs/anatomy/agent","distance":0.2376},{"site":"vercel-shop","path":"/docs/reference/storefront-api","distance":0.2456},{"site":"vercel-shop","path":"/docs","distance":0.2477},{"site":"vercel-shop","path":"/docs/anatomy/authentication","distance":0.2689},{"site":"vercel-shop","path":"/docs/reference/shop-config","distance":0.2697}],"related":[{"site":"vercel-shop","path":"/docs/anatomy/agent","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/storefront-api","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/authentication","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/shop-config","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/navigation","via":"neighbor"}]},{"site":"vercel-shop","path":"/docs/anatomy/footer","title":"Footer","summary":"The storefront footer - copyright, Shopify policy links, social links, and optional menu columns.","outbound":[{"site":"vercel-shop","path":"/docs/skills/enable-shopify-menus"}],"inbound":[{"site":"vercel-shop","path":"/docs/anatomy/navigation"},{"site":"vercel-shop","path":"/docs/shopify"}],"requires":[],"neighbors":[{"site":"vercel-shop","path":"/docs/anatomy/pages/content","distance":0.2969},{"site":"vercel-shop","path":"/docs/anatomy/navigation","distance":0.3058},{"site":"vercel-shop","path":"/docs/skills/enable-shopify-menus","distance":0.3248},{"site":"vercel-shop","path":"/docs/reference/shop-config","distance":0.3364},{"site":"vercel-shop","path":"/docs/anatomy/pages/home","distance":0.3374}],"related":[{"site":"vercel-shop","path":"/docs/anatomy/pages/content","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/navigation","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/shop-config","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/pages/home","via":"neighbor"},{"site":"vercel-shop","path":"/docs/shopify","via":"neighbor"}]},{"site":"vercel-shop","path":"/docs/anatomy/navigation","title":"Navigation","summary":"The storefront navigation system - navbar, quick links, mobile bottom bar, and responsive layout.","outbound":[{"site":"vercel-shop","path":"/docs/anatomy/footer"},{"site":"vercel-shop","path":"/docs/skills/enable-shopify-menus"}],"inbound":[{"site":"vercel-shop","path":"/docs"},{"site":"vercel-shop","path":"/docs/shopify"}],"requires":[],"neighbors":[{"site":"vercel-shop","path":"/docs/skills/enable-shopify-menus","distance":0.166},{"site":"vercel-shop","path":"/docs","distance":0.227},{"site":"vercel-shop","path":"/docs/shopify","distance":0.244},{"site":"vercel-shop","path":"/docs/skills/build-shop","distance":0.2551},{"site":"vercel-shop","path":"/docs/getting-started/extending-with-agents","distance":0.2662}],"related":[{"site":"vercel-shop","path":"/docs/shopify","via":"neighbor"},{"site":"vercel-shop","path":"/docs/skills/build-shop","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started/extending-with-agents","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/shop-config","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/pages/home","via":"neighbor"}]},{"site":"vercel-shop","path":"/docs/anatomy/pages","title":"Pages","summary":"The core page types that make up your storefront.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-shop","path":"/docs/anatomy/pages/content","distance":0.2371},{"site":"vercel-shop","path":"/docs/anatomy/pages/home","distance":0.2684},{"site":"vercel-shop","path":"/docs/reference/routes","distance":0.2748},{"site":"vercel-shop","path":"/docs","distance":0.2852},{"site":"vercel-shop","path":"/docs/shopify/pdp","distance":0.3063}],"related":[{"site":"vercel-shop","path":"/docs/reference/routes","via":"neighbor"},{"site":"vercel-shop","path":"/docs/shopify/pdp","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started/shopify-setup","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/product-card","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/sitemap","via":"neighbor"}]},{"site":"vercel-shop","path":"/docs/anatomy/pages/content","title":"Content Pages","summary":"Shopify-managed Pages, policies, blogs, and articles rendered as localized storefront routes.","outbound":[{"site":"vercel-shop","path":"/docs/anatomy/webhooks"}],"inbound":[{"site":"vercel-shop","path":"/docs"},{"site":"vercel-shop","path":"/docs/anatomy/webhooks"},{"site":"vercel-shop","path":"/docs/shopify"}],"requires":[{"site":"vercel-shop","path":"/docs/anatomy/pages"}],"neighbors":[{"site":"vercel-shop","path":"/docs/anatomy/aeo-geo","distance":0.2226},{"site":"vercel-shop","path":"/docs/shopify","distance":0.2254},{"site":"vercel-shop","path":"/docs/anatomy/pages","distance":0.2371},{"site":"vercel-shop","path":"/docs/anatomy/sitemap","distance":0.2572},{"site":"vercel-shop","path":"/docs/reference/routes","distance":0.2591}],"related":[{"site":"vercel-shop","path":"/docs/anatomy/aeo-geo","via":"neighbor"},{"site":"vercel-shop","path":"/docs/shopify","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/sitemap","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/routes","via":"neighbor"},{"site":"vercel-shop","path":"/docs/skills/build-shop","via":"neighbor"}]},{"site":"vercel-shop","path":"/docs/anatomy/pages/home","title":"Home","summary":"The storefront landing page - a headline and a products grid.","outbound":[{"site":"vercel-shop","path":"/docs/anatomy/product-card"}],"inbound":[],"requires":[{"site":"vercel-shop","path":"/docs/anatomy/pages"}],"neighbors":[{"site":"vercel-shop","path":"/docs/anatomy/pages","distance":0.2684},{"site":"vercel-shop","path":"/docs/anatomy/navigation","distance":0.2809},{"site":"vercel-shop","path":"/docs/anatomy/pages/plp","distance":0.2831},{"site":"vercel-shop","path":"/docs/anatomy/pages/content","distance":0.294},{"site":"vercel-shop","path":"/docs/anatomy/product-card","distance":0.2945}],"related":[{"site":"nextjs","path":"/docs/app/guides/public-static-pages","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/navigation","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/pages/plp","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/pages/content","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/aeo-geo","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/pages/pdp","via":"neighbor"}]},{"site":"vercel-shop","path":"/docs/anatomy/pages/pdp","title":"Product Detail Page (PDP)","summary":"A single product page with variants, media, and add-to-cart.","outbound":[],"inbound":[{"site":"vercel-shop","path":"/docs"},{"site":"vercel-shop","path":"/docs/anatomy/pages/plp"},{"site":"vercel-shop","path":"/docs/shopify"},{"site":"vercel-shop","path":"/docs/shopify/pdp"}],"requires":[{"site":"vercel-shop","path":"/docs/anatomy/pages"}],"neighbors":[{"site":"vercel-shop","path":"/docs/shopify/pdp","distance":0.1271},{"site":"vercel-shop","path":"/docs/anatomy/pages/plp","distance":0.1965},{"site":"vercel-shop","path":"/docs/anatomy/product-card","distance":0.2376},{"site":"vercel-shop","path":"/docs/anatomy/pages/home","distance":0.3035},{"site":"vercel-shop","path":"/docs/anatomy/pages","distance":0.3072}],"related":[{"site":"vercel-shop","path":"/docs/shopify/pdp","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/pages/plp","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/product-card","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/pages/home","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/agent","via":"neighbor"}]},{"site":"vercel-shop","path":"/docs/anatomy/pages/plp","title":"Product Listing Page (PLP)","summary":"Collection and search results pages with filtering, sorting, and infinite scroll.","outbound":[{"site":"vercel-shop","path":"/docs/anatomy/pages/pdp"}],"inbound":[{"site":"vercel-shop","path":"/docs"},{"site":"vercel-shop","path":"/docs/shopify"}],"requires":[{"site":"vercel-shop","path":"/docs/anatomy/pages"}],"neighbors":[{"site":"vercel-shop","path":"/docs/anatomy/pages/pdp","distance":0.1965},{"site":"vercel-shop","path":"/docs/shopify/pdp","distance":0.2675},{"site":"vercel-shop","path":"/docs/anatomy/pages/home","distance":0.2831},{"site":"vercel-shop","path":"/docs/anatomy/pages/content","distance":0.3077},{"site":"vercel-shop","path":"/docs/anatomy/aeo-geo","distance":0.3093}],"related":[{"site":"vercel-shop","path":"/docs/shopify/pdp","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/pages/home","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/pages/content","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/aeo-geo","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/product-card","via":"neighbor"}]},{"site":"vercel-shop","path":"/docs/anatomy/product-card","title":"Product Card","summary":"The shared tile that displays a product's image, title, and price in grids and sliders.","outbound":[],"inbound":[{"site":"vercel-shop","path":"/docs/anatomy/pages/home"}],"requires":[],"neighbors":[{"site":"vercel-shop","path":"/docs/anatomy/pages/pdp","distance":0.2376},{"site":"vercel-shop","path":"/docs/anatomy/pages/home","distance":0.2945},{"site":"chat-sdk","path":"/docs/api/cards","distance":0.2992},{"site":"vercel-shop","path":"/docs/shopify/pdp","distance":0.3131},{"site":"vercel-shop","path":"/docs/anatomy/pages/plp","distance":0.3186}],"related":[{"site":"chat-sdk","path":"/docs/api/cards","via":"neighbor"},{"site":"chat-sdk","path":"/docs/cards","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/pages/pdp","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/pages/home","via":"neighbor"},{"site":"vercel-shop","path":"/docs/shopify/pdp","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/pages/plp","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/pages","via":"neighbor"}]},{"site":"vercel-shop","path":"/docs/anatomy/proxy","title":"Proxy","summary":"The root proxy that adds Shopify request context to every storefront request and hosts the customer account auth routes.","outbound":[{"site":"nextjs","path":"/docs/app/getting-started/proxy"},{"site":"vercel-docs","path":"/docs/botid"},{"site":"vercel-shop","path":"/docs/anatomy/authentication"},{"site":"vercel-shop","path":"/docs/reference/env-vars"},{"site":"vercel-shop","path":"/docs/skills/enable-i18n"},{"site":"vercel-shop","path":"/docs/skills/enable-shopify-markets"}],"inbound":[{"site":"vercel-shop","path":"/docs"},{"site":"vercel-shop","path":"/docs/anatomy/authentication"}],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/proxy","distance":0.2444},{"site":"flags-sdk","path":"/docs/frameworks/next/examples/proxy","distance":0.2849},{"site":"vercel-shop","path":"/docs/anatomy/authentication","distance":0.3098},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy","distance":0.3116},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/proxy","distance":0.3195}],"related":[{"site":"flags-sdk","path":"/docs/frameworks/next/examples/proxy","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/proxy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/middleware-and-routing","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/shop-config","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/storefront-api","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/cart","via":"neighbor"},{"site":"vercel-shop","path":"/docs/shopify","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/agent","via":"neighbor"}]},{"site":"vercel-shop","path":"/docs/anatomy/sitemap","title":"Sitemap","summary":"A sitemap index plus paged child sitemaps backed by Shopify's Storefront sitemap query — the same model Hydrogen uses.","outbound":[{"site":"vercel-shop","path":"/docs/anatomy/webhooks"}],"inbound":[{"site":"vercel-shop","path":"/docs/anatomy/aeo-geo"}],"requires":[],"neighbors":[{"site":"vercel-shop","path":"/docs/anatomy/pages/content","distance":0.2572},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/sitemap","distance":0.2763},{"site":"vercel-shop","path":"/docs/anatomy/aeo-geo","distance":0.2883},{"site":"vercel-shop","path":"/docs/shopify","distance":0.2982},{"site":"vercel-shop","path":"/docs/reference/routes","distance":0.3028}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/sitemap","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-sitemaps","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/pages/content","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/aeo-geo","via":"neighbor"},{"site":"vercel-shop","path":"/docs/shopify","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/routes","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/storefront-api","via":"neighbor"}]},{"site":"vercel-shop","path":"/docs/anatomy/webhooks","title":"Webhooks","summary":"Shopify webhook handler that invalidates Next.js cache tags when products, collections, or CMS metaobjects change.","outbound":[{"site":"vercel-shop","path":"/docs/anatomy/pages/content"},{"site":"vercel-shop","path":"/docs/reference/env-vars"}],"inbound":[{"site":"vercel-shop","path":"/docs"},{"site":"vercel-shop","path":"/docs/anatomy/pages/content"},{"site":"vercel-shop","path":"/docs/anatomy/sitemap"},{"site":"vercel-shop","path":"/docs/reference/troubleshooting"},{"site":"vercel-shop","path":"/docs/shopify"}],"requires":[],"neighbors":[{"site":"vercel-shop","path":"/docs/shopify","distance":0.2599},{"site":"vercel-shop","path":"/docs/reference/storefront-api","distance":0.311},{"site":"vercel-shop","path":"/docs/reference/troubleshooting","distance":0.3263},{"site":"vercel-shop","path":"/docs/anatomy/sitemap","distance":0.3282},{"site":"vercel-shop","path":"/docs/anatomy/pages/content","distance":0.3313}],"related":[{"site":"v0","path":"/docs/shopify","via":"neighbor"},{"site":"vercel-shop","path":"/docs/shopify","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/storefront-api","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/troubleshooting","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/sitemap","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/shop-config","via":"neighbor"}]},{"site":"vercel-shop","path":"/docs/anatomy/webmcp","title":"WebMCP","summary":"Experimental browser agent tools - expose the storefront's catalog and cart to AI agents through the proposed WebMCP browser API.","outbound":[],"inbound":[{"site":"vercel-shop","path":"/docs/reference/shop-config"}],"requires":[],"neighbors":[{"site":"vercel-shop","path":"/docs/reference/shop-config","distance":0.2407},{"site":"vercel-shop","path":"/docs/anatomy/agent","distance":0.3019},{"site":"nextjs","path":"/docs/app/guides/mcp","distance":0.3339},{"site":"eve","path":"/docs/channels/mcp","distance":0.3477},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-mcp-server-with-nuxt","distance":0.36}],"related":[{"site":"nextjs","path":"/docs/app/guides/mcp","via":"neighbor"},{"site":"eve","path":"/docs/channels/mcp","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-mcp-server-with-nuxt","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-mcp-apps","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-apps","via":"neighbor"},{"site":"eve","path":"/docs/connections/mcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/shop-config","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/agent","via":"neighbor"},{"site":"vercel-shop","path":"/docs/shopify","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/cart","via":"neighbor"}]},{"site":"vercel-shop","path":"/docs/getting-started","title":"Setup","summary":"Set up Shopify, create a project, and run Vercel Shop locally.","outbound":[{"site":"vercel-shop","path":"/docs/reference/env-vars"},{"site":"vercel-shop","path":"/docs/reference/storefront-api-permissions"}],"inbound":[{"site":"vercel-shop","path":"/docs"},{"site":"vercel-shop","path":"/docs/getting-started/extending-with-agents"},{"site":"vercel-shop","path":"/docs/shopify"}],"requires":[{"site":"vercel-shop","path":"/docs"}],"neighbors":[{"site":"vercel-shop","path":"/docs/getting-started/shopify-setup","distance":0.135},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-shopify-storefront-with-vercel","distance":0.1726},{"site":"vercel-shop","path":"/docs","distance":0.178},{"site":"vercel-kb","path":"/kb/guide/deploy-shopify-app-to-vercel","distance":0.185},{"site":"vercel-shop","path":"/docs/reference/troubleshooting","distance":0.2065}],"related":[{"site":"vercel-kb","path":"/kb/guide/deploy-headless-shopify-storefront-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-shopify-app-to-vercel","via":"neighbor"},{"site":"v0","path":"/docs/shopify","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-deploy-a-next-js-online-store-with-stripe","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-ecommerce-sites-with-next-js-and-shopify","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-bigcommerce-storefront-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/troubleshooting","via":"neighbor"},{"site":"vercel-shop","path":"/docs/skills/build-shop","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/shop-config","via":"neighbor"},{"site":"vercel-shop","path":"/docs/shopify","via":"inbound"}]},{"site":"vercel-shop","path":"/docs/getting-started/extending-with-agents","title":"Extending with Agents","summary":"Use coding agents like Claude Code, Cursor, and Codex to personalize and extend your storefront.","outbound":[{"site":"vercel-shop","path":"/docs/getting-started"},{"site":"vercel-shop","path":"/docs/skills/update-shop"}],"inbound":[{"site":"vercel-shop","path":"/docs"}],"requires":[{"site":"vercel-shop","path":"/docs/getting-started"}],"neighbors":[{"site":"vercel-shop","path":"/docs","distance":0.1329},{"site":"vercel-shop","path":"/docs/skills/build-shop","distance":0.1425},{"site":"vercel-shop","path":"/docs/anatomy/agent","distance":0.181},{"site":"vercel-shop","path":"/docs/reference/troubleshooting","distance":0.1906},{"site":"vercel-shop","path":"/docs/skills","distance":0.2013}],"related":[{"site":"nextjs","path":"/docs/app/guides/ai-agents","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-content-agent","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/ship-it","via":"neighbor"},{"site":"vercel-shop","path":"/docs/skills/build-shop","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/agent","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/troubleshooting","via":"neighbor"}]},{"site":"vercel-shop","path":"/docs/getting-started/shopify-setup","title":"Shopify Setup","summary":"Configure Shopify's Headless channel, Search & Discovery, and optional storefront apps.","outbound":[{"site":"vercel-shop","path":"/docs/reference/storefront-api-permissions"}],"inbound":[],"requires":[{"site":"vercel-shop","path":"/docs/getting-started"}],"neighbors":[{"site":"vercel-shop","path":"/docs/getting-started","distance":0.135},{"site":"vercel-shop","path":"/docs","distance":0.1851},{"site":"vercel-shop","path":"/docs/shopify","distance":0.1964},{"site":"v0","path":"/docs/shopify","distance":0.1982},{"site":"vercel-shop","path":"/docs/reference/troubleshooting","distance":0.2022}],"related":[{"site":"v0","path":"/docs/shopify","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-shopify-app-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-shopify-storefront-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-ecommerce-sites-with-next-js-and-shopify","via":"neighbor"},{"site":"vercel-shop","path":"/docs/shopify","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/troubleshooting","via":"neighbor"},{"site":"vercel-shop","path":"/docs/shopify/pdp","via":"neighbor"},{"site":"vercel-shop","path":"/docs/skills/build-shop","via":"neighbor"},{"site":"vercel-shop","path":"/docs/skills/shopify-graphql-reference","via":"neighbor"}]},{"site":"vercel-shop","path":"/docs/reference/env-vars","title":"Environment Variables","summary":"Required and optional environment variables for Vercel Shop.","outbound":[{"site":"vercel-shop","path":"/docs/reference/shop-config"}],"inbound":[{"site":"vercel-shop","path":"/docs/anatomy/authentication"},{"site":"vercel-shop","path":"/docs/anatomy/proxy"},{"site":"vercel-shop","path":"/docs/anatomy/webhooks"},{"site":"vercel-shop","path":"/docs/getting-started"},{"site":"vercel-shop","path":"/docs/reference/shop-config"}],"requires":[],"neighbors":[{"site":"vercel-shop","path":"/docs/reference/shop-config","distance":0.2658},{"site":"vercel-shop","path":"/docs/getting-started","distance":0.2689},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-shopify-storefront-with-vercel","distance":0.2719},{"site":"vercel-docs","path":"/docs/environment-variables","distance":0.2966},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","distance":0.3088}],"related":[{"site":"vercel-kb","path":"/kb/guide/deploy-headless-shopify-storefront-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/system-environment-variables","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/system-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/managing-environment-variables","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-use-aws-sdk-environment-variables-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/reserved-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/manage-across-environments","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/troubleshooting","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/storefront-api-permissions","via":"neighbor"}]},{"site":"vercel-shop","path":"/docs/reference/routes","title":"Routes","summary":"Every URL in the storefront and its purpose.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-shop","path":"/docs/anatomy/pages/content","distance":0.2591},{"site":"vercel-shop","path":"/docs/anatomy/pages","distance":0.2748},{"site":"vercel-shop","path":"/docs/shopify","distance":0.2808},{"site":"vercel-shop","path":"/docs","distance":0.2989},{"site":"vercel-shop","path":"/docs/anatomy/sitemap","distance":0.3028}],"related":[{"site":"nextjs","path":"/docs/pages/building-your-application/routing/api-routes","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/route-handlers","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/pages/content","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/pages","via":"neighbor"},{"site":"vercel-shop","path":"/docs/shopify","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/sitemap","via":"neighbor"},{"site":"vercel-shop","path":"/docs/shopify/pdp","via":"neighbor"}]},{"site":"vercel-shop","path":"/docs/reference/shop-config","title":"Shop Configuration","summary":"Configure storefront identity, analytics, and cross-cutting feature availability.","outbound":[{"site":"vercel-docs","path":"/docs/botid"},{"site":"vercel-shop","path":"/docs/anatomy/webmcp"},{"site":"vercel-shop","path":"/docs/reference/env-vars"},{"site":"vercel-shop","path":"/docs/skills/enable-shopify-menus"}],"inbound":[{"site":"vercel-shop","path":"/docs/anatomy/agent"},{"site":"vercel-shop","path":"/docs/reference/env-vars"}],"requires":[],"neighbors":[{"site":"vercel-shop","path":"/docs","distance":0.2122},{"site":"vercel-shop","path":"/docs/reference/troubleshooting","distance":0.2315},{"site":"vercel-shop","path":"/docs/anatomy/authentication","distance":0.2394},{"site":"vercel-shop","path":"/docs/anatomy/webmcp","distance":0.2407},{"site":"vercel-shop","path":"/docs/skills/enable-analytics","distance":0.2458}],"related":[{"site":"v0","path":"/docs/shopify","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/troubleshooting","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/authentication","via":"neighbor"},{"site":"vercel-shop","path":"/docs/skills/enable-analytics","via":"neighbor"},{"site":"vercel-shop","path":"/docs/skills/build-shop","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/agent","via":"neighbor"}]},{"site":"vercel-shop","path":"/docs/reference/storefront-api","title":"Storefront API","summary":"How the template calls Shopify's Storefront GraphQL API - the fetch client, query patterns, caching, and error handling.","outbound":[{"site":"vercel-shop","path":"/docs/reference/storefront-api-permissions"},{"site":"vercel-shop","path":"/docs/skills/shopify-graphql-reference"}],"inbound":[{"site":"vercel-shop","path":"/docs/shopify"}],"requires":[{"site":"vercel-shop","path":"/docs/getting-started"}],"neighbors":[{"site":"vercel-shop","path":"/docs/reference/troubleshooting","distance":0.2225},{"site":"vercel-shop","path":"/docs/skills/build-shop","distance":0.2338},{"site":"vercel-shop","path":"/docs/skills/shopify-graphql-reference","distance":0.2345},{"site":"vercel-shop","path":"/docs","distance":0.2349},{"site":"vercel-shop","path":"/docs/anatomy/cart","distance":0.2456}],"related":[{"site":"v0","path":"/docs/shopify","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started","via":"requires"},{"site":"vercel-shop","path":"/docs/reference/troubleshooting","via":"neighbor"},{"site":"vercel-shop","path":"/docs/skills/build-shop","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/cart","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/authentication","via":"neighbor"}]},{"site":"vercel-shop","path":"/docs/reference/storefront-api-permissions","title":"Storefront API Permissions","summary":"Shopify Storefront API scopes required by Vercel Shop and its optional skills.","outbound":[{"site":"vercel-shop","path":"/docs/anatomy/authentication"}],"inbound":[{"site":"vercel-shop","path":"/docs/getting-started"},{"site":"vercel-shop","path":"/docs/getting-started/shopify-setup"},{"site":"vercel-shop","path":"/docs/reference/storefront-api"},{"site":"vercel-shop","path":"/docs/reference/troubleshooting"},{"site":"vercel-shop","path":"/docs/shopify"}],"requires":[{"site":"vercel-shop","path":"/docs/getting-started"}],"neighbors":[{"site":"vercel-shop","path":"/docs/getting-started/shopify-setup","distance":0.2433},{"site":"vercel-shop","path":"/docs/skills/build-shop","distance":0.2804},{"site":"vercel-shop","path":"/docs","distance":0.2805},{"site":"vercel-shop","path":"/docs/skills/shopify-graphql-reference","distance":0.2872},{"site":"vercel-shop","path":"/docs/reference/troubleshooting","distance":0.2895}],"related":[{"site":"v0","path":"/docs/shopify","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/scopes-and-permissions","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started","via":"requires"},{"site":"vercel-shop","path":"/docs/getting-started/shopify-setup","via":"neighbor"},{"site":"vercel-shop","path":"/docs/skills/build-shop","via":"neighbor"},{"site":"vercel-shop","path":"/docs/skills/shopify-graphql-reference","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/troubleshooting","via":"neighbor"}]},{"site":"vercel-shop","path":"/docs/reference/troubleshooting","title":"Troubleshooting","summary":"Solutions to common setup and runtime issues.","outbound":[{"site":"vercel-shop","path":"/docs/anatomy/webhooks"},{"site":"vercel-shop","path":"/docs/reference/storefront-api-permissions"},{"site":"vercel-shop","path":"/docs/skills/enable-shopify-markets"},{"site":"vercel-shop","path":"/docs/skills/shopify-graphql-reference"}],"inbound":[{"site":"vercel-shop","path":"/docs/shopify/pdp"}],"requires":[],"neighbors":[{"site":"vercel-shop","path":"/docs","distance":0.163},{"site":"vercel-shop","path":"/docs/skills/build-shop","distance":0.1744},{"site":"vercel-shop","path":"/docs/getting-started/extending-with-agents","distance":0.1906},{"site":"vercel-shop","path":"/docs/getting-started/shopify-setup","distance":0.2022},{"site":"vercel-shop","path":"/docs/getting-started","distance":0.2065}],"related":[{"site":"v0","path":"/docs/shopify","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-shopify-app-to-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-shopify-storefront-with-vercel","via":"neighbor"},{"site":"vercel-shop","path":"/docs/skills/build-shop","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started/extending-with-agents","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started/shopify-setup","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started","via":"neighbor"},{"site":"vercel-shop","path":"/docs/shopify","via":"neighbor"}]},{"site":"vercel-shop","path":"/docs/shopify","title":"Shopify Integration","summary":"How the template maps to Shopify concepts - menus, products, collections, and cache invalidation via webhooks.","outbound":[{"site":"vercel-shop","path":"/docs/anatomy/cart"},{"site":"vercel-shop","path":"/docs/anatomy/footer"},{"site":"vercel-shop","path":"/docs/anatomy/navigation"},{"site":"vercel-shop","path":"/docs/anatomy/pages/content"},{"site":"vercel-shop","path":"/docs/anatomy/pages/pdp"},{"site":"vercel-shop","path":"/docs/anatomy/pages/plp"},{"site":"vercel-shop","path":"/docs/anatomy/webhooks"},{"site":"vercel-shop","path":"/docs/getting-started"},{"site":"vercel-shop","path":"/docs/reference/storefront-api"},{"site":"vercel-shop","path":"/docs/reference/storefront-api-permissions"},{"site":"vercel-shop","path":"/docs/shopify/pdp"},{"site":"vercel-shop","path":"/docs/skills/enable-shopify-menus"}],"inbound":[],"requires":[{"site":"vercel-shop","path":"/docs/getting-started"}],"neighbors":[{"site":"vercel-shop","path":"/docs/getting-started/shopify-setup","distance":0.1964},{"site":"vercel-shop","path":"/docs","distance":0.2098},{"site":"vercel-shop","path":"/docs/reference/troubleshooting","distance":0.2194},{"site":"vercel-shop","path":"/docs/anatomy/pages/content","distance":0.2254},{"site":"vercel-shop","path":"/docs/skills/enable-shopify-menus","distance":0.2342}],"related":[{"site":"v0","path":"/docs/shopify","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started/shopify-setup","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/troubleshooting","via":"neighbor"},{"site":"vercel-shop","path":"/docs/skills/shopify-graphql-reference","via":"neighbor"},{"site":"vercel-shop","path":"/docs/skills/build-shop","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/shop-config","via":"neighbor"}]},{"site":"vercel-shop","path":"/docs/shopify/pdp","title":"Product Setup","summary":"Shopify product configuration for the Product Detail Page - variants, swatches, recommendations, bundles, and SEO.","outbound":[{"site":"vercel-shop","path":"/docs/anatomy/pages/pdp"},{"site":"vercel-shop","path":"/docs/reference/troubleshooting"}],"inbound":[{"site":"vercel-shop","path":"/docs/shopify"}],"requires":[{"site":"vercel-shop","path":"/docs/anatomy/pages/pdp"}],"neighbors":[{"site":"vercel-shop","path":"/docs/anatomy/pages/pdp","distance":0.1271},{"site":"vercel-shop","path":"/docs/getting-started/shopify-setup","distance":0.2343},{"site":"vercel-shop","path":"/docs/anatomy/pages/plp","distance":0.2675},{"site":"vercel-shop","path":"/docs/reference/troubleshooting","distance":0.2703},{"site":"vercel-shop","path":"/docs/shopify","distance":0.2847}],"related":[{"site":"v0","path":"/docs/shopify","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started/shopify-setup","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/pages/plp","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/shop-config","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/pages","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/routes","via":"neighbor"}]},{"site":"vercel-shop","path":"/docs/skills","title":"Extending with Skills","summary":"Agent-ready skills for extending your Shopify storefront.","outbound":[],"inbound":[],"requires":[{"site":"vercel-shop","path":"/docs/getting-started"}],"neighbors":[{"site":"vercel-shop","path":"/docs/getting-started/extending-with-agents","distance":0.2013},{"site":"vercel-shop","path":"/docs/skills/build-shop","distance":0.2268},{"site":"vercel-shop","path":"/docs","distance":0.2315},{"site":"vercel-shop","path":"/docs/skills/shopify-graphql-reference","distance":0.2509},{"site":"vercel-docs","path":"/docs/agent-resources/skills","distance":0.2682}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/skills","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","via":"neighbor"},{"site":"eve","path":"/docs/skills","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started","via":"requires"},{"site":"vercel-shop","path":"/docs/getting-started/extending-with-agents","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/troubleshooting","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/storefront-api-permissions","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started/shopify-setup","via":"neighbor"}]},{"site":"vercel-shop","path":"/docs/skills/build-shop","title":"Build with Vercel Shop","summary":"Build or adapt Shopify storefronts with source-backed Vercel Shop patterns.","outbound":[],"inbound":[],"requires":[{"site":"vercel-shop","path":"/docs/skills"}],"neighbors":[{"site":"vercel-shop","path":"/docs/getting-started/extending-with-agents","distance":0.1425},{"site":"vercel-shop","path":"/docs","distance":0.1559},{"site":"vercel-shop","path":"/docs/skills/shopify-graphql-reference","distance":0.1636},{"site":"vercel-shop","path":"/docs/reference/troubleshooting","distance":0.1744},{"site":"vercel-shop","path":"/docs/skills/update-shop","distance":0.1915}],"related":[{"site":"v0","path":"/docs/shopify","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started/extending-with-agents","via":"neighbor"},{"site":"vercel-shop","path":"/docs/skills/shopify-graphql-reference","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/troubleshooting","via":"neighbor"},{"site":"vercel-shop","path":"/docs/skills/update-shop","via":"neighbor"},{"site":"vercel-shop","path":"/docs/why-use-this","via":"neighbor"}]},{"site":"vercel-shop","path":"/docs/skills/enable-analytics","title":"Analytics","summary":"Add Vercel Analytics, Vercel Speed Insights, and Google Tag Manager to the storefront.","outbound":[],"inbound":[{"site":"vercel-shop","path":"/docs"}],"requires":[{"site":"vercel-shop","path":"/docs/skills"}],"neighbors":[{"site":"vercel-shop","path":"/docs","distance":0.2204},{"site":"vercel-shop","path":"/docs/skills/build-shop","distance":0.2423},{"site":"vercel-shop","path":"/docs/reference/shop-config","distance":0.2458},{"site":"vercel-docs","path":"/docs/analytics/quickstart","distance":0.2541},{"site":"vercel-shop","path":"/docs/getting-started/extending-with-agents","distance":0.2719}],"related":[{"site":"vercel-docs","path":"/docs/analytics/quickstart","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/analytics","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/quickstart","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/analytics","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/third-party-libraries","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-bigcommerce-storefront-with-vercel","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/third-party-libraries","via":"neighbor"},{"site":"vercel-shop","path":"/docs/skills/build-shop","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/shop-config","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started/extending-with-agents","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/troubleshooting","via":"neighbor"},{"site":"vercel-shop","path":"/docs/skills/shopify-graphql-reference","via":"neighbor"}]},{"site":"vercel-shop","path":"/docs/skills/enable-i18n","title":"i18n","summary":"Locale-prefixed URLs and per-locale message catalogs via next-intl, without Shopify Markets.","outbound":[],"inbound":[{"site":"vercel-shop","path":"/docs/anatomy/proxy"}],"requires":[{"site":"vercel-shop","path":"/docs/skills"}],"neighbors":[{"site":"vercel-shop","path":"/docs/skills/enable-shopify-markets","distance":0.1453},{"site":"nextjs","path":"/docs/app/guides/internationalization","distance":0.2347},{"site":"nextjs","path":"/docs/pages/guides/internationalization","distance":0.2402},{"site":"nextjs","path":"/docs/app/guides/ai-agents","distance":0.2614},{"site":"vercel-kb","path":"/kb/guide/how-to-internationalise-error-pages-in-next-js-app-router","distance":0.29}],"related":[{"site":"nextjs","path":"/docs/app/guides/internationalization","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/internationalization","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/ai-agents","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-internationalise-error-pages-in-next-js-app-router","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","via":"neighbor"},{"site":"vercel-shop","path":"/docs/skills/enable-shopify-markets","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","via":"neighbor"},{"site":"vercel-shop","path":"/docs/skills/build-shop","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started/extending-with-agents","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/aeo-geo","via":"neighbor"},{"site":"vercel-shop","path":"/docs/skills/enable-shopify-menus","via":"neighbor"}]},{"site":"vercel-shop","path":"/docs/skills/enable-shopify-markets","title":"Shopify Markets","summary":"Add regional locale routing and localized commerce with Shopify Markets.","outbound":[],"inbound":[{"site":"vercel-shop","path":"/docs"},{"site":"vercel-shop","path":"/docs/anatomy/proxy"},{"site":"vercel-shop","path":"/docs/reference/troubleshooting"}],"requires":[{"site":"vercel-shop","path":"/docs/skills"}],"neighbors":[{"site":"vercel-shop","path":"/docs/skills/enable-i18n","distance":0.1453},{"site":"nextjs","path":"/docs/pages/guides/internationalization","distance":0.2519},{"site":"nextjs","path":"/docs/app/guides/internationalization","distance":0.2554},{"site":"vercel-shop","path":"/docs/reference/troubleshooting","distance":0.2583},{"site":"vercel-shop","path":"/docs/anatomy/aeo-geo","distance":0.2657}],"related":[{"site":"nextjs","path":"/docs/pages/guides/internationalization","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/internationalization","via":"neighbor"},{"site":"vercel-shop","path":"/docs/skills/enable-i18n","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/troubleshooting","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/aeo-geo","via":"neighbor"},{"site":"vercel-shop","path":"/docs/skills/build-shop","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/storefront-api","via":"neighbor"}]},{"site":"vercel-shop","path":"/docs/skills/enable-shopify-menus","title":"Shopify Menus","summary":"Replace the hardcoded nav and footer menus with Shopify-powered menus.","outbound":[],"inbound":[{"site":"vercel-shop","path":"/docs/anatomy/footer"},{"site":"vercel-shop","path":"/docs/anatomy/navigation"},{"site":"vercel-shop","path":"/docs/reference/shop-config"},{"site":"vercel-shop","path":"/docs/shopify"}],"requires":[{"site":"vercel-shop","path":"/docs/skills"}],"neighbors":[{"site":"vercel-shop","path":"/docs/anatomy/navigation","distance":0.166},{"site":"vercel-shop","path":"/docs/shopify","distance":0.2342},{"site":"vercel-shop","path":"/docs/skills/build-shop","distance":0.2557},{"site":"vercel-shop","path":"/docs/skills/shopify-graphql-reference","distance":0.2818},{"site":"vercel-shop","path":"/docs","distance":0.2832}],"related":[{"site":"vercel-shop","path":"/docs/anatomy/navigation","via":"neighbor"},{"site":"vercel-shop","path":"/docs/shopify","via":"neighbor"},{"site":"vercel-shop","path":"/docs/skills/build-shop","via":"neighbor"},{"site":"vercel-shop","path":"/docs/skills/shopify-graphql-reference","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/shop-config","via":"neighbor"}]},{"site":"vercel-shop","path":"/docs/skills/shopify-graphql-reference","title":"Shopify GraphQL Integration","summary":"Integrate Shopify-validated GraphQL with Vercel Shop's operations, domain types, cache roles, and invalidation.","outbound":[],"inbound":[{"site":"vercel-shop","path":"/docs/reference/storefront-api"},{"site":"vercel-shop","path":"/docs/reference/troubleshooting"}],"requires":[{"site":"vercel-shop","path":"/docs/skills"}],"neighbors":[{"site":"vercel-shop","path":"/docs/skills/build-shop","distance":0.1636},{"site":"vercel-shop","path":"/docs","distance":0.2115},{"site":"vercel-shop","path":"/docs/reference/troubleshooting","distance":0.2217},{"site":"vercel-shop","path":"/docs/reference/storefront-api","distance":0.2345},{"site":"vercel-shop","path":"/docs/shopify","distance":0.2383}],"related":[{"site":"v0","path":"/docs/shopify","via":"neighbor"},{"site":"vercel-shop","path":"/docs/skills/build-shop","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/troubleshooting","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/storefront-api","via":"neighbor"},{"site":"vercel-shop","path":"/docs/shopify","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started/shopify-setup","via":"neighbor"}]},{"site":"vercel-shop","path":"/docs/skills/update-shop","title":"Update Vercel Shop","summary":"Audit drift, plan a change-level upgrade, and apply newer template updates to an existing storefront.","outbound":[],"inbound":[{"site":"vercel-shop","path":"/docs/getting-started/extending-with-agents"}],"requires":[{"site":"vercel-shop","path":"/docs/skills"}],"neighbors":[{"site":"vercel-shop","path":"/docs/skills/build-shop","distance":0.1915},{"site":"vercel-shop","path":"/docs/getting-started/extending-with-agents","distance":0.218},{"site":"vercel-shop","path":"/docs/skills/shopify-graphql-reference","distance":0.2766},{"site":"vercel-shop","path":"/docs/reference/troubleshooting","distance":0.2824},{"site":"vercel-shop","path":"/docs","distance":0.2861}],"related":[{"site":"vercel-shop","path":"/docs/skills/build-shop","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","via":"neighbor"},{"site":"v0","path":"/docs/design-systems-2","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/ai-agents","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-shopify-app-to-vercel","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started/extending-with-agents","via":"neighbor"},{"site":"vercel-shop","path":"/docs/skills/shopify-graphql-reference","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/troubleshooting","via":"neighbor"},{"site":"vercel-shop","path":"/docs/skills/enable-analytics","via":"neighbor"}]},{"site":"vercel-shop","path":"/docs/why-use-this","title":"Why Use This","summary":"Why we built Vercel Shop — an agent-first Shopify starter for Next.js on Vercel.","outbound":[],"inbound":[{"site":"vercel-shop","path":"/docs"}],"requires":[{"site":"vercel-shop","path":"/docs"}],"neighbors":[{"site":"vercel-shop","path":"/docs","distance":0.12},{"site":"vercel-shop","path":"/docs/getting-started/extending-with-agents","distance":0.2213},{"site":"vercel-shop","path":"/docs/skills/build-shop","distance":0.2222},{"site":"vercel-shop","path":"/docs/getting-started","distance":0.227},{"site":"vercel-shop","path":"/docs/getting-started/shopify-setup","distance":0.2414}],"related":[{"site":"v0","path":"/docs/shopify","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-ecommerce-sites-with-next-js-and-shopify","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-shopify-storefront-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-innovators-are-going-headless","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started/extending-with-agents","via":"neighbor"},{"site":"vercel-shop","path":"/docs/skills/build-shop","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started/shopify-setup","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/troubleshooting","via":"neighbor"}]},{"site":"workflow","path":"/docs/ai","title":"Building Durable AI Agents","summary":"Convert a basic AI chat app into a durable, resumable agent using Workflow SDK.","outbound":[{"site":"ai-sdk","path":"/docs/agents/overview"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers"},{"site":"workflow","path":"/docs/ai/defining-tools"},{"site":"workflow","path":"/docs/ai/human-in-the-loop"},{"site":"workflow","path":"/docs/ai/sleep-and-delays"},{"site":"workflow","path":"/docs/api-reference/workflow-ai"},{"site":"workflow","path":"/docs/api-reference/workflow/get-writable"},{"site":"workflow","path":"/docs/foundations/errors-and-retries"},{"site":"workflow","path":"/docs/foundations/starting-workflows"},{"site":"workflow","path":"/docs/foundations/streaming"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps"},{"site":"workflow","path":"/docs/getting-started/next"},{"site":"workflow","path":"/docs/observability"}],"inbound":[{"site":"workflow","path":"/docs/ai/chat-session-modeling"},{"site":"workflow","path":"/docs/ai/message-queueing"},{"site":"workflow","path":"/docs/ai/resumable-streams"},{"site":"workflow","path":"/docs/ai/streaming-updates-from-tools"},{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent"},{"site":"workflow","path":"/docs/comparisons"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-aws-agentcore"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/what-is-workflowagent","distance":0.1749},{"site":"workflow","path":"/docs/ai/streaming-updates-from-tools","distance":0.1936},{"site":"workflow","path":"/docs/ai/defining-tools","distance":0.2083},{"site":"vercel-kb","path":"/kb/guide/durableagent-to-workflowagent","distance":0.2093},{"site":"workflow","path":"/docs/ai/human-in-the-loop","distance":0.2164}],"related":[{"site":"vercel-kb","path":"/kb/guide/what-is-workflowagent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/durableagent-to-workflowagent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"eve","path":"/docs/concepts/built-in-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/workflow-agent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/building-agents","via":"neighbor"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-aws-agentcore","via":"neighbor"}]},{"site":"workflow","path":"/docs/ai/chat-session-modeling","title":"Chat Session Modeling","summary":"Choose between single-turn and multi-turn workflow patterns for managing chat session state.","outbound":[{"site":"workflow","path":"/docs/ai"},{"site":"workflow","path":"/docs/ai/message-queueing"},{"site":"workflow","path":"/docs/ai/resumable-streams"},{"site":"workflow","path":"/docs/api-reference/workflow/define-hook"}],"inbound":[{"site":"workflow","path":"/docs/ai/message-queueing"}],"requires":[{"site":"workflow","path":"/docs/ai"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/claude-managed-agent-vercel","distance":0.2088},{"site":"workflow","path":"/docs/api-reference/workflow-ai/workflow-chat-transport","distance":0.2417},{"site":"workflow","path":"/docs/ai/resumable-streams","distance":0.2451},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-chat-transport","distance":0.248},{"site":"vercel-kb","path":"/kb/guide/building-human-in-the-loop-agents-for-community-moderation-with-durable-workflows","distance":0.2483}],"related":[{"site":"vercel-kb","path":"/kb/guide/claude-managed-agent-vercel","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-chat-transport","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-human-in-the-loop-agents-for-community-moderation-with-durable-workflows","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-resume-streams","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/human-in-the-loop-with-chat-sdk-and-workflow-sdk","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/overview","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","via":"requires"},{"site":"workflow","path":"/docs/api-reference/workflow-ai/workflow-chat-transport","via":"neighbor"}]},{"site":"workflow","path":"/docs/ai/defining-tools","title":"Patterns for Defining Tools","summary":"Define step-level and workflow-level tools for durable AI agents with stream writing and context access.","outbound":[{"site":"workflow","path":"/docs/ai/streaming-updates-from-tools"}],"inbound":[{"site":"workflow","path":"/docs/ai"},{"site":"workflow","path":"/docs/ai/sleep-and-delays"}],"requires":[{"site":"workflow","path":"/docs/ai"}],"neighbors":[{"site":"workflow","path":"/docs/ai/streaming-updates-from-tools","distance":0.1894},{"site":"workflow","path":"/docs/ai","distance":0.2083},{"site":"eve","path":"/docs/concepts/built-in-tools","distance":0.2321},{"site":"workflow","path":"/docs/ai/sleep-and-delays","distance":0.234},{"site":"vercel-kb","path":"/kb/guide/what-is-workflowagent","distance":0.2617}],"related":[{"site":"eve","path":"/docs/concepts/built-in-tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-workflowagent","via":"neighbor"},{"site":"eve","path":"/docs/tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/examples/ai-tools","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-agent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/building-agents","via":"neighbor"},{"site":"workflow","path":"/docs/ai/sleep-and-delays","via":"neighbor"},{"site":"workflow","path":"/docs/ai/human-in-the-loop","via":"neighbor"}]},{"site":"workflow","path":"/docs/ai/human-in-the-loop","title":"Human-in-the-Loop","summary":"Pause agent workflows for human approval using hooks and webhooks, then resume on input.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow/create-webhook"},{"site":"workflow","path":"/docs/api-reference/workflow/define-hook"},{"site":"workflow","path":"/docs/foundations/hooks"}],"inbound":[{"site":"workflow","path":"/docs/ai"}],"requires":[{"site":"workflow","path":"/docs/ai"},{"site":"workflow","path":"/docs/foundations/hooks"}],"neighbors":[{"site":"workflow","path":"/docs/foundations/hooks","distance":0.1528},{"site":"workflow","path":"/docs/ai","distance":0.2164},{"site":"workflow","path":"/docs/api-reference/workflow/create-hook","distance":0.227},{"site":"workflow","path":"/docs/api-reference/workflow/define-hook","distance":0.2282},{"site":"vercel-kb","path":"/kb/guide/human-in-the-loop-with-chat-sdk-and-workflow-sdk","distance":0.2336}],"related":[{"site":"vercel-kb","path":"/kb/guide/human-in-the-loop-with-chat-sdk-and-workflow-sdk","via":"neighbor"},{"site":"eve","path":"/docs/human-in-the-loop","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"chat-sdk","path":"/docs/approvals","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow/create-hook","via":"neighbor"},{"site":"workflow","path":"/docs/ai/message-queueing","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-hook","via":"neighbor"},{"site":"workflow","path":"/docs/ai/sleep-and-delays","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/idempotency","via":"neighbor"}]},{"site":"workflow","path":"/docs/ai/message-queueing","title":"Queueing User Messages","summary":"Inject user messages mid-turn using the `prepareStep` callback to influence the agent's next step.","outbound":[{"site":"ai-sdk","path":"/docs/agents/loop-control"},{"site":"workflow","path":"/docs/ai"},{"site":"workflow","path":"/docs/ai/chat-session-modeling"},{"site":"workflow","path":"/docs/api-reference/workflow/define-hook"}],"inbound":[{"site":"workflow","path":"/docs/ai/chat-session-modeling"},{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent"}],"requires":[{"site":"workflow","path":"/docs/ai"}],"neighbors":[{"site":"workflow","path":"/docs/ai/chat-session-modeling","distance":0.25},{"site":"workflow","path":"/docs/ai/human-in-the-loop","distance":0.2523},{"site":"workflow","path":"/docs/ai","distance":0.2575},{"site":"chat-sdk","path":"/docs/ai","distance":0.2842},{"site":"workflow","path":"/docs/api-reference/workflow-ai/workflow-chat-transport","distance":0.2927}],"related":[{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/building-agents","via":"neighbor"},{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot","via":"neighbor"},{"site":"eve","path":"/docs/human-in-the-loop","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-workflowagent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/human-in-the-loop-with-chat-sdk-and-workflow-sdk","via":"neighbor"},{"site":"workflow","path":"/docs/ai/human-in-the-loop","via":"neighbor"},{"site":"workflow","path":"/docs/ai/streaming-updates-from-tools","via":"neighbor"},{"site":"workflow","path":"/docs/ai/resumable-streams","via":"neighbor"},{"site":"workflow","path":"/docs/ai/defining-tools","via":"neighbor"}]},{"site":"workflow","path":"/docs/ai/resumable-streams","title":"Resumable Streams","summary":"Reconnect to interrupted agent streams using `WorkflowChatTransport` without losing progress.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-resume-streams"},{"site":"workflow","path":"/docs/ai"},{"site":"workflow","path":"/docs/api-reference/workflow-ai/workflow-chat-transport"},{"site":"workflow","path":"/docs/api-reference/workflow-api/get-run"},{"site":"workflow","path":"/docs/foundations/streaming"}],"inbound":[{"site":"workflow","path":"/docs/ai/chat-session-modeling"},{"site":"workflow","path":"/docs/api-reference/workflow-api/get-run"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-aws-agentcore"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-inngest"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-temporal"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-trigger-dev"}],"requires":[{"site":"workflow","path":"/docs/ai"},{"site":"workflow","path":"/docs/foundations/streaming"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-ai/workflow-chat-transport","distance":0.1046},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-chat-transport","distance":0.1739},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-resume-streams","distance":0.2179},{"site":"workflow","path":"/docs/ai","distance":0.236},{"site":"workflow","path":"/docs/ai/chat-session-modeling","distance":0.2451}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-chat-transport","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/resuming-streams","via":"neighbor"},{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-workflowagent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/transport","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/streaming","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/resume-chat-stream","via":"neighbor"},{"site":"workflow","path":"/docs/ai/chat-session-modeling","via":"neighbor"},{"site":"workflow","path":"/docs/ai/streaming-updates-from-tools","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow/get-writable","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/streams","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/versioning","via":"neighbor"}]},{"site":"workflow","path":"/docs/ai/sleep-and-delays","title":"Sleep, Suspense, and Scheduling","summary":"Pause agent execution with `sleep()` for scheduling, rate limiting, and waiting on external state.","outbound":[{"site":"workflow","path":"/docs/ai/defining-tools"},{"site":"workflow","path":"/docs/ai/streaming-updates-from-tools"},{"site":"workflow","path":"/docs/api-reference/workflow/sleep"},{"site":"workflow","path":"/docs/foundations/errors-and-retries"},{"site":"workflow","path":"/docs/foundations/hooks"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps"}],"inbound":[{"site":"workflow","path":"/docs/ai"}],"requires":[{"site":"workflow","path":"/docs/ai"}],"neighbors":[{"site":"workflow","path":"/docs/ai/defining-tools","distance":0.234},{"site":"workflow","path":"/docs/api-reference/workflow/sleep","distance":0.2373},{"site":"workflow","path":"/docs/ai","distance":0.2435},{"site":"eve","path":"/docs/concepts/built-in-tools","distance":0.2559},{"site":"workflow","path":"/docs/ai/human-in-the-loop","distance":0.2667}],"related":[{"site":"eve","path":"/docs/concepts/built-in-tools","via":"neighbor"},{"site":"eve","path":"/docs/human-in-the-loop","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"eve","path":"/docs/tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-workflowagent","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/packages/ai-tools","via":"neighbor"},{"site":"workflow","path":"/docs/ai/human-in-the-loop","via":"neighbor"},{"site":"workflow","path":"/docs/errors/timeout-in-workflow","via":"neighbor"},{"site":"workflow","path":"/docs/ai/resumable-streams","via":"neighbor"}]},{"site":"workflow","path":"/docs/ai/streaming-updates-from-tools","title":"Streaming Updates from Tools","summary":"Write custom data parts from step functions to show progress updates during long-running tool calls.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/streaming-data"},{"site":"workflow","path":"/docs/ai"},{"site":"workflow","path":"/docs/api-reference/workflow/get-writable"},{"site":"workflow","path":"/docs/foundations/streaming"}],"inbound":[{"site":"workflow","path":"/docs/ai/defining-tools"},{"site":"workflow","path":"/docs/ai/sleep-and-delays"}],"requires":[{"site":"workflow","path":"/docs/ai"},{"site":"workflow","path":"/docs/foundations/streaming"}],"neighbors":[{"site":"workflow","path":"/docs/ai/defining-tools","distance":0.1894},{"site":"workflow","path":"/docs/ai","distance":0.1936},{"site":"chat-sdk","path":"/docs/streaming","distance":0.2692},{"site":"workflow","path":"/docs/ai/resumable-streams","distance":0.28},{"site":"workflow","path":"/docs/api-reference/workflow/get-writable","distance":0.2875}],"related":[{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-workflowagent","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/custom-stream-format","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"eve","path":"/docs/tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/building-agents","via":"neighbor"},{"site":"workflow","path":"/docs/ai/defining-tools","via":"neighbor"},{"site":"workflow","path":"/docs/ai/resumable-streams","via":"neighbor"},{"site":"workflow","path":"/docs/ai/human-in-the-loop","via":"neighbor"},{"site":"workflow","path":"/docs/ai/sleep-and-delays","via":"neighbor"},{"site":"workflow","path":"/docs/ai/message-queueing","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference","title":"API Reference","summary":"Browse all available functions and primitives organized by package.","outbound":[],"inbound":[{"site":"workflow","path":"/docs/errors"},{"site":"workflow","path":"/docs/getting-started/astro"},{"site":"workflow","path":"/docs/getting-started/express"},{"site":"workflow","path":"/docs/getting-started/fastify"},{"site":"workflow","path":"/docs/getting-started/hono"},{"site":"workflow","path":"/docs/getting-started/nestjs"},{"site":"workflow","path":"/docs/getting-started/next"},{"site":"workflow","path":"/docs/getting-started/nitro"},{"site":"workflow","path":"/docs/getting-started/nuxt"},{"site":"workflow","path":"/docs/getting-started/python"},{"site":"workflow","path":"/docs/getting-started/sveltekit"},{"site":"workflow","path":"/docs/getting-started/tanstack-start"},{"site":"workflow","path":"/docs/getting-started/vite"}],"requires":[],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-api","distance":0.1665},{"site":"workflow","path":"/docs/api-reference/workflow","distance":0.1787},{"site":"workflow","path":"/docs/api-reference/workflow-globals","distance":0.2062},{"site":"workflow","path":"/docs/errors","distance":0.2226},{"site":"workflow","path":"/docs/api-reference/workflow-runtime","distance":0.2373}],"related":[{"site":"workflow","path":"/docs/errors","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started","via":"neighbor"},{"site":"workflow","path":"/docs/foundations","via":"neighbor"},{"site":"workflow","path":"/docs/testing","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/next","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/vitest","title":"@workflow/vitest","summary":"Vitest plugin and test helpers for integration testing workflows in-process.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-api/get-run"},{"site":"workflow","path":"/docs/testing"}],"inbound":[{"site":"workflow","path":"/docs/testing"}],"requires":[{"site":"workflow","path":"/docs/api-reference"}],"neighbors":[{"site":"workflow","path":"/docs/testing","distance":0.1664},{"site":"workflow","path":"/docs/testing/server-based","distance":0.2468},{"site":"workflow","path":"/docs/api-reference/workflow-vite/workflow","distance":0.2802},{"site":"workflow","path":"/docs/getting-started/vite","distance":0.2925},{"site":"workflow","path":"/docs/api-reference/workflow-vite","distance":0.2978}],"related":[{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows","via":"neighbor"},{"site":"workflow","path":"/docs/testing/server-based","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-vite/workflow","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/vite","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-vite","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-sveltekit/workflow-plugin","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow","title":"workflow","summary":"Explore the core workflow package for steps, streaming, hooks, and error handling.","outbound":[],"inbound":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps"}],"requires":[{"site":"workflow","path":"/docs/api-reference"}],"neighbors":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps","distance":0.168},{"site":"workflow","path":"/docs/api-reference","distance":0.1787},{"site":"workflow","path":"/docs/errors","distance":0.1796},{"site":"workflow","path":"/docs/foundations","distance":0.185},{"site":"workflow","path":"/docs/api-reference/workflow-errors","distance":0.2055}],"related":[{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","via":"neighbor"},{"site":"workflow","path":"/docs/errors","via":"neighbor"},{"site":"workflow","path":"/docs/foundations","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/next","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-ai","title":"@workflow/ai","summary":"Explore helpers for integrating AI SDK to build durable AI-powered workflows.","outbound":[],"inbound":[{"site":"workflow","path":"/docs/ai"}],"requires":[{"site":"workflow","path":"/docs/api-reference"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow","distance":0.1788},{"site":"workflow","path":"/docs/ai","distance":0.2306},{"site":"chat-sdk","path":"/docs/ai","distance":0.2656},{"site":"workflow","path":"/docs/api-reference","distance":0.2793},{"site":"ai-sdk","path":"/docs/agents","distance":0.2975}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-workflowagent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/adapters/ai-tools","via":"neighbor"},{"site":"workflow","path":"/docs/ai","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-api","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-astro","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow","via":"neighbor"},{"site":"workflow","path":"/docs/ai/defining-tools","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","title":"DurableAgent","summary":"Deprecated: use AI SDK's WorkflowAgent instead of DurableAgent.","outbound":[{"site":"ai-sdk","path":"/docs/agents/loop-control"},{"site":"workflow","path":"/docs/ai"},{"site":"workflow","path":"/docs/ai/message-queueing"},{"site":"workflow","path":"/docs/api-reference/workflow-ai/workflow-chat-transport"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps"}],"inbound":[{"site":"ai-sdk","path":"/docs/agents/workflow-agent"},{"site":"vercel-kb","path":"/kb/guide/building-human-in-the-loop-agents-for-community-moderation-with-durable-workflows"},{"site":"vercel-kb","path":"/kb/guide/durableagent-to-workflowagent"},{"site":"vercel-kb","path":"/kb/guide/what-is-workflowagent"}],"requires":[{"site":"workflow","path":"/docs/ai"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-agent","distance":0.2211},{"site":"ai-sdk","path":"/docs/agents/workflow-agent","distance":0.2491},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool-loop-agent","distance":0.2512},{"site":"vercel-kb","path":"/kb/guide/what-is-workflowagent","distance":0.254},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","distance":0.2622}],"related":[{"site":"ai-sdk","path":"/docs/agents/workflow-agent","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/building-human-in-the-loop-agents-for-community-moderation-with-durable-workflows","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/durableagent-to-workflowagent","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/what-is-workflowagent","via":"inbound"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-agent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool-loop-agent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/building-agents","via":"neighbor"},{"site":"workflow","path":"/docs/ai/defining-tools","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-ai/workflow-chat-transport","title":"WorkflowChatTransport","summary":"Use WorkflowChatTransport as a drop-in AI SDK transport for automatic stream reconnection.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/transport"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps"}],"inbound":[{"site":"workflow","path":"/docs/ai/resumable-streams"},{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent"}],"requires":[{"site":"workflow","path":"/docs/ai"}],"neighbors":[{"site":"workflow","path":"/docs/ai/resumable-streams","distance":0.1046},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-chat-transport","distance":0.1219},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/transport","distance":0.1633},{"site":"workflow","path":"/docs/ai","distance":0.2405},{"site":"workflow","path":"/docs/ai/chat-session-modeling","distance":0.2417}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-chat-transport","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/direct-chat-transport","via":"neighbor"},{"site":"workflow","path":"/docs/ai/resumable-streams","via":"neighbor"},{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-workflowagent","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-resume-streams","via":"neighbor"},{"site":"workflow","path":"/docs/ai","via":"requires"},{"site":"workflow","path":"/docs/ai/chat-session-modeling","via":"neighbor"},{"site":"workflow","path":"/docs/ai/message-queueing","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-api","title":"workflow/api","summary":"Explore runtime functions for starting workflows, inspecting runs, and managing hooks.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime"}],"inbound":[{"site":"workflow","path":"/docs/testing"}],"requires":[{"site":"workflow","path":"/docs/api-reference"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime","distance":0.1658},{"site":"workflow","path":"/docs/api-reference","distance":0.1665},{"site":"workflow","path":"/docs/api-reference/workflow","distance":0.2231},{"site":"workflow","path":"/docs/foundations/starting-workflows","distance":0.2401},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/storage","distance":0.2459}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/starting-workflows","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/storage","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/hooks","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-api/get-hook-by-token","title":"getHookByToken","summary":"Use getHookByToken to look up a hook's metadata and associated workflow run before resuming it.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-hook"},{"site":"workflow","path":"/docs/api-reference/workflow/create-hook"},{"site":"workflow","path":"/docs/api-reference/workflow/define-hook"},{"site":"workflow","path":"/docs/foundations/idempotency"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-api/get-run"},{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-hook"},{"site":"workflow","path":"/docs/api-reference/workflow-api/start"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/storage"},{"site":"workflow","path":"/docs/foundations/idempotency"}],"requires":[{"site":"workflow","path":"/docs/foundations/hooks"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-hook","distance":0.0951},{"site":"workflow","path":"/docs/api-reference/workflow/create-hook","distance":0.1207},{"site":"workflow","path":"/docs/foundations/hooks","distance":0.1556},{"site":"workflow","path":"/docs/api-reference/workflow/define-hook","distance":0.169},{"site":"workflow","path":"/docs/errors/hook-conflict","distance":0.1749}],"related":[{"site":"workflow","path":"/docs/foundations/hooks","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/hooks/get-by-id","via":"neighbor"},{"site":"workflow","path":"/docs/errors/hook-conflict","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/hook-not-found-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-webhook","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow/create-webhook","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-api/get-run","title":"getRun","summary":"Use getRun to check a workflow run's status and metadata without blocking on completion.","outbound":[{"site":"workflow","path":"/docs/ai/resumable-streams"},{"site":"workflow","path":"/docs/api-reference/workflow-api/get-hook-by-token"},{"site":"workflow","path":"/docs/api-reference/workflow-api/start"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-cancelled-error"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-not-completed-error"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-not-found-error"},{"site":"workflow","path":"/docs/foundations/idempotency"}],"inbound":[{"site":"workflow","path":"/docs/ai/resumable-streams"},{"site":"workflow","path":"/docs/api-reference/vitest"},{"site":"workflow","path":"/docs/api-reference/workflow-api/start"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-not-completed-error"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/storage"},{"site":"workflow","path":"/docs/api-reference/workflow/create-hook"},{"site":"workflow","path":"/docs/api-reference/workflow/get-writable"},{"site":"workflow","path":"/docs/errors/hook-conflict"},{"site":"workflow","path":"/docs/foundations/hooks"},{"site":"workflow","path":"/docs/foundations/idempotency"},{"site":"workflow","path":"/docs/foundations/starting-workflows"},{"site":"workflow","path":"/docs/foundations/streaming"},{"site":"workflow","path":"/docs/testing"},{"site":"workflow","path":"/docs/testing/server-based"}],"requires":[{"site":"workflow","path":"/docs/foundations/starting-workflows"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow/get-workflow-metadata","distance":0.2367},{"site":"workflow","path":"/docs/foundations/starting-workflows","distance":0.2652},{"site":"workflow","path":"/docs/api-reference/workflow-api","distance":0.2729},{"site":"workflow","path":"/docs/api-reference/workflow-api/start","distance":0.2747},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-not-completed-error","distance":0.2762}],"related":[{"site":"workflow","path":"/docs/foundations/starting-workflows","via":"requires"},{"site":"workflow","path":"/docs/api-reference/workflow/get-workflow-metadata","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/storage","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/versioning","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-hook","title":"resumeHook","summary":"Use resumeHook to send a payload to a hook token and resume a paused workflow.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-api/get-hook-by-token"},{"site":"workflow","path":"/docs/api-reference/workflow/create-hook"},{"site":"workflow","path":"/docs/api-reference/workflow/define-hook"},{"site":"workflow","path":"/docs/foundations/idempotency"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-api/get-hook-by-token"},{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-webhook"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/storage"},{"site":"workflow","path":"/docs/api-reference/workflow/create-hook"},{"site":"workflow","path":"/docs/api-reference/workflow/create-webhook"},{"site":"workflow","path":"/docs/api-reference/workflow/define-hook"},{"site":"workflow","path":"/docs/errors/hook-conflict"},{"site":"workflow","path":"/docs/foundations/hooks"},{"site":"workflow","path":"/docs/foundations/idempotency"},{"site":"workflow","path":"/docs/testing"},{"site":"workflow","path":"/docs/testing/server-based"}],"requires":[{"site":"workflow","path":"/docs/foundations/hooks"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow/create-hook","distance":0.0929},{"site":"workflow","path":"/docs/api-reference/workflow-api/get-hook-by-token","distance":0.0951},{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-webhook","distance":0.1206},{"site":"workflow","path":"/docs/foundations/hooks","distance":0.1343},{"site":"workflow","path":"/docs/api-reference/workflow-errors/hook-not-found-error","distance":0.1378}],"related":[{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-webhook","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/hooks","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/hook-not-found-error","via":"neighbor"},{"site":"workflow","path":"/docs/errors/hook-conflict","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow/create-webhook","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-webhook","title":"resumeWebhook","summary":"Use resumeWebhook to forward an HTTP request to a webhook token and resume a paused workflow.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-hook"},{"site":"workflow","path":"/docs/api-reference/workflow/create-hook"},{"site":"workflow","path":"/docs/api-reference/workflow/create-webhook"},{"site":"workflow","path":"/docs/api-reference/workflow/define-hook"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow/create-webhook"},{"site":"workflow","path":"/docs/errors/webhook-invalid-respond-with-value"},{"site":"workflow","path":"/docs/errors/webhook-response-not-sent"},{"site":"workflow","path":"/docs/foundations/hooks"},{"site":"workflow","path":"/docs/testing"},{"site":"workflow","path":"/docs/testing/server-based"}],"requires":[{"site":"workflow","path":"/docs/foundations/hooks"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-hook","distance":0.1206},{"site":"workflow","path":"/docs/api-reference/workflow/create-webhook","distance":0.1396},{"site":"workflow","path":"/docs/foundations/hooks","distance":0.1998},{"site":"workflow","path":"/docs/api-reference/workflow-api/get-hook-by-token","distance":0.2099},{"site":"workflow","path":"/docs/api-reference/workflow-errors/hook-not-found-error","distance":0.2156}],"related":[{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/hooks","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/resume","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-api/get-hook-by-token","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/hook-not-found-error","via":"neighbor"},{"site":"workflow","path":"/docs/errors/webhook-response-not-sent","via":"neighbor"},{"site":"workflow","path":"/docs/ai/human-in-the-loop","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-api/start","title":"start","summary":"Use start to programmatically enqueue a new workflow run from outside a workflow function.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-api/get-hook-by-token"},{"site":"workflow","path":"/docs/api-reference/workflow-api/get-run"},{"site":"workflow","path":"/docs/errors/start-invalid-workflow-function"},{"site":"workflow","path":"/docs/foundations/idempotency"},{"site":"workflow","path":"/docs/foundations/serialization"},{"site":"workflow","path":"/docs/foundations/versioning"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-api/get-run"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/queue"},{"site":"workflow","path":"/docs/errors/deployment-mismatch"},{"site":"workflow","path":"/docs/errors/start-invalid-workflow-function"},{"site":"workflow","path":"/docs/foundations/idempotency"},{"site":"workflow","path":"/docs/foundations/starting-workflows"},{"site":"workflow","path":"/docs/foundations/streaming"},{"site":"workflow","path":"/docs/how-it-works/code-transform"},{"site":"workflow","path":"/docs/testing"},{"site":"workflow","path":"/docs/testing/server-based"}],"requires":[{"site":"workflow","path":"/docs/foundations/starting-workflows"}],"neighbors":[{"site":"workflow","path":"/docs/foundations/starting-workflows","distance":0.1972},{"site":"workflow","path":"/docs/errors/start-invalid-workflow-function","distance":0.224},{"site":"workflow","path":"/docs/foundations/versioning","distance":0.2441},{"site":"workflow","path":"/docs/api-reference/workflow-api/get-run","distance":0.2747},{"site":"workflow","path":"/docs/getting-started/next","distance":0.2873}],"related":[{"site":"workflow","path":"/docs/foundations/starting-workflows","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/next","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/tanstack-start","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/express","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/nestjs","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-astro","title":"workflow/astro","summary":"Explore the Astro integration for automatic workflow bundling and runtime support.","outbound":[],"inbound":[{"site":"workflow","path":"/docs/getting-started/astro"}],"requires":[{"site":"workflow","path":"/docs/api-reference"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-astro/workflow","distance":0.1761},{"site":"workflow","path":"/docs/getting-started/astro","distance":0.246},{"site":"workflow","path":"/docs/api-reference/workflow-next","distance":0.287},{"site":"workflow","path":"/docs/api-reference","distance":0.3034},{"site":"workflow","path":"/docs/api-reference/workflow-ai","distance":0.3267}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/astro","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-next","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-ai","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-nest","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-astro/workflow","title":"workflow","summary":"Add the workflow integration to your Astro config to enable workflow directive transformation.","outbound":[],"inbound":[{"site":"workflow","path":"/docs/getting-started/astro"}],"requires":[{"site":"workflow","path":"/docs/getting-started/astro"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-astro","distance":0.1761},{"site":"workflow","path":"/docs/getting-started/astro","distance":0.239},{"site":"workflow","path":"/docs/api-reference/workflow-vite/workflow","distance":0.3011},{"site":"workflow","path":"/docs/api-reference/workflow-next/with-workflow","distance":0.3191},{"site":"workflow","path":"/docs/api-reference/workflow-sveltekit/workflow-plugin","distance":0.322}],"related":[{"site":"workflow","path":"/docs/getting-started/astro","via":"requires"},{"site":"workflow","path":"/docs/api-reference/workflow-vite/workflow","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-next/with-workflow","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-sveltekit/workflow-plugin","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-nuxt","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-errors","title":"workflow/errors","summary":"Explore the error classes exported from workflow/errors for handling workflow failures.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-error"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-world-error"}],"inbound":[],"requires":[{"site":"workflow","path":"/docs/api-reference"}],"neighbors":[{"site":"workflow","path":"/docs/errors","distance":0.1428},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-error","distance":0.1539},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-world-error","distance":0.188},{"site":"workflow","path":"/docs/api-reference/workflow","distance":0.2055},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-runtime-error","distance":0.2305}],"related":[{"site":"workflow","path":"/docs/errors","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/errors-and-retries","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-globals","via":"neighbor"},{"site":"workflow","path":"/docs/foundations","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-errors/entity-conflict-error","title":"EntityConflictError","summary":"Catch EntityConflictError when a world operation conflicts with entity state (e.g. duplicate events or runs).","outbound":[],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-world-error"}],"requires":[{"site":"workflow","path":"/docs/api-reference/workflow-errors"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-world-error","distance":0.2026},{"site":"workflow","path":"/docs/api-reference/workflow-errors/run-expired-error","distance":0.2831},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-runtime-error","distance":0.297},{"site":"workflow","path":"/docs/api-reference/workflow-errors/hook-conflict-error","distance":0.3227},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-failed-error","distance":0.3311}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-world-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/run-expired-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-runtime-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/hook-conflict-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-failed-error","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-errors/hook-conflict-error","title":"HookConflictError","summary":"Catch HookConflictError when a hook token is already claimed by another active workflow run.","outbound":[{"site":"workflow","path":"/docs/errors/hook-conflict"}],"inbound":[{"site":"workflow","path":"/docs/errors/hook-conflict"}],"requires":[{"site":"workflow","path":"/docs/api-reference/workflow-errors"}],"neighbors":[{"site":"workflow","path":"/docs/errors/hook-conflict","distance":0.1386},{"site":"workflow","path":"/docs/api-reference/workflow-errors/hook-not-found-error","distance":0.2086},{"site":"workflow","path":"/docs/api-reference/workflow/create-hook","distance":0.2398},{"site":"workflow","path":"/docs/api-reference/workflow-api/get-hook-by-token","distance":0.2643},{"site":"workflow","path":"/docs/foundations/idempotency","distance":0.2877}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/hook-not-found-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow/create-hook","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-api/get-hook-by-token","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/idempotency","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow/define-hook","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-errors/hook-not-found-error","title":"HookNotFoundError","summary":"Catch HookNotFoundError when calling resumeHook() or resumeWebhook() with a token that doesn't match any active hook.","outbound":[],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-error"}],"requires":[{"site":"workflow","path":"/docs/api-reference/workflow-errors"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-hook","distance":0.1378},{"site":"workflow","path":"/docs/api-reference/workflow/create-hook","distance":0.1667},{"site":"workflow","path":"/docs/api-reference/workflow-api/get-hook-by-token","distance":0.1775},{"site":"workflow","path":"/docs/foundations/hooks","distance":0.2076},{"site":"workflow","path":"/docs/api-reference/workflow-errors/hook-conflict-error","distance":0.2086}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-hook","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow/create-hook","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-api/get-hook-by-token","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/hooks","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/hook-conflict-error","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-errors/run-expired-error","title":"RunExpiredError","summary":"Catch RunExpiredError when a workflow run has expired and can no longer accept operations.","outbound":[],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-world-error"}],"requires":[{"site":"workflow","path":"/docs/api-reference/workflow-errors"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/run-not-supported-error","distance":0.2169},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-failed-error","distance":0.233},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-not-found-error","distance":0.2333},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-runtime-error","distance":0.2334},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-not-completed-error","distance":0.2394}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/run-not-supported-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-failed-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-not-found-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-runtime-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-not-completed-error","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-errors/run-not-supported-error","title":"RunNotSupportedError","summary":"Catch RunNotSupportedError when stored run data requires a newer workflow package version.","outbound":[],"inbound":[{"site":"workflow","path":"/docs/foundations/versioning"}],"requires":[{"site":"workflow","path":"/docs/api-reference/workflow-errors"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-not-found-error","distance":0.1923},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-not-completed-error","distance":0.2096},{"site":"workflow","path":"/docs/api-reference/workflow-errors/run-expired-error","distance":0.2169},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-failed-error","distance":0.2269},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-not-registered-error","distance":0.2389}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-not-found-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-not-completed-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/run-expired-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-failed-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-not-registered-error","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-errors/step-not-registered-error","title":"StepNotRegisteredError","summary":"Catch StepNotRegisteredError when a step function cannot be found during execution.","outbound":[{"site":"workflow","path":"/docs/errors/step-not-registered"}],"inbound":[{"site":"workflow","path":"/docs/errors/step-not-registered"}],"requires":[{"site":"workflow","path":"/docs/api-reference/workflow-errors"}],"neighbors":[{"site":"workflow","path":"/docs/errors/step-not-registered","distance":0.141},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-not-registered-error","distance":0.1508},{"site":"workflow","path":"/docs/errors/workflow-not-registered","distance":0.2928},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-runtime-error","distance":0.3058},{"site":"workflow","path":"/docs/api-reference/workflow-errors/run-not-supported-error","distance":0.3082}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-not-registered-error","via":"neighbor"},{"site":"workflow","path":"/docs/errors/workflow-not-registered","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-runtime-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/run-not-supported-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-not-found-error","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-errors/throttle-error","title":"ThrottleError","summary":"Catch ThrottleError when a workflow storage operation is rate-limited (HTTP 429).","outbound":[],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-world-error"}],"requires":[{"site":"workflow","path":"/docs/api-reference/workflow-errors"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/too-early-error","distance":0.2414},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-world-error","distance":0.2726},{"site":"workflow","path":"/docs/api-reference/workflow-errors/run-expired-error","distance":0.3151},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-runtime-error","distance":0.3152},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-failed-error","distance":0.3284}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/too-early-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-world-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/run-expired-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-runtime-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-failed-error","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-errors/too-early-error","title":"TooEarlyError","summary":"Catch TooEarlyError when a world operation is attempted before the system is ready.","outbound":[],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-world-error"}],"requires":[{"site":"workflow","path":"/docs/api-reference/workflow-errors"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/throttle-error","distance":0.2414},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-world-error","distance":0.2623},{"site":"workflow","path":"/docs/api-reference/workflow-errors/run-expired-error","distance":0.3116},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-runtime-error","distance":0.32},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-failed-error","distance":0.3396}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/throttle-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-world-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/run-expired-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-runtime-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-failed-error","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-error","title":"WorkflowError","summary":"All errors thrown by the Workflow SDK extend WorkflowError.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/hook-not-found-error"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-failed-error"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-errors"}],"requires":[{"site":"workflow","path":"/docs/api-reference/workflow-errors"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-errors","distance":0.1539},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-runtime-error","distance":0.1579},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-world-error","distance":0.1647},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-failed-error","distance":0.1692},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-not-registered-error","distance":0.2021}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-runtime-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-world-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-not-registered-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-not-completed-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-not-found-error","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-not-registered-error","title":"WorkflowNotRegisteredError","summary":"Catch WorkflowNotRegisteredError when a workflow function cannot be found during execution.","outbound":[],"inbound":[{"site":"workflow","path":"/docs/errors/workflow-not-registered"}],"requires":[{"site":"workflow","path":"/docs/api-reference/workflow-errors"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/step-not-registered-error","distance":0.1508},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-runtime-error","distance":0.1556},{"site":"workflow","path":"/docs/errors/workflow-not-registered","distance":0.1637},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-not-completed-error","distance":0.1942},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-not-found-error","distance":0.2002}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/step-not-registered-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-runtime-error","via":"neighbor"},{"site":"workflow","path":"/docs/errors/workflow-not-registered","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-not-completed-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-not-found-error","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-cancelled-error","title":"WorkflowRunCancelledError","summary":"Catch WorkflowRunCancelledError when awaiting run.returnValue on a run that was cancelled.","outbound":[],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-api/get-run"}],"requires":[{"site":"workflow","path":"/docs/api-reference/workflow-errors"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-not-completed-error","distance":0.1316},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-failed-error","distance":0.1377},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-not-found-error","distance":0.1662},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-runtime-error","distance":0.2086},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-not-registered-error","distance":0.2393}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-not-completed-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-failed-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-not-found-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-runtime-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-not-registered-error","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-failed-error","title":"WorkflowRunFailedError","summary":"Catch WorkflowRunFailedError when awaiting run.returnValue on a run that encountered a fatal error.","outbound":[],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-error"}],"requires":[{"site":"workflow","path":"/docs/api-reference/workflow-errors"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-runtime-error","distance":0.1333},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-cancelled-error","distance":0.1377},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-not-completed-error","distance":0.145},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-not-found-error","distance":0.1613},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-error","distance":0.1692}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-runtime-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-cancelled-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-not-completed-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-not-found-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-error","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-not-completed-error","title":"WorkflowRunNotCompletedError","summary":"Catch WorkflowRunNotCompletedError when reading the return value of a run that is still pending or running.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-api/get-run"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-api/get-run"}],"requires":[{"site":"workflow","path":"/docs/api-reference/workflow-errors"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-cancelled-error","distance":0.1316},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-not-found-error","distance":0.1417},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-failed-error","distance":0.145},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-runtime-error","distance":0.1867},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-not-registered-error","distance":0.1942}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-cancelled-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-not-found-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-failed-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-runtime-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-not-registered-error","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-not-found-error","title":"WorkflowRunNotFoundError","summary":"Catch WorkflowRunNotFoundError when performing operations on a non-existent workflow run.","outbound":[],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-api/get-run"}],"requires":[{"site":"workflow","path":"/docs/api-reference/workflow-errors"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-not-completed-error","distance":0.1417},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-failed-error","distance":0.1613},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-cancelled-error","distance":0.1662},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-runtime-error","distance":0.1772},{"site":"workflow","path":"/docs/api-reference/workflow-errors/run-not-supported-error","distance":0.1923}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-not-completed-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-failed-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-cancelled-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-runtime-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/run-not-supported-error","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-runtime-error","title":"WorkflowRuntimeError","summary":"Catch WorkflowRuntimeError for runtime-level failures like unserializable values or workflow timeouts.","outbound":[],"inbound":[{"site":"workflow","path":"/docs/foundations/serialization"}],"requires":[{"site":"workflow","path":"/docs/api-reference/workflow-errors"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-failed-error","distance":0.1333},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-not-registered-error","distance":0.1556},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-error","distance":0.1579},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-not-found-error","distance":0.1772},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-not-completed-error","distance":0.1867}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-failed-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-not-registered-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-not-found-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-not-completed-error","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-world-error","title":"WorkflowWorldError","summary":"Catch WorkflowWorldError to handle any error originating from a workflow world (storage backend).","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/entity-conflict-error"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/run-expired-error"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/throttle-error"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/too-early-error"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-errors"}],"requires":[{"site":"workflow","path":"/docs/api-reference/workflow-errors"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-error","distance":0.1647},{"site":"workflow","path":"/docs/api-reference/workflow-errors","distance":0.188},{"site":"workflow","path":"/docs/api-reference/workflow-errors/entity-conflict-error","distance":0.2026},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-runtime-error","distance":0.212},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-failed-error","distance":0.242}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-runtime-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-failed-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-not-registered-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-not-completed-error","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-globals","title":"Workflow Globals","summary":"Reference of all global APIs available inside workflow functions.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow/fetch"},{"site":"workflow","path":"/docs/api-reference/workflow/sleep"},{"site":"workflow","path":"/docs/errors/fetch-in-workflow"},{"site":"workflow","path":"/docs/errors/node-js-module-in-workflow"},{"site":"workflow","path":"/docs/errors/timeout-in-workflow"},{"site":"workflow","path":"/docs/foundations/serialization"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps"}],"inbound":[{"site":"workflow","path":"/docs/errors/node-js-module-in-workflow"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps"}],"requires":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference","distance":0.2062},{"site":"workflow","path":"/docs/api-reference/workflow","distance":0.2142},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","distance":0.2256},{"site":"workflow","path":"/docs/foundations/serialization","distance":0.2473},{"site":"workflow","path":"/docs/how-it-works/code-transform","distance":0.262}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow","via":"neighbor"},{"site":"workflow","path":"/docs/how-it-works/code-transform","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-api","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/storage","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-nest","title":"workflow/nest","summary":"Explore the NestJS integration for workflow bundle building and runtime routing.","outbound":[],"inbound":[{"site":"workflow","path":"/docs/getting-started/nestjs"}],"requires":[{"site":"workflow","path":"/docs/api-reference"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-nest/workflow-controller","distance":0.1759},{"site":"workflow","path":"/docs/api-reference/workflow-nest/workflow-module","distance":0.2067},{"site":"workflow","path":"/docs/getting-started/nestjs","distance":0.2198},{"site":"workflow","path":"/docs/api-reference/workflow-nest/nest-local-builder","distance":0.2389},{"site":"workflow","path":"/docs/api-reference/workflow-next","distance":0.2536}],"related":[{"site":"workflow","path":"/docs/getting-started/nestjs","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-next","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-nuxt","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-nitro","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-nest/configure-workflow-controller","title":"configureWorkflowController","summary":"Configure the directory WorkflowController loads workflow bundles from.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-nest/workflow-controller"},{"site":"workflow","path":"/docs/api-reference/workflow-nest/workflow-module"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-nest/workflow-controller"},{"site":"workflow","path":"/docs/api-reference/workflow-nest/workflow-module"}],"requires":[{"site":"workflow","path":"/docs/getting-started/nestjs"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-nest/workflow-controller","distance":0.2058},{"site":"workflow","path":"/docs/api-reference/workflow-nest/workflow-module","distance":0.2734},{"site":"workflow","path":"/docs/api-reference/workflow-nest","distance":0.2855},{"site":"workflow","path":"/docs/getting-started/nestjs","distance":0.3424},{"site":"workflow","path":"/docs/api-reference/workflow-nest/nest-local-builder","distance":0.358}],"related":[{"site":"workflow","path":"/docs/getting-started/nestjs","via":"requires"},{"site":"workflow","path":"/docs/api-reference/workflow-nest/nest-local-builder","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-next/with-workflow","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-nuxt","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-next","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-nest/nest-local-builder","title":"NestLocalBuilder","summary":"Use NestLocalBuilder to build workflow bundles programmatically in a NestJS project.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-nest/workflow-module"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-nest/workflow-module"}],"requires":[{"site":"workflow","path":"/docs/getting-started/nestjs"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-nest","distance":0.2389},{"site":"workflow","path":"/docs/api-reference/workflow-nest/workflow-module","distance":0.2506},{"site":"workflow","path":"/docs/getting-started/nestjs","distance":0.3139},{"site":"workflow","path":"/docs/api-reference/workflow-nest/configure-workflow-controller","distance":0.358},{"site":"workflow","path":"/docs/api-reference/workflow-nuxt","distance":0.3812}],"related":[{"site":"workflow","path":"/docs/getting-started/nestjs","via":"requires"},{"site":"workflow","path":"/docs/api-reference/workflow-nest/configure-workflow-controller","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-nuxt","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-nest/workflow-controller","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-next/with-workflow","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-nest/workflow-controller","title":"WorkflowController","summary":"WorkflowController handles the well-known workflow endpoints in a NestJS app.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-nest/configure-workflow-controller"},{"site":"workflow","path":"/docs/api-reference/workflow-nest/workflow-module"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-nest/configure-workflow-controller"},{"site":"workflow","path":"/docs/api-reference/workflow-nest/workflow-module"}],"requires":[{"site":"workflow","path":"/docs/getting-started/nestjs"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-nest","distance":0.1759},{"site":"workflow","path":"/docs/api-reference/workflow-nest/configure-workflow-controller","distance":0.2058},{"site":"workflow","path":"/docs/api-reference/workflow-nest/workflow-module","distance":0.2099},{"site":"workflow","path":"/docs/getting-started/nestjs","distance":0.2447},{"site":"workflow","path":"/docs/api-reference/workflow","distance":0.3098}],"related":[{"site":"workflow","path":"/docs/getting-started/nestjs","via":"requires"},{"site":"workflow","path":"/docs/api-reference/workflow","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/next","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-nuxt","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-next","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-nest/workflow-module","title":"WorkflowModule","summary":"Import WorkflowModule.forRoot() in your AppModule to enable workflows in a NestJS app.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-nest/configure-workflow-controller"},{"site":"workflow","path":"/docs/api-reference/workflow-nest/nest-local-builder"},{"site":"workflow","path":"/docs/api-reference/workflow-nest/workflow-controller"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-nest/configure-workflow-controller"},{"site":"workflow","path":"/docs/api-reference/workflow-nest/nest-local-builder"},{"site":"workflow","path":"/docs/api-reference/workflow-nest/workflow-controller"}],"requires":[{"site":"workflow","path":"/docs/getting-started/nestjs"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-nest","distance":0.2067},{"site":"workflow","path":"/docs/api-reference/workflow-nest/workflow-controller","distance":0.2099},{"site":"workflow","path":"/docs/getting-started/nestjs","distance":0.2442},{"site":"workflow","path":"/docs/api-reference/workflow-nest/nest-local-builder","distance":0.2506},{"site":"workflow","path":"/docs/api-reference/workflow-nest/configure-workflow-controller","distance":0.2734}],"related":[{"site":"workflow","path":"/docs/getting-started/nestjs","via":"requires"},{"site":"workflow","path":"/docs/api-reference/workflow-nuxt","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-next/with-workflow","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-nitro","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/next","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-next","title":"workflow/next","summary":"Explore the Next.js integration for automatic workflow bundling and runtime support.","outbound":[],"inbound":[{"site":"workflow","path":"/docs/getting-started/next"}],"requires":[{"site":"workflow","path":"/docs/api-reference"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-next/with-workflow","distance":0.1853},{"site":"workflow","path":"/docs/getting-started/next","distance":0.2203},{"site":"workflow","path":"/docs/api-reference/workflow-nuxt","distance":0.2493},{"site":"workflow","path":"/docs/api-reference/workflow","distance":0.2529},{"site":"workflow","path":"/docs/api-reference/workflow-nest","distance":0.2536}],"related":[{"site":"workflow","path":"/docs/getting-started/next","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-nuxt","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-nest","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-sveltekit","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-next/with-workflow","title":"withWorkflow","summary":"Wrap your Next.js config with withWorkflow to enable workflow directive transformation.","outbound":[],"inbound":[{"site":"workflow","path":"/docs/errors/start-invalid-workflow-function"},{"site":"workflow","path":"/docs/getting-started/next"}],"requires":[{"site":"workflow","path":"/docs/getting-started/next"}],"neighbors":[{"site":"workflow","path":"/docs/getting-started/next","distance":0.1693},{"site":"workflow","path":"/docs/api-reference/workflow-next","distance":0.1853},{"site":"workflow","path":"/docs/api-reference/workflow-nuxt","distance":0.2525},{"site":"workflow","path":"/docs/getting-started/nestjs","distance":0.2537},{"site":"workflow","path":"/docs/getting-started/nuxt","distance":0.2591}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/next","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-nuxt","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/nestjs","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/nuxt","via":"neighbor"},{"site":"workflow","path":"/docs/how-it-works/code-transform","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-nitro","title":"workflow/nitro","summary":"Explore the Nitro module that enables workflow directive transformation in Nitro apps.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-nuxt"},{"site":"workflow","path":"/docs/api-reference/workflow-vite"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-nuxt"},{"site":"workflow","path":"/docs/api-reference/workflow-vite"},{"site":"workflow","path":"/docs/api-reference/workflow-vite/workflow"}],"requires":[{"site":"workflow","path":"/docs/api-reference"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-nuxt","distance":0.1463},{"site":"workflow","path":"/docs/api-reference/workflow-vite/workflow","distance":0.1501},{"site":"workflow","path":"/docs/api-reference/workflow-vite","distance":0.1882},{"site":"workflow","path":"/docs/getting-started/nitro","distance":0.1988},{"site":"workflow","path":"/docs/getting-started/vite","distance":0.2782}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/backend/nitro","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-vite/workflow","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/nitro-vite-plugin","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/nitro","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/vite","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-nest","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-next/with-workflow","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-nuxt","title":"workflow/nuxt","summary":"Explore the Nuxt module that enables workflow directive transformation in Nuxt apps.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-nitro"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-nitro"}],"requires":[{"site":"workflow","path":"/docs/api-reference"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-nitro","distance":0.1463},{"site":"workflow","path":"/docs/getting-started/nuxt","distance":0.2094},{"site":"workflow","path":"/docs/api-reference/workflow-vite/workflow","distance":0.2347},{"site":"workflow","path":"/docs/api-reference/workflow-next","distance":0.2493},{"site":"workflow","path":"/docs/api-reference/workflow-next/with-workflow","distance":0.2525}],"related":[{"site":"turborepo","path":"/docs/guides/frameworks/nuxt","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/nuxt","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-vite/workflow","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-next","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-next/with-workflow","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-vite","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-observability","title":"workflow/observability","summary":"Explore utilities for hydrating serialized workflow data and parsing display names in observability tools.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-observability/hydrate-data"},{"site":"workflow","path":"/docs/api-reference/workflow-observability/hydrate-resource-io"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world"},{"site":"workflow","path":"/docs/how-it-works/encryption"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-observability/hydrate-data"},{"site":"workflow","path":"/docs/api-reference/workflow-observability/hydrate-resource-io"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/storage"}],"requires":[{"site":"workflow","path":"/docs/api-reference"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-observability/hydrate-resource-io","distance":0.1876},{"site":"workflow","path":"/docs/api-reference/workflow-observability/observability-revivers","distance":0.2063},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world","distance":0.2765},{"site":"workflow","path":"/docs/observability","distance":0.2822},{"site":"workflow","path":"/docs/api-reference/workflow-observability/hydrate-data","distance":0.2878}],"related":[{"site":"workflow","path":"/docs/observability","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-globals","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/storage","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/serialization","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-api","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-observability/hydrate-data","title":"hydrateData","summary":"Use hydrateData to deserialize a single value when hydrateResourceIO's field mapping doesn't apply.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-observability"},{"site":"workflow","path":"/docs/api-reference/workflow-observability/hydrate-resource-io"},{"site":"workflow","path":"/docs/api-reference/workflow-observability/observability-revivers"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-observability"},{"site":"workflow","path":"/docs/api-reference/workflow-observability/observability-revivers"}],"requires":[{"site":"workflow","path":"/docs/api-reference/workflow-observability"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-observability/hydrate-resource-io","distance":0.2004},{"site":"workflow","path":"/docs/api-reference/workflow-observability/observability-revivers","distance":0.2697},{"site":"workflow","path":"/docs/api-reference/workflow-observability","distance":0.2878},{"site":"workflow","path":"/docs/api-reference/workflow-serde/workflow-deserialize","distance":0.4546},{"site":"workflow","path":"/docs/api-reference/workflow-serde/workflow-serialize","distance":0.48}],"related":[{"site":"swr","path":"/docs/api","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-value","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-serde/workflow-deserialize","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-serde/workflow-serialize","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/serialization","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-globals","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-observability/hydrate-resource-io","title":"hydrateResourceIO","summary":"Use hydrateResourceIO with observabilityRevivers to deserialize step input/output for display in observability tools.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-observability"},{"site":"workflow","path":"/docs/api-reference/workflow-observability/observability-revivers"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-observability"},{"site":"workflow","path":"/docs/api-reference/workflow-observability/hydrate-data"},{"site":"workflow","path":"/docs/api-reference/workflow-observability/observability-revivers"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/storage"}],"requires":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-observability","distance":0.1876},{"site":"workflow","path":"/docs/api-reference/workflow-observability/hydrate-data","distance":0.2004},{"site":"workflow","path":"/docs/api-reference/workflow-observability/observability-revivers","distance":0.2144},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world","distance":0.2762},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/storage","distance":0.3079}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world","via":"requires"},{"site":"workflow","path":"/docs/api-reference/workflow-observability/hydrate-data","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/storage","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/streams","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-observability/observability-revivers","title":"observabilityRevivers","summary":"Pass observabilityRevivers to hydrateResourceIO or hydrateData to deserialize standard workflow data types.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-observability/hydrate-data"},{"site":"workflow","path":"/docs/api-reference/workflow-observability/hydrate-resource-io"},{"site":"workflow","path":"/docs/api-reference/workflow-observability/parse-class-name"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-observability/hydrate-data"},{"site":"workflow","path":"/docs/api-reference/workflow-observability/hydrate-resource-io"}],"requires":[{"site":"workflow","path":"/docs/api-reference/workflow-observability"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-observability","distance":0.2063},{"site":"workflow","path":"/docs/api-reference/workflow-observability/hydrate-resource-io","distance":0.2144},{"site":"workflow","path":"/docs/api-reference/workflow-observability/hydrate-data","distance":0.2697},{"site":"workflow","path":"/docs/foundations/serialization","distance":0.3793},{"site":"workflow","path":"/docs/api-reference/workflow-globals","distance":0.4013}],"related":[{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"swr","path":"/docs/api","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/serialization","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-globals","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/storage","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-observability/parse-class-name","title":"parseClassName","summary":"Use parseClassName to extract a display-friendly class name from a serialized class instance identifier.","outbound":[],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-observability/observability-revivers"}],"requires":[{"site":"workflow","path":"/docs/api-reference/workflow-observability"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-observability/parse-step-name","distance":0.3284},{"site":"workflow","path":"/docs/api-reference/workflow-observability/parse-workflow-name","distance":0.3323},{"site":"workflow","path":"/docs/api-reference/workflow-observability","distance":0.4897},{"site":"workflow","path":"/docs/api-reference/workflow-serde","distance":0.5444},{"site":"workflow","path":"/docs/foundations/serialization","distance":0.5517}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-observability/parse-step-name","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-observability/parse-workflow-name","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/markdown","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-pathname","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/user/get","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/cards","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/userAgent","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-observability/observability-revivers","via":"inbound"},{"site":"workflow","path":"/docs/api-reference/workflow-serde","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/serialization","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-observability/parse-step-name","title":"parseStepName","summary":"Use parseStepName to extract a display-friendly short name from a step's machine-readable identifier.","outbound":[],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/storage"}],"requires":[{"site":"workflow","path":"/docs/api-reference/workflow-observability"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-observability/parse-workflow-name","distance":0.2077},{"site":"workflow","path":"/docs/api-reference/workflow-observability/parse-class-name","distance":0.3284},{"site":"workflow","path":"/docs/api-reference/workflow/get-step-metadata","distance":0.426},{"site":"workflow","path":"/docs/api-reference/workflow-observability","distance":0.4328},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","distance":0.435}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-observability/parse-workflow-name","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-observability/parse-class-name","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow/get-step-metadata","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/step-not-registered-error","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-observability/parse-workflow-name","title":"parseWorkflowName","summary":"Use parseWorkflowName to extract a display-friendly short name from a run's workflowName identifier.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/storage"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world"},{"site":"workflow","path":"/docs/foundations/versioning"}],"requires":[{"site":"workflow","path":"/docs/api-reference/workflow-observability"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-observability/parse-step-name","distance":0.2077},{"site":"workflow","path":"/docs/api-reference/workflow-observability","distance":0.3256},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world","distance":0.3316},{"site":"workflow","path":"/docs/api-reference/workflow-observability/parse-class-name","distance":0.3323},{"site":"workflow","path":"/docs/api-reference/workflow/get-workflow-metadata","distance":0.3355}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-observability/parse-step-name","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-observability/parse-class-name","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow/get-workflow-metadata","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-api","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-runtime","title":"workflow/runtime","summary":"Explore runtime functions for resolving the World instance and configuring workflow infrastructure.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-api"}],"requires":[{"site":"workflow","path":"/docs/api-reference"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-api","distance":0.1658},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world","distance":0.174},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world","distance":0.2076},{"site":"workflow","path":"/docs/api-reference","distance":0.2373},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/storage","distance":0.2507}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-api","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-globals","via":"neighbor"},{"site":"workflow","path":"/docs/foundations","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-runtime-error","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/create-world","title":"createWorld","summary":"Use createWorld to instantiate a World from WORKFLOW_TARGET_WORLD environment configuration, bypassing the cached instance.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/set-world"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/set-world"}],"requires":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/set-world","distance":0.1731},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world","distance":0.2335},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world","distance":0.316},{"site":"workflow","path":"/docs/api-reference/workflow-runtime","distance":0.3591},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world-handlers","distance":0.3595}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world-handlers","via":"neighbor"},{"site":"workflow","path":"/docs/deploying","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-world-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/queue","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/storage","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world","title":"getWorld","summary":"Resolve the World instance for low-level workflow storage, queuing, and streaming backends.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-api/get-run"},{"site":"workflow","path":"/docs/api-reference/workflow-api/start"},{"site":"workflow","path":"/docs/api-reference/workflow-observability"},{"site":"workflow","path":"/docs/api-reference/workflow-observability/parse-workflow-name"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/create-world"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world-handlers"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/set-world"}],"requires":[{"site":"workflow","path":"/docs/deploying"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world","distance":0.1124},{"site":"workflow","path":"/docs/api-reference/workflow-runtime","distance":0.2076},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/storage","distance":0.2257},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/create-world","distance":0.2335},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/set-world","distance":0.256}],"related":[{"site":"workflow","path":"/docs/deploying","via":"requires"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/storage","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/create-world","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/set-world","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world-handlers","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world-handlers","title":"getWorldHandlers","summary":"Use getWorldHandlers at build time to access queue handler creation without caching an environment-bound World.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/workflow-entrypoint"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/workflow-entrypoint"}],"requires":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world","distance":0.2895},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world","distance":0.2941},{"site":"workflow","path":"/docs/api-reference/workflow-runtime","distance":0.3468},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/queue","distance":0.3488},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/create-world","distance":0.3595}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/queue","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/create-world","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/set-world","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/storage","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-api","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/health-check","title":"healthCheck","summary":"Use healthCheck to verify the workflow endpoint of a deployment processes queue messages end-to-end.","outbound":[],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/workflow-entrypoint"}],"requires":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world","distance":0.3703},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/queue","distance":0.3731},{"site":"workflow","path":"/docs/deploying","distance":0.3769},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world","distance":0.3888},{"site":"vercel-docs","path":"/docs/checks","distance":0.3922}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world","via":"requires"},{"site":"vercel-docs","path":"/docs/checks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/checks/creating-checks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-checks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/get-a-check-run","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-check-runs-for-a-deployment","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/queue","via":"neighbor"},{"site":"workflow","path":"/docs/deploying","via":"neighbor"},{"site":"workflow","path":"/docs/observability","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/set-world","title":"setWorld","summary":"Use setWorld to inject a custom World instance or reset the cache after environment configuration changes.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/create-world"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/create-world"}],"requires":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/create-world","distance":0.1731},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world","distance":0.256},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world","distance":0.3299},{"site":"workflow","path":"/docs/api-reference/workflow-runtime","distance":0.3618},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world-handlers","distance":0.3853}],"related":[{"site":"swr","path":"/docs/global-configuration","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world-handlers","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-world-error","via":"neighbor"},{"site":"workflow","path":"/docs/deploying","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/storage","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-globals","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/step-entrypoint","title":"stepEntrypoint","summary":"Mount stepEntrypoint as the route that executes step functions in custom server environments.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/workflow-entrypoint"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/workflow-entrypoint"}],"requires":[{"site":"workflow","path":"/docs/how-it-works/code-transform"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/workflow-entrypoint","distance":0.156},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","distance":0.3637},{"site":"workflow","path":"/docs/foundations/starting-workflows","distance":0.3911},{"site":"workflow","path":"/docs/api-reference/workflow/fetch","distance":0.3914},{"site":"workflow","path":"/docs/getting-started/next","distance":0.3942}],"related":[{"site":"workflow","path":"/docs/how-it-works/code-transform","via":"requires"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/invoking-entrypoints","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/invoking-entrypoints","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/starting-workflows","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow/fetch","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/next","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/workflow-entrypoint","title":"workflowEntrypoint","summary":"Use workflowEntrypoint to wire a compiled workflow bundle into an HTTP route in custom server environments.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world-handlers"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/health-check"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/step-entrypoint"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/queue"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world-handlers"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/step-entrypoint"}],"requires":[{"site":"workflow","path":"/docs/how-it-works/code-transform"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/step-entrypoint","distance":0.156},{"site":"workflow","path":"/docs/getting-started/next","distance":0.3372},{"site":"workflow","path":"/docs/api-reference/workflow-next","distance":0.3448},{"site":"workflow","path":"/docs/api-reference/workflow-nest/workflow-controller","distance":0.3489},{"site":"workflow","path":"/docs/foundations/starting-workflows","distance":0.3514}],"related":[{"site":"workflow","path":"/docs/how-it-works/code-transform","via":"requires"},{"site":"workflow","path":"/docs/getting-started/next","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-next","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-nest/workflow-controller","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/starting-workflows","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world","title":"World SDK","summary":"Access workflow infrastructure via await getWorld() for building observability dashboards, admin tools, and custom integrations.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-api/get-run"},{"site":"workflow","path":"/docs/api-reference/workflow-api/start"},{"site":"workflow","path":"/docs/api-reference/workflow-observability"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-observability"},{"site":"workflow","path":"/docs/api-reference/workflow-observability/hydrate-resource-io"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/create-world"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world-handlers"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/set-world"}],"requires":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world","distance":0.1124},{"site":"workflow","path":"/docs/api-reference/workflow-runtime","distance":0.174},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/storage","distance":0.1866},{"site":"workflow","path":"/docs/api-reference/workflow-api","distance":0.2685},{"site":"workflow","path":"/docs/api-reference/workflow-observability/hydrate-resource-io","distance":0.2762}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-api","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-observability/hydrate-resource-io","via":"neighbor"},{"site":"workflow","path":"/docs/deploying","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world-handlers","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/queue","title":"Queue","summary":"Methods: getDeploymentId(), queue(), createQueueHandler(). Internal queue dispatch — normally handled by the SDK.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-api/start"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/storage"},{"site":"workflow","path":"/docs/foundations/starting-workflows"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/workflow-entrypoint"}],"requires":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world","distance":0.3131},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world","distance":0.3328},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/storage","distance":0.3396},{"site":"workflow","path":"/docs/ai/message-queueing","distance":0.3443},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world-handlers","distance":0.3488}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world","via":"requires"},{"site":"vercel-docs","path":"/docs/queues/sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"workflow","path":"/docs/ai/message-queueing","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world-handlers","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/health-check","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/hooks","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/storage","title":"Storage","summary":"Interfaces: world.events, world.runs, world.steps, world.hooks. Events are the source of truth; runs, steps, and hooks are materialized views.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-api/get-hook-by-token"},{"site":"workflow","path":"/docs/api-reference/workflow-api/get-run"},{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-hook"},{"site":"workflow","path":"/docs/api-reference/workflow-observability"},{"site":"workflow","path":"/docs/api-reference/workflow-observability/hydrate-resource-io"},{"site":"workflow","path":"/docs/api-reference/workflow-observability/parse-step-name"},{"site":"workflow","path":"/docs/foundations/hooks"},{"site":"workflow","path":"/docs/foundations/idempotency"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps"},{"site":"workflow","path":"/docs/how-it-works/event-sourcing"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-observability/parse-workflow-name"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/queue"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/streams"}],"requires":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world"}],"neighbors":[{"site":"workflow","path":"/docs/foundations/hooks","distance":0.1732},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world","distance":0.1866},{"site":"workflow","path":"/docs/foundations/idempotency","distance":0.2025},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world","distance":0.2257},{"site":"workflow","path":"/docs/api-reference/workflow/create-hook","distance":0.2261}],"related":[{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world","via":"requires"},{"site":"workflow","path":"/docs/api-reference/workflow/create-hook","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-api","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow/define-hook","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/streams","title":"Streams","summary":"Methods: streams.write(), streams.writeMulti(), streams.get(), streams.close(), streams.list(), streams.getChunks(), streams.getInfo(). Stream methods live on world.streams.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/storage"},{"site":"workflow","path":"/docs/api-reference/workflow/get-writable"},{"site":"workflow","path":"/docs/foundations/streaming"}],"inbound":[{"site":"workflow","path":"/docs/foundations/streaming"}],"requires":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow/get-writable","distance":0.1667},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world","distance":0.2798},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/storage","distance":0.2845},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world","distance":0.2938},{"site":"workflow","path":"/docs/ai/resumable-streams","distance":0.2938}],"related":[{"site":"eve","path":"/docs/guides/client/streaming","via":"neighbor"},{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world","via":"requires"},{"site":"workflow","path":"/docs/ai/resumable-streams","via":"neighbor"},{"site":"workflow","path":"/docs/ai/streaming-updates-from-tools","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-globals","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-serde","title":"@workflow/serde","summary":null,"outbound":[{"site":"workflow","path":"/docs/foundations/serialization"}],"inbound":[],"requires":[{"site":"workflow","path":"/docs/api-reference"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-serde/workflow-serialize","distance":0.193},{"site":"workflow","path":"/docs/api-reference/workflow-serde/workflow-deserialize","distance":0.2051},{"site":"workflow","path":"/docs/foundations/serialization","distance":0.2328},{"site":"workflow","path":"/docs/api-reference","distance":0.3574},{"site":"workflow","path":"/docs/api-reference/workflow","distance":0.3593}],"related":[{"site":"vercel-docs","path":"/docs/workflows","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow","via":"neighbor"},{"site":"workflow","path":"/docs/errors/serialization-failed","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-observability","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-globals","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-serde/workflow-deserialize","title":"WORKFLOW_DESERIALIZE","summary":null,"outbound":[],"inbound":[{"site":"workflow","path":"/docs/foundations/serialization"}],"requires":[{"site":"workflow","path":"/docs/api-reference/workflow-serde"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-serde/workflow-serialize","distance":0.0441},{"site":"workflow","path":"/docs/api-reference/workflow-serde","distance":0.2051},{"site":"workflow","path":"/docs/foundations/serialization","distance":0.2587},{"site":"workflow","path":"/docs/errors/serialization-failed","distance":0.3553},{"site":"workflow","path":"/docs/api-reference/workflow-observability","distance":0.4329}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-serde/workflow-serialize","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/serialization","via":"neighbor"},{"site":"workflow","path":"/docs/errors/serialization-failed","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-observability","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-observability/hydrate-data","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-serde/workflow-serialize","title":"WORKFLOW_SERIALIZE","summary":null,"outbound":[],"inbound":[{"site":"workflow","path":"/docs/foundations/serialization"}],"requires":[{"site":"workflow","path":"/docs/api-reference/workflow-serde"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-serde/workflow-deserialize","distance":0.0441},{"site":"workflow","path":"/docs/api-reference/workflow-serde","distance":0.193},{"site":"workflow","path":"/docs/foundations/serialization","distance":0.2462},{"site":"workflow","path":"/docs/errors/serialization-failed","distance":0.319},{"site":"workflow","path":"/docs/api-reference/workflow-observability","distance":0.4359}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-serde/workflow-deserialize","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/serialization","via":"neighbor"},{"site":"workflow","path":"/docs/errors/serialization-failed","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-observability","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-globals","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-sveltekit","title":"workflow/sveltekit","summary":"Explore the SvelteKit integration for automatic workflow bundling and runtime support.","outbound":[],"inbound":[{"site":"workflow","path":"/docs/getting-started/sveltekit"}],"requires":[{"site":"workflow","path":"/docs/api-reference"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-vite","distance":0.1752},{"site":"workflow","path":"/docs/api-reference/workflow-sveltekit/workflow-plugin","distance":0.1903},{"site":"workflow","path":"/docs/getting-started/sveltekit","distance":0.1975},{"site":"workflow","path":"/docs/api-reference/workflow-next","distance":0.2742},{"site":"turborepo","path":"/docs/guides/frameworks/sveltekit","distance":0.2795}],"related":[{"site":"turborepo","path":"/docs/guides/frameworks/sveltekit","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-vite","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/sveltekit","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/sveltekit","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-next","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-nuxt","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-vite/workflow","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-sveltekit/workflow-plugin","title":"workflowPlugin","summary":"Add workflowPlugin to your Vite config to enable workflow directive transformation in SvelteKit apps.","outbound":[],"inbound":[{"site":"workflow","path":"/docs/getting-started/sveltekit"}],"requires":[{"site":"workflow","path":"/docs/getting-started/sveltekit"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-vite/workflow","distance":0.137},{"site":"workflow","path":"/docs/api-reference/workflow-sveltekit","distance":0.1903},{"site":"workflow","path":"/docs/api-reference/workflow-vite","distance":0.2194},{"site":"workflow","path":"/docs/getting-started/sveltekit","distance":0.2697},{"site":"workflow","path":"/docs/api-reference/vitest","distance":0.3148}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-vite/workflow","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/sveltekit","via":"requires"},{"site":"workflow","path":"/docs/api-reference/workflow-vite","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/vitest","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-nuxt","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-vite","title":"workflow/vite","summary":"Explore the Vite plugin for automatic workflow bundling and runtime support.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-nitro"},{"site":"workflow","path":"/docs/api-reference/workflow-vite/workflow"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-nitro"}],"requires":[{"site":"workflow","path":"/docs/api-reference"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-vite/workflow","distance":0.121},{"site":"workflow","path":"/docs/api-reference/workflow-sveltekit","distance":0.1752},{"site":"workflow","path":"/docs/api-reference/workflow-nitro","distance":0.1882},{"site":"workflow","path":"/docs/api-reference/workflow-sveltekit/workflow-plugin","distance":0.2194},{"site":"workflow","path":"/docs/getting-started/vite","distance":0.2265}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-sveltekit","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/frameworks/vite","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-sveltekit/workflow-plugin","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/vite","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-nuxt","via":"neighbor"},{"site":"workflow","path":"/docs/testing","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow-vite/workflow","title":"workflow","summary":"Add the workflow plugin to your Vite config to enable workflow directive transformation in Vite + Nitro apps.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-nitro"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-vite"}],"requires":[{"site":"workflow","path":"/docs/getting-started/vite"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-vite","distance":0.121},{"site":"workflow","path":"/docs/api-reference/workflow-sveltekit/workflow-plugin","distance":0.137},{"site":"workflow","path":"/docs/api-reference/workflow-nitro","distance":0.1501},{"site":"workflow","path":"/docs/getting-started/vite","distance":0.2255},{"site":"workflow","path":"/docs/api-reference/workflow-nuxt","distance":0.2347}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-sveltekit/workflow-plugin","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/nitro-vite-plugin","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/vite","via":"requires"},{"site":"workflow","path":"/docs/api-reference/workflow-nuxt","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/nitro","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/vitest","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow/create-hook","title":"createHook","summary":"Use createHook to pause a workflow and resume it with an arbitrary payload from an external system.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-api/get-run"},{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-hook"},{"site":"workflow","path":"/docs/api-reference/workflow/create-webhook"},{"site":"workflow","path":"/docs/api-reference/workflow/define-hook"},{"site":"workflow","path":"/docs/foundations/idempotency"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/human-in-the-loop-with-chat-sdk-and-workflow-sdk"},{"site":"workflow","path":"/docs/api-reference/workflow-api/get-hook-by-token"},{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-hook"},{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-webhook"},{"site":"workflow","path":"/docs/api-reference/workflow/create-webhook"},{"site":"workflow","path":"/docs/api-reference/workflow/define-hook"},{"site":"workflow","path":"/docs/foundations/hooks"},{"site":"workflow","path":"/docs/foundations/idempotency"},{"site":"workflow","path":"/docs/how-it-works/event-sourcing"}],"requires":[{"site":"workflow","path":"/docs/foundations/hooks"}],"neighbors":[{"site":"workflow","path":"/docs/foundations/hooks","distance":0.0837},{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-hook","distance":0.0929},{"site":"workflow","path":"/docs/api-reference/workflow/define-hook","distance":0.0959},{"site":"workflow","path":"/docs/api-reference/workflow-api/get-hook-by-token","distance":0.1207},{"site":"workflow","path":"/docs/api-reference/workflow/create-webhook","distance":0.1421}],"related":[{"site":"vercel-kb","path":"/kb/guide/human-in-the-loop-with-chat-sdk-and-workflow-sdk","via":"inbound"},{"site":"workflow","path":"/docs/foundations/hooks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-api/get-hook-by-token","via":"neighbor"},{"site":"workflow","path":"/docs/errors/hook-conflict","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/hook-not-found-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-webhook","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow/create-webhook","title":"createWebhook","summary":"Use createWebhook to suspend a workflow until an HTTP request is received at a generated URL.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-hook"},{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-webhook"},{"site":"workflow","path":"/docs/api-reference/workflow/create-hook"},{"site":"workflow","path":"/docs/api-reference/workflow/define-hook"},{"site":"workflow","path":"/docs/errors/webhook-invalid-respond-with-value"},{"site":"workflow","path":"/docs/errors/webhook-response-not-sent"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/human-in-the-loop-with-chat-sdk-and-workflow-sdk"},{"site":"workflow","path":"/docs/ai/human-in-the-loop"},{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-webhook"},{"site":"workflow","path":"/docs/api-reference/workflow/create-hook"},{"site":"workflow","path":"/docs/errors/hook-conflict"},{"site":"workflow","path":"/docs/errors/webhook-invalid-respond-with-value"},{"site":"workflow","path":"/docs/errors/webhook-response-not-sent"},{"site":"workflow","path":"/docs/foundations/hooks"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps"},{"site":"workflow","path":"/docs/how-it-works/code-transform"},{"site":"workflow","path":"/docs/how-it-works/event-sourcing"},{"site":"workflow","path":"/docs/how-it-works/framework-integrations"}],"requires":[{"site":"workflow","path":"/docs/foundations/hooks"}],"neighbors":[{"site":"workflow","path":"/docs/foundations/hooks","distance":0.1117},{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-webhook","distance":0.1396},{"site":"workflow","path":"/docs/api-reference/workflow/create-hook","distance":0.1421},{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-hook","distance":0.1979},{"site":"workflow","path":"/docs/errors/webhook-response-not-sent","distance":0.2037}],"related":[{"site":"vercel-kb","path":"/kb/guide/human-in-the-loop-with-chat-sdk-and-workflow-sdk","via":"inbound"},{"site":"v0","path":"/docs/api/v2/reference/webhooks/create-webhook","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/hooks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/hooks/create","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-api/get-hook-by-token","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/hook-not-found-error","via":"neighbor"},{"site":"workflow","path":"/docs/ai/human-in-the-loop","via":"neighbor"},{"site":"workflow","path":"/docs/errors/hook-conflict","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow/define-hook","title":"defineHook","summary":"Use defineHook to create a reusable, type-safe hook definition with optional schema validation.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-hook"},{"site":"workflow","path":"/docs/api-reference/workflow/create-hook"}],"inbound":[{"site":"workflow","path":"/docs/ai/chat-session-modeling"},{"site":"workflow","path":"/docs/ai/human-in-the-loop"},{"site":"workflow","path":"/docs/ai/message-queueing"},{"site":"workflow","path":"/docs/api-reference/workflow-api/get-hook-by-token"},{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-hook"},{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-webhook"},{"site":"workflow","path":"/docs/api-reference/workflow/create-hook"},{"site":"workflow","path":"/docs/api-reference/workflow/create-webhook"},{"site":"workflow","path":"/docs/foundations/hooks"}],"requires":[{"site":"workflow","path":"/docs/foundations/hooks"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow/create-hook","distance":0.0959},{"site":"workflow","path":"/docs/foundations/hooks","distance":0.1223},{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-hook","distance":0.1649},{"site":"workflow","path":"/docs/api-reference/workflow-api/get-hook-by-token","distance":0.169},{"site":"workflow","path":"/docs/api-reference/workflow-errors/hook-not-found-error","distance":0.2088}],"related":[{"site":"workflow","path":"/docs/foundations/hooks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/hooks/create","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-api/get-hook-by-token","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/hook-not-found-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow/create-webhook","via":"neighbor"},{"site":"workflow","path":"/docs/ai/human-in-the-loop","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow/fatal-error","title":"FatalError","summary":"Throw FatalError in a step to mark it as permanently failed and prevent retries.","outbound":[],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow/fetch"},{"site":"workflow","path":"/docs/foundations/errors-and-retries"}],"requires":[{"site":"workflow","path":"/docs/foundations/errors-and-retries"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow/retryable-error","distance":0.2742},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-failed-error","distance":0.3139},{"site":"workflow","path":"/docs/foundations/errors-and-retries","distance":0.3354},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-runtime-error","distance":0.3448},{"site":"workflow","path":"/docs/api-reference/workflow-errors/step-not-registered-error","distance":0.3489}],"related":[{"site":"workflow","path":"/docs/foundations/errors-and-retries","via":"requires"},{"site":"workflow","path":"/docs/api-reference/workflow/retryable-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-failed-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-runtime-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/step-not-registered-error","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow/fetch","title":"fetch","summary":"Use the workflow-aware fetch to make HTTP requests with automatic serialization and retry semantics.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow/fatal-error"},{"site":"workflow","path":"/docs/api-reference/workflow/retryable-error"},{"site":"workflow","path":"/docs/foundations/idempotency"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-globals"},{"site":"workflow","path":"/docs/errors/fetch-in-workflow"}],"requires":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps"}],"neighbors":[{"site":"workflow","path":"/docs/errors/fetch-in-workflow","distance":0.1637},{"site":"workflow","path":"/docs/foundations/errors-and-retries","distance":0.2607},{"site":"workflow","path":"/docs/api-reference/workflow-globals","distance":0.3161},{"site":"swr","path":"/docs/data-fetching","distance":0.3193},{"site":"workflow","path":"/docs/api-reference/workflow","distance":0.3319}],"related":[{"site":"workflow","path":"/docs/errors/fetch-in-workflow","via":"neighbor"},{"site":"swr","path":"/docs/data-fetching","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","via":"requires"},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/errors-and-retries","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-globals","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/hooks","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow/get-step-metadata","title":"getStepMetadata","summary":"Call getStepMetadata inside a step to access retry counts, timing, and idempotency keys.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow/get-workflow-metadata"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow/get-workflow-metadata"},{"site":"workflow","path":"/docs/foundations/errors-and-retries"},{"site":"workflow","path":"/docs/foundations/idempotency"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps"}],"requires":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow/get-workflow-metadata","distance":0.196},{"site":"workflow","path":"/docs/foundations/errors-and-retries","distance":0.3245},{"site":"workflow","path":"/docs/api-reference/workflow-errors/step-not-registered-error","distance":0.3712},{"site":"workflow","path":"/docs/foundations/idempotency","distance":0.3848},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","distance":0.3856}],"related":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps","via":"requires"},{"site":"workflow","path":"/docs/foundations/errors-and-retries","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/step-not-registered-error","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/idempotency","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow/retryable-error","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow/get-workflow-metadata","title":"getWorkflowMetadata","summary":"Call getWorkflowMetadata inside a workflow to access the run ID and timing information.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow/get-step-metadata"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow/get-step-metadata"}],"requires":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow/get-step-metadata","distance":0.196},{"site":"workflow","path":"/docs/api-reference/workflow-api/get-run","distance":0.2367},{"site":"workflow","path":"/docs/api-reference/workflow-globals","distance":0.2836},{"site":"workflow","path":"/docs/api-reference/workflow","distance":0.3007},{"site":"workflow","path":"/docs/api-reference/workflow-api","distance":0.3216}],"related":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps","via":"requires"},{"site":"workflow","path":"/docs/api-reference/workflow-api/get-run","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-globals","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-api","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/get-world","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow/get-writable","title":"getWritable","summary":"Use getWritable to access the workflow run's output stream for real-time data streaming.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-api/get-run"}],"inbound":[{"site":"workflow","path":"/docs/ai"},{"site":"workflow","path":"/docs/ai/streaming-updates-from-tools"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/streams"},{"site":"workflow","path":"/docs/foundations/starting-workflows"},{"site":"workflow","path":"/docs/foundations/streaming"}],"requires":[{"site":"workflow","path":"/docs/foundations/streaming"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/streams","distance":0.1667},{"site":"workflow","path":"/docs/foundations/streaming","distance":0.243},{"site":"workflow","path":"/docs/api-reference/workflow-globals","distance":0.2843},{"site":"workflow","path":"/docs/api-reference/workflow","distance":0.2852},{"site":"workflow","path":"/docs/ai/resumable-streams","distance":0.2862}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/streams","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/streaming","via":"requires"},{"site":"workflow","path":"/docs/api-reference/workflow-globals","via":"neighbor"},{"site":"workflow","path":"/docs/ai/resumable-streams","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow/retryable-error","title":"RetryableError","summary":"Throw RetryableError in a step to trigger a retry with an optional delay.","outbound":[],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow/fetch"},{"site":"workflow","path":"/docs/foundations/errors-and-retries"}],"requires":[{"site":"workflow","path":"/docs/foundations/errors-and-retries"}],"neighbors":[{"site":"workflow","path":"/docs/foundations/errors-and-retries","distance":0.1987},{"site":"workflow","path":"/docs/api-reference/workflow/fatal-error","distance":0.2742},{"site":"workflow","path":"/docs/api-reference/workflow-errors/throttle-error","distance":0.3293},{"site":"workflow","path":"/docs/api-reference/workflow/fetch","distance":0.3337},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-runtime-error","distance":0.3412}],"related":[{"site":"workflow","path":"/docs/foundations/errors-and-retries","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow/fatal-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/throttle-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow/fetch","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-runtime-error","via":"neighbor"}]},{"site":"workflow","path":"/docs/api-reference/workflow/sleep","title":"sleep","summary":"Use sleep to suspend a workflow for a duration or until a specific date without consuming resources.","outbound":[],"inbound":[{"site":"vercel-kb","path":"/kb/guide/agent-approval-workflow-stack-guide"},{"site":"workflow","path":"/docs/ai/sleep-and-delays"},{"site":"workflow","path":"/docs/api-reference/workflow-globals"},{"site":"workflow","path":"/docs/errors/timeout-in-workflow"},{"site":"workflow","path":"/docs/foundations/streaming"},{"site":"workflow","path":"/docs/foundations/versioning"},{"site":"workflow","path":"/docs/how-it-works/event-sourcing"},{"site":"workflow","path":"/docs/testing"}],"requires":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps"}],"neighbors":[{"site":"workflow","path":"/docs/errors/timeout-in-workflow","distance":0.2079},{"site":"workflow","path":"/docs/ai/sleep-and-delays","distance":0.2373},{"site":"vercel-docs","path":"/docs/workflows/concepts","distance":0.331},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","distance":0.3525},{"site":"workflow","path":"/docs/foundations/versioning","distance":0.4}],"related":[{"site":"vercel-kb","path":"/kb/guide/agent-approval-workflow-stack-guide","via":"inbound"},{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","via":"requires"},{"site":"workflow","path":"/docs/errors/timeout-in-workflow","via":"neighbor"},{"site":"workflow","path":"/docs/ai/sleep-and-delays","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/versioning","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-globals","via":"neighbor"}]},{"site":"workflow","path":"/docs/changelog","title":"Changelog","summary":"Latest updates and new features in Workflow SDK.","outbound":[{"site":"workflow","path":"/docs/changelog/resilient-start"}],"inbound":[],"requires":[],"neighbors":[{"site":"workflow","path":"/docs/foundations/versioning","distance":0.3594},{"site":"workflow","path":"/docs/api-reference","distance":0.3665},{"site":"workflow","path":"/docs/errors","distance":0.3751},{"site":"workflow","path":"/docs/ai","distance":0.377},{"site":"workflow","path":"/docs/api-reference/workflow","distance":0.3793}],"related":[{"site":"workflow","path":"/docs/foundations/versioning","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference","via":"neighbor"},{"site":"workflow","path":"/docs/errors","via":"neighbor"},{"site":"workflow","path":"/docs/ai","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow","via":"neighbor"}]},{"site":"workflow","path":"/docs/changelog/resilient-start","title":"Resilient run start","summary":"Overhaul run start logic to tolerate world storage unavailability, as long as the queue is healthy, and significantly speeds up run start.","outbound":[],"inbound":[{"site":"workflow","path":"/docs/changelog"}],"requires":[{"site":"workflow","path":"/docs/changelog"}],"neighbors":[{"site":"workflow","path":"/docs/foundations/versioning","distance":0.3035},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/storage","distance":0.3405},{"site":"workflow","path":"/docs/api-reference/workflow-api/start","distance":0.3635},{"site":"workflow","path":"/docs/api-reference/workflow-api/get-run","distance":0.3683},{"site":"workflow","path":"/docs/api-reference/workflow-runtime","distance":0.3847}],"related":[{"site":"eve","path":"/docs/concepts/execution-model-and-durability","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/versioning","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/storage","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-api/start","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-api/get-run","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime","via":"neighbor"}]},{"site":"workflow","path":"/docs/comparisons","title":"Comparisons","summary":"Side-by-side comparisons of the Workflow SDK against Temporal, Cloudflare Workflows, AWS Step Functions, AWS Bedrock AgentCore, Inngest, and trigger.dev.","outbound":[{"site":"workflow","path":"/docs/ai"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-aws-agentcore"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-aws-step-functions"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-cloudflare-workflows"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-inngest"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-temporal"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-trigger-dev"},{"site":"workflow","path":"/docs/foundations/streaming"}],"inbound":[{"site":"workflow","path":"/docs/getting-started"}],"requires":[],"neighbors":[{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-cloudflare-workflows","distance":0.1528},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-temporal","distance":0.1557},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-trigger-dev","distance":0.1765},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-aws-agentcore","distance":0.1791},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-aws-step-functions","distance":0.2137}],"related":[{"site":"vercel-docs","path":"/docs/workflows","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/agent-approval-workflow-stack-guide","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-workflowagent","via":"neighbor"},{"site":"workflow","path":"/docs/how-it-works/code-transform","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/versioning","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started","via":"neighbor"}]},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-aws-agentcore","title":"Workflow SDK vs AWS Bedrock AgentCore","summary":"AgentCore hosts and operates AI agents in isolated microVMs but is not a durable-execution engine. The Workflow SDK provides durable orchestration and resumable streaming for agents.","outbound":[{"site":"vercel-docs","path":"/docs/workflows/pricing"},{"site":"workflow","path":"/docs/ai"},{"site":"workflow","path":"/docs/ai/resumable-streams"}],"inbound":[{"site":"workflow","path":"/docs/comparisons"}],"requires":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps"}],"neighbors":[{"site":"workflow","path":"/docs/comparisons","distance":0.1791},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-cloudflare-workflows","distance":0.2116},{"site":"workflow","path":"/docs/ai","distance":0.2313},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-temporal","distance":0.2402},{"site":"vercel-kb","path":"/kb/guide/what-is-workflowagent","distance":0.2481}],"related":[{"site":"vercel-kb","path":"/kb/guide/what-is-workflowagent","via":"neighbor"},{"site":"eve","path":"/docs/concepts/built-in-tools","via":"neighbor"},{"site":"eve","path":"/docs/concepts/execution-model-and-durability","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/agent-approval-workflow-stack-guide","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/workflow-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"neighbor"},{"site":"eve","path":"/docs/agent-config","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/durableagent-to-workflowagent","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","via":"requires"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-cloudflare-workflows","via":"neighbor"}]},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-aws-step-functions","title":"Workflow SDK vs AWS Step Functions","summary":"AWS Step Functions is a managed state-machine orchestrator authored in declarative ASL JSON. The Workflow SDK expresses the same orchestration as plain TypeScript.","outbound":[{"site":"vercel-docs","path":"/docs/workflows/pricing"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/agent-approval-workflow-stack-guide"},{"site":"workflow","path":"/docs/comparisons"}],"requires":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps"}],"neighbors":[{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-cloudflare-workflows","distance":0.1803},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","distance":0.2029},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-trigger-dev","distance":0.2044},{"site":"workflow","path":"/docs/comparisons","distance":0.2137},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-temporal","distance":0.2233}],"related":[{"site":"vercel-kb","path":"/kb/guide/agent-approval-workflow-stack-guide","via":"inbound"},{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows","via":"neighbor"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-cloudflare-workflows","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","via":"requires"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-trigger-dev","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/serialization","via":"neighbor"},{"site":"workflow","path":"/docs/how-it-works/code-transform","via":"neighbor"}]},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-cloudflare-workflows","title":"Workflow SDK vs Cloudflare Workflows","summary":"Cloudflare Workflows is a durable engine on Workers and Durable Objects. It and the Workflow SDK both replay, but differ on versioning safety, encryption, and lock-in.","outbound":[{"site":"vercel-docs","path":"/docs/workflows/pricing"}],"inbound":[{"site":"workflow","path":"/docs/comparisons"}],"requires":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps"}],"neighbors":[{"site":"workflow","path":"/docs/comparisons","distance":0.1528},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-aws-step-functions","distance":0.1803},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-trigger-dev","distance":0.195},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-temporal","distance":0.1972},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-aws-agentcore","distance":0.2116}],"related":[{"site":"vercel-docs","path":"/docs/workflows","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-cloudflare-workflows-to-vercel-workflows","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-aws-step-functions","via":"neighbor"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-trigger-dev","via":"neighbor"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-temporal","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","via":"requires"},{"site":"workflow","path":"/docs/foundations/versioning","via":"neighbor"}]},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-inngest","title":"Workflow SDK vs Inngest","summary":"Inngest is an event-driven durable-functions platform that invokes your code over HTTP and memoizes step results. The Workflow SDK co-locates orchestration and execution and replays from an event log.","outbound":[{"site":"vercel-docs","path":"/docs/workflows/pricing"},{"site":"workflow","path":"/docs/ai/resumable-streams"}],"inbound":[{"site":"workflow","path":"/docs/comparisons"}],"requires":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps"}],"neighbors":[{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-trigger-dev","distance":0.2142},{"site":"workflow","path":"/docs/comparisons","distance":0.2171},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-cloudflare-workflows","distance":0.2254},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-aws-step-functions","distance":0.226},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-temporal","distance":0.2537}],"related":[{"site":"vercel-docs","path":"/docs/workflows","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-cloudflare-workflows-to-vercel-workflows","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","via":"requires"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-trigger-dev","via":"neighbor"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-cloudflare-workflows","via":"neighbor"},{"site":"workflow","path":"/docs/ai","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/versioning","via":"neighbor"}]},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-temporal","title":"Workflow SDK vs Temporal","summary":"Temporal is a mature, language-agnostic durable-execution platform where you run the workers. The Workflow SDK runs in your existing app and pins runs to immutable deployments.","outbound":[{"site":"vercel-docs","path":"/docs/workflows/pricing"},{"site":"workflow","path":"/docs/ai/resumable-streams"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/agent-approval-workflow-stack-guide"},{"site":"workflow","path":"/docs/comparisons"}],"requires":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps"}],"neighbors":[{"site":"workflow","path":"/docs/comparisons","distance":0.1557},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-cloudflare-workflows","distance":0.1972},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-trigger-dev","distance":0.2032},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-aws-step-functions","distance":0.2233},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-aws-agentcore","distance":0.2402}],"related":[{"site":"vercel-kb","path":"/kb/guide/agent-approval-workflow-stack-guide","via":"inbound"},{"site":"vercel-docs","path":"/docs/workflows","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"eve","path":"/docs/concepts/execution-model-and-durability","via":"neighbor"},{"site":"eve","path":"/docs/concepts/built-in-tools","via":"neighbor"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-cloudflare-workflows","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","via":"requires"},{"site":"workflow","path":"/docs/foundations/versioning","via":"neighbor"},{"site":"workflow","path":"/docs/ai","via":"neighbor"},{"site":"workflow","path":"/docs/how-it-works/code-transform","via":"neighbor"}]},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-trigger-dev","title":"Workflow SDK vs trigger.dev","summary":"trigger.dev achieves durability by snapshotting the process (CRIU), so code has no determinism constraints. The Workflow SDK uses event-log replay and runs in your existing app.","outbound":[{"site":"vercel-docs","path":"/docs/workflows/pricing"},{"site":"workflow","path":"/docs/ai/resumable-streams"}],"inbound":[{"site":"workflow","path":"/docs/comparisons"}],"requires":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps"}],"neighbors":[{"site":"workflow","path":"/docs/comparisons","distance":0.1765},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-cloudflare-workflows","distance":0.195},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-temporal","distance":0.2032},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-aws-step-functions","distance":0.2044},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-inngest","distance":0.2142}],"related":[{"site":"vercel-docs","path":"/docs/workflows","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-a-slack-agent-with-durable-workflows","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-cloudflare-workflows-to-vercel-workflows","via":"neighbor"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-cloudflare-workflows","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","via":"requires"},{"site":"workflow","path":"/docs/foundations/versioning","via":"neighbor"},{"site":"workflow","path":"/docs/how-it-works/code-transform","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/next","via":"neighbor"}]},{"site":"workflow","path":"/docs/deploying","title":"Deploying","summary":"Learn how to deploy workflows to different environments using World adapters.","outbound":[{"site":"workflow","path":"/docs/observability"}],"inbound":[{"site":"workflow","path":"/docs/getting-started/astro"},{"site":"workflow","path":"/docs/getting-started/express"},{"site":"workflow","path":"/docs/getting-started/fastify"},{"site":"workflow","path":"/docs/getting-started/hono"},{"site":"workflow","path":"/docs/getting-started/next"},{"site":"workflow","path":"/docs/getting-started/nitro"},{"site":"workflow","path":"/docs/getting-started/nuxt"},{"site":"workflow","path":"/docs/getting-started/sveltekit"},{"site":"workflow","path":"/docs/getting-started/tanstack-start"},{"site":"workflow","path":"/docs/getting-started/vite"},{"site":"workflow","path":"/docs/observability"}],"requires":[],"neighbors":[{"site":"workflow","path":"/docs/observability","distance":0.2202},{"site":"vercel-docs","path":"/docs/workflows","distance":0.2465},{"site":"vercel-docs","path":"/docs/deployments","distance":0.2642},{"site":"workflow","path":"/docs/getting-started/next","distance":0.2846},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world","distance":0.2877}],"related":[{"site":"vercel-docs","path":"/docs/workflows","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-vercel-cli-for-custom-workflows","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/workflows","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/deploy-from-cli","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-a-next-js-app-from-webflow-cloud-to-vercel","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/next","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/versioning","via":"neighbor"}]},{"site":"workflow","path":"/docs/errors","title":"Errors","summary":"Browse and resolve common workflow errors.","outbound":[{"site":"workflow","path":"/docs/api-reference"},{"site":"workflow","path":"/docs/foundations"}],"inbound":[{"site":"workflow","path":"/docs/getting-started/astro"},{"site":"workflow","path":"/docs/getting-started/express"},{"site":"workflow","path":"/docs/getting-started/fastify"},{"site":"workflow","path":"/docs/getting-started/hono"},{"site":"workflow","path":"/docs/getting-started/nestjs"},{"site":"workflow","path":"/docs/getting-started/next"},{"site":"workflow","path":"/docs/getting-started/nitro"},{"site":"workflow","path":"/docs/getting-started/nuxt"},{"site":"workflow","path":"/docs/getting-started/python"},{"site":"workflow","path":"/docs/getting-started/sveltekit"},{"site":"workflow","path":"/docs/getting-started/tanstack-start"},{"site":"workflow","path":"/docs/getting-started/vite"}],"requires":[],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-errors","distance":0.1428},{"site":"workflow","path":"/docs/api-reference/workflow","distance":0.1796},{"site":"workflow","path":"/docs/foundations","distance":0.2174},{"site":"workflow","path":"/docs/foundations/errors-and-retries","distance":0.219},{"site":"workflow","path":"/docs/api-reference","distance":0.2226}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-errors","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/errors-and-retries","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/next","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","via":"neighbor"}]},{"site":"workflow","path":"/docs/errors/corrupted-event-log","title":"corrupted-event-log","summary":"Resolve corrupted event log errors caused by duplicate or orphaned events.","outbound":[],"inbound":[{"site":"workflow","path":"/docs/how-it-works/event-sourcing"}],"requires":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps"}],"neighbors":[{"site":"workflow","path":"/docs/errors/replay-divergence","distance":0.2562},{"site":"workflow","path":"/docs/errors","distance":0.3324},{"site":"workflow","path":"/docs/errors/runtime-decryption-failed","distance":0.3346},{"site":"workflow","path":"/docs/errors/workflow-not-registered","distance":0.3513},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-failed-error","distance":0.364}],"related":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps","via":"requires"},{"site":"workflow","path":"/docs/errors/replay-divergence","via":"neighbor"},{"site":"workflow","path":"/docs/errors/runtime-decryption-failed","via":"neighbor"},{"site":"workflow","path":"/docs/errors/workflow-not-registered","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-run-failed-error","via":"neighbor"}]},{"site":"workflow","path":"/docs/errors/deployment-mismatch","title":"deployment-mismatch","summary":"Understand how Workflow recovers from a misrouted delivery, and why a run eventually fails with DEPLOYMENT_MISMATCH.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-api/start"},{"site":"workflow","path":"/docs/errors/runtime-decryption-failed"},{"site":"workflow","path":"/docs/foundations/versioning"}],"inbound":[],"requires":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps"}],"neighbors":[{"site":"workflow","path":"/docs/errors/workflow-not-registered","distance":0.2686},{"site":"workflow","path":"/docs/foundations/versioning","distance":0.3064},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-not-registered-error","distance":0.3356},{"site":"workflow","path":"/docs/errors/runtime-decryption-failed","distance":0.3408},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-runtime-error","distance":0.3539}],"related":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps","via":"requires"},{"site":"workflow","path":"/docs/errors/workflow-not-registered","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-not-registered-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-runtime-error","via":"neighbor"},{"site":"workflow","path":"/docs/errors/step-not-registered","via":"neighbor"}]},{"site":"workflow","path":"/docs/errors/fetch-in-workflow","title":"fetch-in-workflow","summary":"Resolve the fetch-in-workflow error by using the workflow fetch function.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow/fetch"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-globals"}],"requires":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow/fetch","distance":0.1637},{"site":"workflow","path":"/docs/api-reference/workflow-globals","distance":0.2668},{"site":"workflow","path":"/docs/errors/node-js-module-in-workflow","distance":0.2902},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","distance":0.3151},{"site":"workflow","path":"/docs/api-reference/workflow","distance":0.3228}],"related":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps","via":"requires"},{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-globals","via":"neighbor"},{"site":"workflow","path":"/docs/errors/node-js-module-in-workflow","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/next","via":"neighbor"}]},{"site":"workflow","path":"/docs/errors/hook-conflict","title":"hook-conflict","summary":"Resolve hook token conflicts by using unique or auto-generated tokens.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-api/get-run"},{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-hook"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/hook-conflict-error"},{"site":"workflow","path":"/docs/api-reference/workflow/create-webhook"},{"site":"workflow","path":"/docs/foundations/hooks"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/hook-conflict-error"},{"site":"workflow","path":"/docs/foundations/hooks"},{"site":"workflow","path":"/docs/foundations/idempotency"},{"site":"workflow","path":"/docs/how-it-works/event-sourcing"}],"requires":[{"site":"workflow","path":"/docs/foundations/hooks"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/hook-conflict-error","distance":0.1386},{"site":"workflow","path":"/docs/api-reference/workflow/create-hook","distance":0.1483},{"site":"workflow","path":"/docs/foundations/idempotency","distance":0.1563},{"site":"workflow","path":"/docs/api-reference/workflow-api/get-hook-by-token","distance":0.1749},{"site":"workflow","path":"/docs/foundations/hooks","distance":0.1896}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow/create-hook","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/idempotency","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-api/get-hook-by-token","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/hook-not-found-error","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow/define-hook","via":"neighbor"}]},{"site":"workflow","path":"/docs/errors/node-js-module-in-workflow","title":"node-js-module-in-workflow","summary":"Resolve the node-js-module-in-workflow error by moving Node.js modules to step functions.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-globals"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-globals"},{"site":"workflow","path":"/docs/how-it-works/understanding-directives"}],"requires":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-globals","distance":0.2743},{"site":"workflow","path":"/docs/errors/fetch-in-workflow","distance":0.2902},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","distance":0.2929},{"site":"workflow","path":"/docs/getting-started/nestjs","distance":0.319},{"site":"workflow","path":"/docs/getting-started/next","distance":0.3232}],"related":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps","via":"requires"},{"site":"workflow","path":"/docs/errors/fetch-in-workflow","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/nestjs","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/next","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow","via":"neighbor"}]},{"site":"workflow","path":"/docs/errors/replay-divergence","title":"replay-divergence","summary":"Understand automatic recovery when a workflow replay diverges from its event history.","outbound":[],"inbound":[{"site":"workflow","path":"/docs/how-it-works/event-sourcing"}],"requires":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps"}],"neighbors":[{"site":"workflow","path":"/docs/errors/corrupted-event-log","distance":0.2562},{"site":"workflow","path":"/docs/errors/deployment-mismatch","distance":0.3819},{"site":"workflow","path":"/docs/errors","distance":0.3975},{"site":"workflow","path":"/docs/foundations/errors-and-retries","distance":0.4187},{"site":"workflow","path":"/docs/foundations/versioning","distance":0.427}],"related":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps","via":"requires"},{"site":"workflow","path":"/docs/errors/corrupted-event-log","via":"neighbor"},{"site":"workflow","path":"/docs/errors/deployment-mismatch","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/errors-and-retries","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/versioning","via":"neighbor"}]},{"site":"workflow","path":"/docs/errors/runtime-decryption-failed","title":"runtime-decryption-failed","summary":"Resolve runtime decryption failures caused by ciphertext corruption, key mismatch, or malformed envelopes.","outbound":[],"inbound":[{"site":"workflow","path":"/docs/errors/deployment-mismatch"},{"site":"workflow","path":"/docs/how-it-works/encryption"}],"requires":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps"}],"neighbors":[{"site":"workflow","path":"/docs/how-it-works/encryption","distance":0.3063},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-runtime-error","distance":0.3259},{"site":"workflow","path":"/docs/errors/corrupted-event-log","distance":0.3346},{"site":"workflow","path":"/docs/errors/deployment-mismatch","distance":0.3408},{"site":"workflow","path":"/docs/errors","distance":0.3645}],"related":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps","via":"requires"},{"site":"workflow","path":"/docs/how-it-works/encryption","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-runtime-error","via":"neighbor"},{"site":"workflow","path":"/docs/errors/corrupted-event-log","via":"neighbor"},{"site":"workflow","path":"/docs/errors/deployment-mismatch","via":"neighbor"}]},{"site":"workflow","path":"/docs/errors/serialization-failed","title":"serialization-failed","summary":"Resolve serialization errors by passing only serializable types across execution boundaries.","outbound":[{"site":"workflow","path":"/docs/foundations/serialization"}],"inbound":[{"site":"workflow","path":"/docs/foundations/serialization"}],"requires":[{"site":"workflow","path":"/docs/foundations/serialization"}],"neighbors":[{"site":"workflow","path":"/docs/foundations/serialization","distance":0.2384},{"site":"workflow","path":"/docs/api-reference/workflow-serde/workflow-serialize","distance":0.319},{"site":"workflow","path":"/docs/errors/start-invalid-workflow-function","distance":0.3479},{"site":"workflow","path":"/docs/errors","distance":0.3488},{"site":"workflow","path":"/docs/foundations/errors-and-retries","distance":0.3546}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-serde/workflow-serialize","via":"neighbor"},{"site":"workflow","path":"/docs/errors/start-invalid-workflow-function","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/errors-and-retries","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-serde/workflow-deserialize","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-serde","via":"neighbor"}]},{"site":"workflow","path":"/docs/errors/start-invalid-workflow-function","title":"start-invalid-workflow-function","summary":"Fix invalid workflow function errors by adding \"use workflow\" and enabling your framework integration.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-api/start"},{"site":"workflow","path":"/docs/api-reference/workflow-next/with-workflow"},{"site":"workflow","path":"/docs/getting-started/next"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-api/start"},{"site":"workflow","path":"/docs/getting-started/astro"},{"site":"workflow","path":"/docs/getting-started/express"},{"site":"workflow","path":"/docs/getting-started/fastify"},{"site":"workflow","path":"/docs/getting-started/hono"},{"site":"workflow","path":"/docs/getting-started/nestjs"},{"site":"workflow","path":"/docs/getting-started/next"},{"site":"workflow","path":"/docs/getting-started/nitro"},{"site":"workflow","path":"/docs/getting-started/nuxt"},{"site":"workflow","path":"/docs/getting-started/sveltekit"},{"site":"workflow","path":"/docs/getting-started/vite"}],"requires":[{"site":"workflow","path":"/docs/foundations/starting-workflows"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-api/start","distance":0.224},{"site":"workflow","path":"/docs/getting-started/next","distance":0.2266},{"site":"workflow","path":"/docs/getting-started/nestjs","distance":0.2535},{"site":"workflow","path":"/docs/getting-started/express","distance":0.257},{"site":"workflow","path":"/docs/getting-started/nuxt","distance":0.2619}],"related":[{"site":"workflow","path":"/docs/foundations/starting-workflows","via":"requires"},{"site":"workflow","path":"/docs/getting-started/nestjs","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/express","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/nuxt","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/sveltekit","via":"neighbor"}]},{"site":"workflow","path":"/docs/errors/step-executed-multiple-times","title":"Step executed multiple times","summary":"Diagnose duplicate step_started events caused by function timeouts, OOMs, or network issues.","outbound":[{"site":"vercel-docs","path":"/docs/observability"},{"site":"workflow","path":"/docs/observability"}],"inbound":[{"site":"workflow","path":"/docs/foundations/idempotency"}],"requires":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps"}],"neighbors":[{"site":"workflow","path":"/docs/errors/step-not-registered","distance":0.348},{"site":"workflow","path":"/docs/foundations/errors-and-retries","distance":0.3845},{"site":"workflow","path":"/docs/errors/corrupted-event-log","distance":0.4017},{"site":"workflow","path":"/docs/foundations/idempotency","distance":0.4266},{"site":"workflow","path":"/docs/errors","distance":0.435}],"related":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps","via":"requires"},{"site":"workflow","path":"/docs/errors/step-not-registered","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/errors-and-retries","via":"neighbor"},{"site":"workflow","path":"/docs/errors/corrupted-event-log","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/idempotency","via":"neighbor"}]},{"site":"workflow","path":"/docs/errors/step-not-registered","title":"step-not-registered","summary":"Resolve step not registered errors caused by build issues.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/step-not-registered-error"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/step-not-registered-error"}],"requires":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/step-not-registered-error","distance":0.141},{"site":"workflow","path":"/docs/errors/workflow-not-registered","distance":0.1722},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-not-registered-error","distance":0.2517},{"site":"workflow","path":"/docs/foundations/errors-and-retries","distance":0.2968},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","distance":0.3389}],"related":[{"site":"workflow","path":"/docs/errors/workflow-not-registered","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","via":"requires"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-not-registered-error","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/errors-and-retries","via":"neighbor"},{"site":"workflow","path":"/docs/errors/step-executed-multiple-times","via":"neighbor"}]},{"site":"workflow","path":"/docs/errors/timeout-in-workflow","title":"timeout-in-workflow","summary":"Resolve the timeout-in-workflow error by replacing setTimeout with the sleep function.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow/sleep"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-globals"}],"requires":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow/sleep","distance":0.2079},{"site":"workflow","path":"/docs/ai/sleep-and-delays","distance":0.298},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","distance":0.3148},{"site":"vercel-docs","path":"/docs/workflows/concepts","distance":0.3156},{"site":"workflow","path":"/docs/foundations/errors-and-retries","distance":0.3248}],"related":[{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","via":"requires"},{"site":"workflow","path":"/docs/ai/sleep-and-delays","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/errors-and-retries","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-globals","via":"neighbor"},{"site":"workflow","path":"/docs/errors/start-invalid-workflow-function","via":"neighbor"}]},{"site":"workflow","path":"/docs/errors/webhook-invalid-respond-with-value","title":"webhook-invalid-respond-with-value","summary":"Resolve the webhook-invalid-respond-with-value error by using a valid respondWith option.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-webhook"},{"site":"workflow","path":"/docs/api-reference/workflow/create-webhook"},{"site":"workflow","path":"/docs/foundations/hooks"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow/create-webhook"}],"requires":[{"site":"workflow","path":"/docs/foundations/hooks"}],"neighbors":[{"site":"workflow","path":"/docs/errors/webhook-response-not-sent","distance":0.1361},{"site":"workflow","path":"/docs/api-reference/workflow/create-webhook","distance":0.2463},{"site":"workflow","path":"/docs/foundations/hooks","distance":0.3022},{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-webhook","distance":0.3544},{"site":"v0","path":"/docs/api/v2/reference/webhooks/create-webhook","distance":0.3623}],"related":[{"site":"workflow","path":"/docs/errors/webhook-response-not-sent","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/webhooks/create-webhook","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/creates-a-webhook","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/webhooks/update-webhook","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/webhooks/get-webhook","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow/create-hook","via":"neighbor"},{"site":"workflow","path":"/docs/errors/hook-conflict","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/hook-not-found-error","via":"neighbor"},{"site":"workflow","path":"/docs/ai/human-in-the-loop","via":"neighbor"}]},{"site":"workflow","path":"/docs/errors/webhook-response-not-sent","title":"webhook-response-not-sent","summary":"Resolve the webhook-response-not-sent error by ensuring all code paths call respondWith.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-webhook"},{"site":"workflow","path":"/docs/api-reference/workflow/create-webhook"},{"site":"workflow","path":"/docs/foundations/hooks"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow/create-webhook"}],"requires":[{"site":"workflow","path":"/docs/foundations/hooks"}],"neighbors":[{"site":"workflow","path":"/docs/errors/webhook-invalid-respond-with-value","distance":0.1361},{"site":"workflow","path":"/docs/api-reference/workflow/create-webhook","distance":0.2037},{"site":"workflow","path":"/docs/foundations/hooks","distance":0.232},{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-webhook","distance":0.3036},{"site":"workflow","path":"/docs/api-reference/workflow/create-hook","distance":0.3209}],"related":[{"site":"workflow","path":"/docs/errors/webhook-invalid-respond-with-value","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/human-in-the-loop-with-chat-sdk-and-workflow-sdk","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow/create-hook","via":"neighbor"},{"site":"workflow","path":"/docs/ai/human-in-the-loop","via":"neighbor"},{"site":"workflow","path":"/docs/errors/hook-conflict","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/hook-not-found-error","via":"neighbor"}]},{"site":"workflow","path":"/docs/errors/workflow-not-registered","title":"workflow-not-registered","summary":"Resolve workflow not registered errors caused by deployment targeting or build issues.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-not-registered-error"}],"inbound":[{"site":"workflow","path":"/docs/foundations/versioning"}],"requires":[{"site":"workflow","path":"/docs/foundations/starting-workflows"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-not-registered-error","distance":0.1637},{"site":"workflow","path":"/docs/errors/step-not-registered","distance":0.1722},{"site":"workflow","path":"/docs/errors/deployment-mismatch","distance":0.2686},{"site":"workflow","path":"/docs/api-reference/workflow-errors/step-not-registered-error","distance":0.2928},{"site":"workflow","path":"/docs/errors","distance":0.3152}],"related":[{"site":"workflow","path":"/docs/errors/step-not-registered","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/starting-workflows","via":"requires"},{"site":"workflow","path":"/docs/errors/deployment-mismatch","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/step-not-registered-error","via":"neighbor"},{"site":"workflow","path":"/docs/errors/start-invalid-workflow-function","via":"neighbor"}]},{"site":"workflow","path":"/docs/foundations","title":"Foundations","summary":"Explore the core concepts you need to use workflows effectively.","outbound":[],"inbound":[{"site":"workflow","path":"/docs/errors"},{"site":"workflow","path":"/docs/getting-started/astro"},{"site":"workflow","path":"/docs/getting-started/express"},{"site":"workflow","path":"/docs/getting-started/fastify"},{"site":"workflow","path":"/docs/getting-started/hono"},{"site":"workflow","path":"/docs/getting-started/nestjs"},{"site":"workflow","path":"/docs/getting-started/next"},{"site":"workflow","path":"/docs/getting-started/nitro"},{"site":"workflow","path":"/docs/getting-started/nuxt"},{"site":"workflow","path":"/docs/getting-started/python"},{"site":"workflow","path":"/docs/getting-started/sveltekit"},{"site":"workflow","path":"/docs/getting-started/tanstack-start"},{"site":"workflow","path":"/docs/getting-started/vite"}],"requires":[],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow","distance":0.185},{"site":"workflow","path":"/docs/errors","distance":0.2174},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","distance":0.2285},{"site":"workflow","path":"/docs/api-reference","distance":0.2546},{"site":"workflow","path":"/docs/foundations/starting-workflows","distance":0.2571}],"related":[{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow","via":"neighbor"},{"site":"workflow","path":"/docs/errors","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started","via":"neighbor"},{"site":"workflow","path":"/docs/ai","via":"neighbor"}]},{"site":"workflow","path":"/docs/foundations/errors-and-retries","title":"Errors & Retrying","summary":"Control how steps handle failures and customize retry behavior.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow/fatal-error"},{"site":"workflow","path":"/docs/api-reference/workflow/get-step-metadata"},{"site":"workflow","path":"/docs/api-reference/workflow/retryable-error"},{"site":"workflow","path":"/docs/foundations/idempotency"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/agent-approval-workflow-stack-guide"},{"site":"vercel-kb","path":"/kb/guide/building-ai-chat-app-with-rag-and-citations-on-vercel"},{"site":"workflow","path":"/docs/ai"},{"site":"workflow","path":"/docs/ai/sleep-and-delays"},{"site":"workflow","path":"/docs/foundations/idempotency"},{"site":"workflow","path":"/docs/foundations/starting-workflows"},{"site":"workflow","path":"/docs/foundations/streaming"},{"site":"workflow","path":"/docs/foundations/versioning"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps"},{"site":"workflow","path":"/docs/how-it-works/event-sourcing"},{"site":"workflow","path":"/docs/how-it-works/understanding-directives"}],"requires":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps"}],"neighbors":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps","distance":0.1975},{"site":"workflow","path":"/docs/api-reference/workflow/retryable-error","distance":0.1987},{"site":"workflow","path":"/docs/foundations/idempotency","distance":0.2114},{"site":"workflow","path":"/docs/api-reference/workflow","distance":0.2186},{"site":"workflow","path":"/docs/errors","distance":0.219}],"related":[{"site":"vercel-kb","path":"/kb/guide/agent-approval-workflow-stack-guide","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/building-ai-chat-app-with-rag-and-citations-on-vercel","via":"inbound"},{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow","via":"neighbor"},{"site":"workflow","path":"/docs/errors","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/serialization","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow/fetch","via":"neighbor"}]},{"site":"workflow","path":"/docs/foundations/hooks","title":"Hooks & Webhooks","summary":"Pause workflows and resume them with external data or HTTP requests.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-api/get-run"},{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-hook"},{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-webhook"},{"site":"workflow","path":"/docs/api-reference/workflow/create-hook"},{"site":"workflow","path":"/docs/api-reference/workflow/create-webhook"},{"site":"workflow","path":"/docs/api-reference/workflow/define-hook"},{"site":"workflow","path":"/docs/errors/hook-conflict"},{"site":"workflow","path":"/docs/foundations/idempotency"},{"site":"workflow","path":"/docs/foundations/serialization"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/agent-approval-workflow-stack-guide"},{"site":"vercel-kb","path":"/kb/guide/building-human-in-the-loop-agents-for-community-moderation-with-durable-workflows"},{"site":"workflow","path":"/docs/ai/human-in-the-loop"},{"site":"workflow","path":"/docs/ai/sleep-and-delays"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/storage"},{"site":"workflow","path":"/docs/errors/hook-conflict"},{"site":"workflow","path":"/docs/errors/webhook-invalid-respond-with-value"},{"site":"workflow","path":"/docs/errors/webhook-response-not-sent"},{"site":"workflow","path":"/docs/foundations/idempotency"},{"site":"workflow","path":"/docs/foundations/versioning"},{"site":"workflow","path":"/docs/how-it-works/event-sourcing"},{"site":"workflow","path":"/docs/testing"}],"requires":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow/create-hook","distance":0.0837},{"site":"workflow","path":"/docs/api-reference/workflow/create-webhook","distance":0.1117},{"site":"workflow","path":"/docs/api-reference/workflow/define-hook","distance":0.1223},{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-hook","distance":0.1343},{"site":"workflow","path":"/docs/ai/human-in-the-loop","distance":0.1528}],"related":[{"site":"vercel-kb","path":"/kb/guide/agent-approval-workflow-stack-guide","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/building-human-in-the-loop-agents-for-community-moderation-with-durable-workflows","via":"inbound"},{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"workflow","path":"/docs/ai/human-in-the-loop","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-api/get-hook-by-token","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/storage","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","via":"requires"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/hook-not-found-error","via":"neighbor"}]},{"site":"workflow","path":"/docs/foundations/idempotency","title":"Idempotency","summary":"Use step IDs for retry-safe external calls, and route duplicate workflow-start requests through deterministic hook tokens.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-api/get-hook-by-token"},{"site":"workflow","path":"/docs/api-reference/workflow-api/get-run"},{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-hook"},{"site":"workflow","path":"/docs/api-reference/workflow-api/start"},{"site":"workflow","path":"/docs/api-reference/workflow/create-hook"},{"site":"workflow","path":"/docs/api-reference/workflow/get-step-metadata"},{"site":"workflow","path":"/docs/errors/hook-conflict"},{"site":"workflow","path":"/docs/errors/step-executed-multiple-times"},{"site":"workflow","path":"/docs/foundations/errors-and-retries"},{"site":"workflow","path":"/docs/foundations/hooks"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-api/get-hook-by-token"},{"site":"workflow","path":"/docs/api-reference/workflow-api/get-run"},{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-hook"},{"site":"workflow","path":"/docs/api-reference/workflow-api/start"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/storage"},{"site":"workflow","path":"/docs/api-reference/workflow/create-hook"},{"site":"workflow","path":"/docs/api-reference/workflow/fetch"},{"site":"workflow","path":"/docs/foundations/errors-and-retries"},{"site":"workflow","path":"/docs/foundations/hooks"}],"requires":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps"}],"neighbors":[{"site":"workflow","path":"/docs/errors/hook-conflict","distance":0.1563},{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-hook","distance":0.1656},{"site":"workflow","path":"/docs/api-reference/workflow/create-hook","distance":0.1664},{"site":"workflow","path":"/docs/foundations/hooks","distance":0.175},{"site":"workflow","path":"/docs/api-reference/workflow-api/get-hook-by-token","distance":0.1951}],"related":[{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","via":"requires"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/storage","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow/define-hook","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/starting-workflows","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow","via":"neighbor"}]},{"site":"workflow","path":"/docs/foundations/serialization","title":"Serialization","summary":"Learn which types can be passed between workflow and step functions.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/workflow-runtime-error"},{"site":"workflow","path":"/docs/api-reference/workflow-serde/workflow-deserialize"},{"site":"workflow","path":"/docs/api-reference/workflow-serde/workflow-serialize"},{"site":"workflow","path":"/docs/errors/serialization-failed"},{"site":"workflow","path":"/docs/foundations/streaming"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/agent-approval-workflow-stack-guide"},{"site":"workflow","path":"/docs/api-reference/workflow-api/start"},{"site":"workflow","path":"/docs/api-reference/workflow-globals"},{"site":"workflow","path":"/docs/api-reference/workflow-serde"},{"site":"workflow","path":"/docs/errors/serialization-failed"},{"site":"workflow","path":"/docs/foundations/hooks"},{"site":"workflow","path":"/docs/foundations/starting-workflows"},{"site":"workflow","path":"/docs/foundations/streaming"},{"site":"workflow","path":"/docs/foundations/versioning"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps"}],"requires":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps"}],"neighbors":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps","distance":0.1906},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-aws-step-functions","distance":0.2263},{"site":"workflow","path":"/docs/api-reference/workflow-serde","distance":0.2328},{"site":"workflow","path":"/docs/errors/serialization-failed","distance":0.2384},{"site":"workflow","path":"/docs/foundations/errors-and-retries","distance":0.2404}],"related":[{"site":"vercel-kb","path":"/kb/guide/agent-approval-workflow-stack-guide","via":"inbound"},{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","via":"neighbor"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-aws-step-functions","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-serde","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/errors-and-retries","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/versioning","via":"neighbor"}]},{"site":"workflow","path":"/docs/foundations/starting-workflows","title":"Starting Workflows","summary":"Trigger workflows and track their execution using the start() function.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-api/get-run"},{"site":"workflow","path":"/docs/api-reference/workflow-api/start"},{"site":"workflow","path":"/docs/api-reference/workflow/get-writable"},{"site":"workflow","path":"/docs/foundations/errors-and-retries"},{"site":"workflow","path":"/docs/foundations/serialization"}],"inbound":[{"site":"vercel-docs","path":"/docs/workflows/pricing"},{"site":"workflow","path":"/docs/ai"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/queue"}],"requires":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-api/start","distance":0.1972},{"site":"workflow","path":"/docs/getting-started/express","distance":0.2038},{"site":"workflow","path":"/docs/getting-started/next","distance":0.2072},{"site":"workflow","path":"/docs/getting-started/tanstack-start","distance":0.2157},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","distance":0.2198}],"related":[{"site":"vercel-docs","path":"/docs/workflows/pricing","via":"inbound"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","via":"requires"},{"site":"workflow","path":"/docs/getting-started/express","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/next","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/tanstack-start","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/nestjs","via":"neighbor"}]},{"site":"workflow","path":"/docs/foundations/streaming","title":"Streaming","summary":"Stream real-time data to clients without waiting for workflow completion.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions/after"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package"},{"site":"workflow","path":"/docs/api-reference/workflow-api/get-run"},{"site":"workflow","path":"/docs/api-reference/workflow-api/start"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/streams"},{"site":"workflow","path":"/docs/api-reference/workflow/get-writable"},{"site":"workflow","path":"/docs/api-reference/workflow/sleep"},{"site":"workflow","path":"/docs/foundations/errors-and-retries"},{"site":"workflow","path":"/docs/foundations/serialization"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps"},{"site":"workflow","path":"/docs/how-it-works/event-sourcing"}],"inbound":[{"site":"vercel-docs","path":"/docs/workflows"},{"site":"workflow","path":"/docs/ai"},{"site":"workflow","path":"/docs/ai/resumable-streams"},{"site":"workflow","path":"/docs/ai/streaming-updates-from-tools"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/streams"},{"site":"workflow","path":"/docs/comparisons"},{"site":"workflow","path":"/docs/foundations/serialization"},{"site":"workflow","path":"/docs/foundations/versioning"}],"requires":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow/get-writable","distance":0.243},{"site":"workflow","path":"/docs/foundations/errors-and-retries","distance":0.2899},{"site":"vercel-kb","path":"/kb/guide/durable-web-research-agent-with-workflow-sdk","distance":0.2985},{"site":"workflow","path":"/docs/foundations/serialization","distance":0.2987},{"site":"vercel-kb","path":"/kb/guide/building-human-in-the-loop-agents-for-community-moderation-with-durable-workflows","distance":0.3016}],"related":[{"site":"vercel-docs","path":"/docs/workflows","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/durable-web-research-agent-with-workflow-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-human-in-the-loop-agents-for-community-moderation-with-durable-workflows","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/error-handling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-chat-transport","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/streaming","via":"neighbor"},{"site":"workflow","path":"/docs/ai/resumable-streams","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/versioning","via":"neighbor"},{"site":"workflow","path":"/docs/ai/chat-session-modeling","via":"neighbor"},{"site":"workflow","path":"/docs/ai","via":"inbound"}]},{"site":"workflow","path":"/docs/foundations/versioning","title":"Versioning","summary":"Keep in-flight runs stable by default, then choose explicit upgrade boundaries when you need them.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-errors/run-not-supported-error"},{"site":"workflow","path":"/docs/api-reference/workflow-observability/parse-workflow-name"},{"site":"workflow","path":"/docs/api-reference/workflow/sleep"},{"site":"workflow","path":"/docs/errors/workflow-not-registered"},{"site":"workflow","path":"/docs/foundations/errors-and-retries"},{"site":"workflow","path":"/docs/foundations/hooks"},{"site":"workflow","path":"/docs/foundations/serialization"},{"site":"workflow","path":"/docs/foundations/streaming"},{"site":"workflow","path":"/docs/observability"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-api/start"},{"site":"workflow","path":"/docs/errors/deployment-mismatch"},{"site":"workflow","path":"/docs/how-it-works/code-transform"}],"requires":[{"site":"workflow","path":"/docs/foundations/starting-workflows"}],"neighbors":[{"site":"vercel-docs","path":"/docs/workflows/concepts","distance":0.2188},{"site":"workflow","path":"/docs/getting-started/next","distance":0.2335},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","distance":0.2363},{"site":"vercel-kb","path":"/kb/guide/building-a-slack-agent-with-durable-workflows","distance":0.241},{"site":"workflow","path":"/docs/api-reference/workflow-api/start","distance":0.2441}],"related":[{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-a-slack-agent-with-durable-workflows","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/starting-workflows","via":"requires"},{"site":"workflow","path":"/docs/getting-started/next","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-api/start","via":"neighbor"},{"site":"workflow","path":"/docs/how-it-works/code-transform","via":"neighbor"}]},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","title":"Workflows and Steps","summary":"Understand the two function types that make up a workflow.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow"},{"site":"workflow","path":"/docs/api-reference/workflow-globals"},{"site":"workflow","path":"/docs/api-reference/workflow/create-webhook"},{"site":"workflow","path":"/docs/api-reference/workflow/get-step-metadata"},{"site":"workflow","path":"/docs/foundations/errors-and-retries"},{"site":"workflow","path":"/docs/foundations/serialization"},{"site":"workflow","path":"/docs/how-it-works/event-sourcing"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/building-human-in-the-loop-agents-for-community-moderation-with-durable-workflows"},{"site":"vercel-kb","path":"/kb/guide/stateful-slack-bots-with-vercel-workflow"},{"site":"workflow","path":"/docs/ai"},{"site":"workflow","path":"/docs/ai/sleep-and-delays"},{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent"},{"site":"workflow","path":"/docs/api-reference/workflow-ai/workflow-chat-transport"},{"site":"workflow","path":"/docs/api-reference/workflow-globals"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/storage"},{"site":"workflow","path":"/docs/foundations/streaming"},{"site":"workflow","path":"/docs/how-it-works/code-transform"},{"site":"workflow","path":"/docs/how-it-works/understanding-directives"}],"requires":[{"site":"workflow","path":"/docs/foundations"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow","distance":0.168},{"site":"vercel-docs","path":"/docs/workflows/concepts","distance":0.1826},{"site":"workflow","path":"/docs/foundations/serialization","distance":0.1906},{"site":"workflow","path":"/docs/getting-started/next","distance":0.1931},{"site":"workflow","path":"/docs/foundations/errors-and-retries","distance":0.1975}],"related":[{"site":"vercel-kb","path":"/kb/guide/building-human-in-the-loop-agents-for-community-moderation-with-durable-workflows","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/stateful-slack-bots-with-vercel-workflow","via":"inbound"},{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/next","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/nestjs","via":"neighbor"},{"site":"workflow","path":"/docs/how-it-works/code-transform","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/starting-workflows","via":"neighbor"},{"site":"workflow","path":"/docs/ai","via":"inbound"}]},{"site":"workflow","path":"/docs/getting-started","title":"Getting Started","summary":"Choose a framework and start building your first workflow.","outbound":[{"site":"workflow","path":"/docs/comparisons"},{"site":"workflow","path":"/docs/getting-started/astro"},{"site":"workflow","path":"/docs/getting-started/express"},{"site":"workflow","path":"/docs/getting-started/fastify"},{"site":"workflow","path":"/docs/getting-started/hono"},{"site":"workflow","path":"/docs/getting-started/next"},{"site":"workflow","path":"/docs/getting-started/nitro"},{"site":"workflow","path":"/docs/getting-started/nuxt"},{"site":"workflow","path":"/docs/getting-started/python"},{"site":"workflow","path":"/docs/getting-started/sveltekit"},{"site":"workflow","path":"/docs/getting-started/tanstack-start"},{"site":"workflow","path":"/docs/getting-started/vite"}],"inbound":[{"site":"chat-sdk","path":"/docs/approvals"},{"site":"vercel-docs","path":"/docs/workflows"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/human-in-the-loop-with-chat-sdk-and-workflow-sdk"},{"site":"vercel-kb","path":"/kb/guide/migrate-cloudflare-workflows-to-vercel-workflows"},{"site":"workflow","path":"/docs/how-it-works/code-transform"},{"site":"workflow","path":"/docs/how-it-works/encryption"},{"site":"workflow","path":"/docs/how-it-works/event-sourcing"},{"site":"workflow","path":"/docs/how-it-works/framework-integrations"},{"site":"workflow","path":"/docs/how-it-works/understanding-directives"}],"requires":[],"neighbors":[{"site":"workflow","path":"/docs/getting-started/tanstack-start","distance":0.213},{"site":"workflow","path":"/docs/getting-started/nuxt","distance":0.2284},{"site":"workflow","path":"/docs/getting-started/next","distance":0.2319},{"site":"workflow","path":"/docs/getting-started/express","distance":0.233},{"site":"workflow","path":"/docs/getting-started/sveltekit","distance":0.2373}],"related":[{"site":"chat-sdk","path":"/docs/approvals","via":"inbound"},{"site":"vercel-docs","path":"/docs/workflows","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/human-in-the-loop-with-chat-sdk-and-workflow-sdk","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/migrate-cloudflare-workflows-to-vercel-workflows","via":"inbound"},{"site":"nextjs","path":"/docs/app/getting-started/installation","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference","via":"neighbor"},{"site":"workflow","path":"/docs/foundations","via":"neighbor"},{"site":"workflow","path":"/docs/how-it-works/code-transform","via":"inbound"},{"site":"workflow","path":"/docs/how-it-works/encryption","via":"inbound"},{"site":"workflow","path":"/docs/how-it-works/event-sourcing","via":"inbound"}]},{"site":"workflow","path":"/docs/getting-started/astro","title":"Astro","summary":"Set up Workflow SDK in an Astro app.","outbound":[{"site":"workflow","path":"/docs/api-reference"},{"site":"workflow","path":"/docs/api-reference/workflow-astro"},{"site":"workflow","path":"/docs/api-reference/workflow-astro/workflow"},{"site":"workflow","path":"/docs/deploying"},{"site":"workflow","path":"/docs/errors"},{"site":"workflow","path":"/docs/errors/start-invalid-workflow-function"},{"site":"workflow","path":"/docs/foundations"},{"site":"workflow","path":"/docs/observability"}],"inbound":[{"site":"workflow","path":"/docs/getting-started"}],"requires":[{"site":"workflow","path":"/docs/getting-started"}],"neighbors":[{"site":"workflow","path":"/docs/getting-started/next","distance":0.1394},{"site":"workflow","path":"/docs/getting-started/vite","distance":0.1445},{"site":"workflow","path":"/docs/getting-started/tanstack-start","distance":0.1574},{"site":"workflow","path":"/docs/getting-started/express","distance":0.1601},{"site":"workflow","path":"/docs/getting-started/sveltekit","distance":0.1611}],"related":[{"site":"workflow","path":"/docs/getting-started/next","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/vite","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/tanstack-start","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/express","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/sveltekit","via":"neighbor"}]},{"site":"workflow","path":"/docs/getting-started/express","title":"Express","summary":"Set up Workflow SDK in an Express app.","outbound":[{"site":"workflow","path":"/docs/api-reference"},{"site":"workflow","path":"/docs/deploying"},{"site":"workflow","path":"/docs/errors"},{"site":"workflow","path":"/docs/errors/start-invalid-workflow-function"},{"site":"workflow","path":"/docs/foundations"},{"site":"workflow","path":"/docs/observability"}],"inbound":[{"site":"workflow","path":"/docs/getting-started"}],"requires":[{"site":"workflow","path":"/docs/getting-started"}],"neighbors":[{"site":"workflow","path":"/docs/getting-started/nitro","distance":0.0624},{"site":"workflow","path":"/docs/getting-started/fastify","distance":0.073},{"site":"workflow","path":"/docs/getting-started/nuxt","distance":0.1035},{"site":"workflow","path":"/docs/getting-started/hono","distance":0.1061},{"site":"workflow","path":"/docs/getting-started/next","distance":0.109}],"related":[{"site":"workflow","path":"/docs/getting-started/nitro","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/fastify","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/nuxt","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/hono","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/next","via":"neighbor"}]},{"site":"workflow","path":"/docs/getting-started/fastify","title":"Fastify","summary":"Set up Workflow SDK in a Fastify app.","outbound":[{"site":"workflow","path":"/docs/api-reference"},{"site":"workflow","path":"/docs/deploying"},{"site":"workflow","path":"/docs/errors"},{"site":"workflow","path":"/docs/errors/start-invalid-workflow-function"},{"site":"workflow","path":"/docs/foundations"},{"site":"workflow","path":"/docs/observability"}],"inbound":[{"site":"workflow","path":"/docs/getting-started"}],"requires":[{"site":"workflow","path":"/docs/getting-started"}],"neighbors":[{"site":"workflow","path":"/docs/getting-started/express","distance":0.073},{"site":"workflow","path":"/docs/getting-started/nitro","distance":0.0778},{"site":"workflow","path":"/docs/getting-started/vite","distance":0.1115},{"site":"workflow","path":"/docs/getting-started/hono","distance":0.1152},{"site":"workflow","path":"/docs/getting-started/next","distance":0.1175}],"related":[{"site":"workflow","path":"/docs/getting-started/express","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/nitro","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/vite","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/hono","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/next","via":"neighbor"}]},{"site":"workflow","path":"/docs/getting-started/hono","title":"Hono","summary":"Set up Workflow SDK in a Hono app.","outbound":[{"site":"workflow","path":"/docs/api-reference"},{"site":"workflow","path":"/docs/deploying"},{"site":"workflow","path":"/docs/errors"},{"site":"workflow","path":"/docs/errors/start-invalid-workflow-function"},{"site":"workflow","path":"/docs/foundations"},{"site":"workflow","path":"/docs/observability"}],"inbound":[{"site":"workflow","path":"/docs/getting-started"}],"requires":[{"site":"workflow","path":"/docs/getting-started"}],"neighbors":[{"site":"workflow","path":"/docs/getting-started/nitro","distance":0.0959},{"site":"workflow","path":"/docs/getting-started/express","distance":0.1061},{"site":"workflow","path":"/docs/getting-started/fastify","distance":0.1152},{"site":"workflow","path":"/docs/getting-started/next","distance":0.145},{"site":"workflow","path":"/docs/getting-started/vite","distance":0.1519}],"related":[{"site":"workflow","path":"/docs/getting-started/nitro","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/express","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/fastify","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/next","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/vite","via":"neighbor"}]},{"site":"workflow","path":"/docs/getting-started/nestjs","title":"NestJS","summary":"Set up Workflow SDK in a NestJS app.","outbound":[{"site":"workflow","path":"/docs/api-reference"},{"site":"workflow","path":"/docs/api-reference/workflow-nest"},{"site":"workflow","path":"/docs/errors"},{"site":"workflow","path":"/docs/errors/start-invalid-workflow-function"},{"site":"workflow","path":"/docs/foundations"},{"site":"workflow","path":"/docs/observability"}],"inbound":[],"requires":[{"site":"workflow","path":"/docs/getting-started"}],"neighbors":[{"site":"workflow","path":"/docs/getting-started/next","distance":0.1053},{"site":"workflow","path":"/docs/getting-started/express","distance":0.1151},{"site":"workflow","path":"/docs/getting-started/nuxt","distance":0.1167},{"site":"workflow","path":"/docs/getting-started/sveltekit","distance":0.1353},{"site":"workflow","path":"/docs/getting-started/fastify","distance":0.1396}],"related":[{"site":"workflow","path":"/docs/getting-started/next","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/express","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/nuxt","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/sveltekit","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/fastify","via":"neighbor"}]},{"site":"workflow","path":"/docs/getting-started/next","title":"Next.js","summary":"Set up Workflow SDK in a Next.js app.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"workflow","path":"/docs/api-reference"},{"site":"workflow","path":"/docs/api-reference/workflow-next"},{"site":"workflow","path":"/docs/api-reference/workflow-next/with-workflow"},{"site":"workflow","path":"/docs/deploying"},{"site":"workflow","path":"/docs/errors"},{"site":"workflow","path":"/docs/errors/start-invalid-workflow-function"},{"site":"workflow","path":"/docs/foundations"},{"site":"workflow","path":"/docs/observability"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/workflow-utilities"},{"site":"vercel-kb","path":"/kb/guide/building-human-in-the-loop-agents-for-community-moderation-with-durable-workflows"},{"site":"workflow","path":"/docs/ai"},{"site":"workflow","path":"/docs/errors/start-invalid-workflow-function"},{"site":"workflow","path":"/docs/getting-started"}],"requires":[{"site":"workflow","path":"/docs/getting-started"}],"neighbors":[{"site":"workflow","path":"/docs/getting-started/nuxt","distance":0.1008},{"site":"workflow","path":"/docs/getting-started/nestjs","distance":0.1053},{"site":"workflow","path":"/docs/getting-started/express","distance":0.109},{"site":"workflow","path":"/docs/getting-started/fastify","distance":0.1175},{"site":"workflow","path":"/docs/getting-started/sveltekit","distance":0.1184}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/workflow-utilities","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/building-human-in-the-loop-agents-for-community-moderation-with-durable-workflows","via":"inbound"},{"site":"workflow","path":"/docs/getting-started/nuxt","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/nestjs","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/express","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/fastify","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","via":"neighbor"}]},{"site":"workflow","path":"/docs/getting-started/nitro","title":"Nitro","summary":"Set up Workflow SDK in a Nitro app.","outbound":[{"site":"workflow","path":"/docs/api-reference"},{"site":"workflow","path":"/docs/deploying"},{"site":"workflow","path":"/docs/errors"},{"site":"workflow","path":"/docs/errors/start-invalid-workflow-function"},{"site":"workflow","path":"/docs/foundations"},{"site":"workflow","path":"/docs/observability"}],"inbound":[{"site":"workflow","path":"/docs/getting-started"}],"requires":[{"site":"workflow","path":"/docs/getting-started"}],"neighbors":[{"site":"workflow","path":"/docs/getting-started/express","distance":0.0624},{"site":"workflow","path":"/docs/getting-started/fastify","distance":0.0778},{"site":"workflow","path":"/docs/getting-started/hono","distance":0.0959},{"site":"workflow","path":"/docs/getting-started/vite","distance":0.0989},{"site":"workflow","path":"/docs/getting-started/nuxt","distance":0.1199}],"related":[{"site":"workflow","path":"/docs/getting-started/express","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/fastify","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/hono","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/vite","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/nuxt","via":"neighbor"}]},{"site":"workflow","path":"/docs/getting-started/nuxt","title":"Nuxt","summary":"Set up Workflow SDK in a Nuxt app.","outbound":[{"site":"workflow","path":"/docs/api-reference"},{"site":"workflow","path":"/docs/deploying"},{"site":"workflow","path":"/docs/errors"},{"site":"workflow","path":"/docs/errors/start-invalid-workflow-function"},{"site":"workflow","path":"/docs/foundations"},{"site":"workflow","path":"/docs/observability"}],"inbound":[{"site":"workflow","path":"/docs/getting-started"}],"requires":[{"site":"workflow","path":"/docs/getting-started"}],"neighbors":[{"site":"workflow","path":"/docs/getting-started/next","distance":0.1008},{"site":"workflow","path":"/docs/getting-started/express","distance":0.1035},{"site":"workflow","path":"/docs/getting-started/sveltekit","distance":0.1075},{"site":"workflow","path":"/docs/getting-started/vite","distance":0.1151},{"site":"workflow","path":"/docs/getting-started/nestjs","distance":0.1167}],"related":[{"site":"workflow","path":"/docs/getting-started/next","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/express","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/sveltekit","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/vite","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/nestjs","via":"neighbor"}]},{"site":"workflow","path":"/docs/getting-started/python","title":"Python","summary":"Set up the Workflow Python SDK in your Python application.","outbound":[{"site":"vercel-docs","path":"/docs/workflows/python"},{"site":"workflow","path":"/docs/api-reference"},{"site":"workflow","path":"/docs/errors"},{"site":"workflow","path":"/docs/foundations"}],"inbound":[{"site":"workflow","path":"/docs/getting-started"}],"requires":[{"site":"workflow","path":"/docs/getting-started"}],"neighbors":[{"site":"vercel-docs","path":"/docs/workflows/python","distance":0.0818},{"site":"vercel-docs","path":"/docs/workflows","distance":0.1468},{"site":"vercel-docs","path":"/docs/workflows/concepts","distance":0.2286},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel","distance":0.2369},{"site":"vercel-kb","path":"/kb/guide/stateful-slack-bots-with-vercel-workflow","distance":0.2406}],"related":[{"site":"vercel-docs","path":"/docs/workflows","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/stateful-slack-bots-with-vercel-workflow","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk-python","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/workflows","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/vite","via":"neighbor"},{"site":"workflow","path":"/docs/ai","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/next","via":"neighbor"}]},{"site":"workflow","path":"/docs/getting-started/sveltekit","title":"SvelteKit","summary":"Set up Workflow SDK in a SvelteKit app.","outbound":[{"site":"workflow","path":"/docs/api-reference"},{"site":"workflow","path":"/docs/api-reference/workflow-sveltekit"},{"site":"workflow","path":"/docs/api-reference/workflow-sveltekit/workflow-plugin"},{"site":"workflow","path":"/docs/deploying"},{"site":"workflow","path":"/docs/errors"},{"site":"workflow","path":"/docs/errors/start-invalid-workflow-function"},{"site":"workflow","path":"/docs/foundations"},{"site":"workflow","path":"/docs/observability"}],"inbound":[{"site":"workflow","path":"/docs/getting-started"}],"requires":[{"site":"workflow","path":"/docs/getting-started"}],"neighbors":[{"site":"workflow","path":"/docs/getting-started/vite","distance":0.0815},{"site":"workflow","path":"/docs/getting-started/nuxt","distance":0.1075},{"site":"workflow","path":"/docs/getting-started/next","distance":0.1184},{"site":"workflow","path":"/docs/getting-started/tanstack-start","distance":0.1215},{"site":"workflow","path":"/docs/getting-started/express","distance":0.1244}],"related":[{"site":"workflow","path":"/docs/getting-started/vite","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/nuxt","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/next","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/tanstack-start","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/express","via":"neighbor"}]},{"site":"workflow","path":"/docs/getting-started/tanstack-start","title":"TanStack Start","summary":"Set up Workflow SDK in a TanStack Start app.","outbound":[{"site":"workflow","path":"/docs/api-reference"},{"site":"workflow","path":"/docs/deploying"},{"site":"workflow","path":"/docs/errors"},{"site":"workflow","path":"/docs/foundations"},{"site":"workflow","path":"/docs/observability"}],"inbound":[{"site":"workflow","path":"/docs/getting-started"}],"requires":[{"site":"workflow","path":"/docs/getting-started"}],"neighbors":[{"site":"workflow","path":"/docs/getting-started/vite","distance":0.1041},{"site":"workflow","path":"/docs/getting-started/sveltekit","distance":0.1215},{"site":"workflow","path":"/docs/getting-started/nuxt","distance":0.1351},{"site":"workflow","path":"/docs/getting-started/express","distance":0.1372},{"site":"workflow","path":"/docs/getting-started/next","distance":0.1378}],"related":[{"site":"workflow","path":"/docs/getting-started/vite","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/sveltekit","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/nuxt","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/express","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/next","via":"neighbor"}]},{"site":"workflow","path":"/docs/getting-started/vite","title":"Vite","summary":"Set up Workflow SDK in a Vite app.","outbound":[{"site":"workflow","path":"/docs/api-reference"},{"site":"workflow","path":"/docs/deploying"},{"site":"workflow","path":"/docs/errors"},{"site":"workflow","path":"/docs/errors/start-invalid-workflow-function"},{"site":"workflow","path":"/docs/foundations"},{"site":"workflow","path":"/docs/observability"}],"inbound":[{"site":"workflow","path":"/docs/getting-started"},{"site":"workflow","path":"/docs/testing"}],"requires":[{"site":"workflow","path":"/docs/getting-started"}],"neighbors":[{"site":"workflow","path":"/docs/getting-started/sveltekit","distance":0.0815},{"site":"workflow","path":"/docs/getting-started/nitro","distance":0.0989},{"site":"workflow","path":"/docs/getting-started/tanstack-start","distance":0.1041},{"site":"workflow","path":"/docs/getting-started/express","distance":0.1098},{"site":"workflow","path":"/docs/getting-started/fastify","distance":0.1115}],"related":[{"site":"workflow","path":"/docs/getting-started/sveltekit","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/nitro","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/tanstack-start","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/express","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/fastify","via":"neighbor"}]},{"site":"workflow","path":"/docs/how-it-works/code-transform","title":"How the Directives Work","summary":"Learn how the compiler transforms directive-annotated code into three execution modes.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-api/start"},{"site":"workflow","path":"/docs/api-reference/workflow/create-webhook"},{"site":"workflow","path":"/docs/foundations/versioning"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps"},{"site":"workflow","path":"/docs/getting-started"},{"site":"workflow","path":"/docs/how-it-works/event-sourcing"},{"site":"workflow","path":"/docs/how-it-works/framework-integrations"}],"inbound":[{"site":"workflow","path":"/docs/how-it-works/framework-integrations"},{"site":"workflow","path":"/docs/how-it-works/understanding-directives"}],"requires":[{"site":"workflow","path":"/docs/how-it-works/understanding-directives"}],"neighbors":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps","distance":0.202},{"site":"workflow","path":"/docs/how-it-works/framework-integrations","distance":0.2155},{"site":"workflow","path":"/docs/getting-started/next","distance":0.2291},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-aws-step-functions","distance":0.2391},{"site":"workflow","path":"/docs/api-reference/workflow","distance":0.2437}],"related":[{"site":"workflow","path":"/docs/how-it-works/understanding-directives","via":"requires"},{"site":"workflow","path":"/docs/getting-started/next","via":"neighbor"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-aws-step-functions","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/nestjs","via":"neighbor"}]},{"site":"workflow","path":"/docs/how-it-works/encryption","title":"Encryption","summary":"Understand how workflow and step data is encrypted at rest.","outbound":[{"site":"vercel-docs","path":"/docs/audit-log"},{"site":"workflow","path":"/docs/errors/runtime-decryption-failed"},{"site":"workflow","path":"/docs/getting-started"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/workflow-observability"},{"site":"workflow","path":"/docs/observability"}],"requires":[{"site":"workflow","path":"/docs/how-it-works/event-sourcing"}],"neighbors":[{"site":"workflow","path":"/docs/observability","distance":0.2815},{"site":"workflow","path":"/docs/errors/runtime-decryption-failed","distance":0.3063},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world","distance":0.327},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-cloudflare-workflows","distance":0.3282},{"site":"workflow","path":"/docs/deploying","distance":0.3565}],"related":[{"site":"workflow","path":"/docs/how-it-works/event-sourcing","via":"requires"},{"site":"vercel-docs","path":"/docs/workflows","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"workflow","path":"/docs/observability","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world","via":"neighbor"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-cloudflare-workflows","via":"neighbor"},{"site":"workflow","path":"/docs/deploying","via":"neighbor"}]},{"site":"workflow","path":"/docs/how-it-works/event-sourcing","title":"Event Sourcing","summary":"Understand the event log that powers workflow replay and debugging.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow/create-hook"},{"site":"workflow","path":"/docs/api-reference/workflow/create-webhook"},{"site":"workflow","path":"/docs/api-reference/workflow/sleep"},{"site":"workflow","path":"/docs/errors/corrupted-event-log"},{"site":"workflow","path":"/docs/errors/hook-conflict"},{"site":"workflow","path":"/docs/errors/replay-divergence"},{"site":"workflow","path":"/docs/foundations/errors-and-retries"},{"site":"workflow","path":"/docs/foundations/hooks"},{"site":"workflow","path":"/docs/getting-started"}],"inbound":[{"site":"vercel-docs","path":"/docs/workflows/pricing"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/storage"},{"site":"workflow","path":"/docs/foundations/streaming"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps"},{"site":"workflow","path":"/docs/how-it-works/code-transform"},{"site":"workflow","path":"/docs/how-it-works/understanding-directives"},{"site":"workflow","path":"/docs/observability"}],"requires":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/storage","distance":0.2533},{"site":"workflow","path":"/docs/foundations/idempotency","distance":0.32},{"site":"workflow","path":"/docs/foundations/hooks","distance":0.3272},{"site":"workflow","path":"/docs/how-it-works/code-transform","distance":0.3356},{"site":"workflow","path":"/docs/foundations/versioning","distance":0.3411}],"related":[{"site":"vercel-docs","path":"/docs/workflows/pricing","via":"inbound"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","via":"requires"},{"site":"eve","path":"/docs/guides/hooks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"eve","path":"/docs/concepts/execution-model-and-durability","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-runtime/world/storage","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/idempotency","via":"neighbor"},{"site":"workflow","path":"/docs/how-it-works/code-transform","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/versioning","via":"neighbor"}]},{"site":"workflow","path":"/docs/how-it-works/framework-integrations","title":"Framework Integrations","summary":"Build a custom framework integration using the Workflow SDK compiler and runtime.","outbound":[{"site":"vercel-docs","path":"/docs/queues"},{"site":"vercel-docs","path":"/docs/queues/concepts"},{"site":"workflow","path":"/docs/api-reference/workflow/create-webhook"},{"site":"workflow","path":"/docs/getting-started"},{"site":"workflow","path":"/docs/how-it-works/code-transform"}],"inbound":[{"site":"workflow","path":"/docs/how-it-works/code-transform"}],"requires":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps"}],"neighbors":[{"site":"workflow","path":"/docs/getting-started/next","distance":0.2006},{"site":"workflow","path":"/docs/testing","distance":0.2076},{"site":"workflow","path":"/docs/how-it-works/code-transform","distance":0.2155},{"site":"workflow","path":"/docs/getting-started/nestjs","distance":0.2334},{"site":"workflow","path":"/docs/getting-started/sveltekit","distance":0.2417}],"related":[{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","via":"requires"},{"site":"workflow","path":"/docs/getting-started/next","via":"neighbor"},{"site":"workflow","path":"/docs/testing","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/nestjs","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/sveltekit","via":"neighbor"}]},{"site":"workflow","path":"/docs/how-it-works/understanding-directives","title":"Understanding Directives","summary":"Explore the design decisions behind \"use workflow\" and \"use step\" directives.","outbound":[{"site":"workflow","path":"/docs/errors/node-js-module-in-workflow"},{"site":"workflow","path":"/docs/foundations/errors-and-retries"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps"},{"site":"workflow","path":"/docs/getting-started"},{"site":"workflow","path":"/docs/how-it-works/code-transform"},{"site":"workflow","path":"/docs/how-it-works/event-sourcing"}],"inbound":[],"requires":[{"site":"workflow","path":"/docs/foundations/workflows-and-steps"}],"neighbors":[{"site":"workflow","path":"/docs/how-it-works/code-transform","distance":0.2702},{"site":"workflow","path":"/docs/foundations/serialization","distance":0.295},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","distance":0.3009},{"site":"vercel-kb","path":"/kb/guide/building-a-slack-agent-with-durable-workflows","distance":0.3281},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-aws-step-functions","distance":0.3289}],"related":[{"site":"vercel-kb","path":"/kb/guide/building-a-slack-agent-with-durable-workflows","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/workflow-utilities","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/serialization","via":"neighbor"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-aws-step-functions","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/versioning","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/streaming","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-next/with-workflow","via":"neighbor"}]},{"site":"workflow","path":"/docs/internal","title":"Internal","summary":"Preview-only page for internal tools, draft changelogs, and testing utilities.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/prototyping","distance":0.4047},{"site":"vercel-docs","path":"/docs/agent-resources","distance":0.4051},{"site":"v0","path":"/docs/versions","distance":0.4073},{"site":"vercel-kb","path":"/kb/guide/make-your-documentation-readable-by-ai-agents","distance":0.4086},{"site":"turborepo","path":"/docs/core-concepts/internal-packages","distance":0.4137}],"related":[{"site":"v0","path":"/docs/prototyping","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources","via":"neighbor"},{"site":"v0","path":"/docs/versions","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/make-your-documentation-readable-by-ai-agents","via":"neighbor"},{"site":"turborepo","path":"/docs/core-concepts/internal-packages","via":"neighbor"},{"site":"nextjs","path":"/docs/community/contribution-guide","via":"neighbor"},{"site":"v0","path":"/docs/text-prompting","via":"neighbor"},{"site":"chat-sdk","path":"/docs/contributing/documenting","via":"neighbor"},{"site":"v0","path":"/docs/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/markdown-access","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/create","via":"neighbor"}]},{"site":"workflow","path":"/docs/observability","title":"Observability","summary":"Inspect and debug workflow runs using the CLI and Web UI.","outbound":[{"site":"vercel-docs","path":"/docs/cli/project-linking"},{"site":"workflow","path":"/docs/deploying"},{"site":"workflow","path":"/docs/how-it-works/encryption"},{"site":"workflow","path":"/docs/how-it-works/event-sourcing"}],"inbound":[{"site":"workflow","path":"/docs/ai"},{"site":"workflow","path":"/docs/deploying"},{"site":"workflow","path":"/docs/errors/step-executed-multiple-times"},{"site":"workflow","path":"/docs/foundations/versioning"},{"site":"workflow","path":"/docs/getting-started/astro"},{"site":"workflow","path":"/docs/getting-started/express"},{"site":"workflow","path":"/docs/getting-started/fastify"},{"site":"workflow","path":"/docs/getting-started/hono"},{"site":"workflow","path":"/docs/getting-started/nestjs"},{"site":"workflow","path":"/docs/getting-started/next"},{"site":"workflow","path":"/docs/getting-started/nitro"},{"site":"workflow","path":"/docs/getting-started/nuxt"},{"site":"workflow","path":"/docs/getting-started/sveltekit"},{"site":"workflow","path":"/docs/getting-started/tanstack-start"},{"site":"workflow","path":"/docs/getting-started/vite"},{"site":"workflow","path":"/docs/testing"}],"requires":[{"site":"workflow","path":"/docs/foundations"}],"neighbors":[{"site":"workflow","path":"/docs/deploying","distance":0.2202},{"site":"vercel-docs","path":"/docs/workflows","distance":0.2323},{"site":"vercel-docs","path":"/docs/agent-resources/workflows","distance":0.2526},{"site":"workflow","path":"/docs/getting-started/next","distance":0.266},{"site":"workflow","path":"/docs/how-it-works/encryption","distance":0.2815}],"related":[{"site":"vercel-docs","path":"/docs/workflows","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/workflows","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability","via":"neighbor"},{"site":"workflow","path":"/docs/foundations","via":"requires"},{"site":"workflow","path":"/docs/getting-started/next","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-observability","via":"neighbor"},{"site":"workflow","path":"/docs/testing","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference","via":"neighbor"}]},{"site":"workflow","path":"/docs/testing","title":"Testing","summary":"Unit test individual steps and integration test entire workflows using Vitest.","outbound":[{"site":"workflow","path":"/docs/api-reference/vitest"},{"site":"workflow","path":"/docs/api-reference/workflow-api"},{"site":"workflow","path":"/docs/api-reference/workflow-api/get-run"},{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-hook"},{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-webhook"},{"site":"workflow","path":"/docs/api-reference/workflow-api/start"},{"site":"workflow","path":"/docs/api-reference/workflow/sleep"},{"site":"workflow","path":"/docs/foundations/hooks"},{"site":"workflow","path":"/docs/getting-started/vite"},{"site":"workflow","path":"/docs/observability"},{"site":"workflow","path":"/docs/testing/server-based"}],"inbound":[{"site":"workflow","path":"/docs/api-reference/vitest"},{"site":"workflow","path":"/docs/testing/server-based"}],"requires":[],"neighbors":[{"site":"workflow","path":"/docs/api-reference/vitest","distance":0.1664},{"site":"workflow","path":"/docs/testing/server-based","distance":0.1688},{"site":"workflow","path":"/docs/getting-started/vite","distance":0.1754},{"site":"workflow","path":"/docs/how-it-works/framework-integrations","distance":0.2076},{"site":"workflow","path":"/docs/getting-started/sveltekit","distance":0.2203}],"related":[{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"workflow","path":"/docs/how-it-works/framework-integrations","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/sveltekit","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/tanstack-start","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/next","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/astro","via":"neighbor"}]},{"site":"workflow","path":"/docs/testing/server-based","title":"Server-Based Testing","summary":"Integration test workflows against a running server when you need to test the full HTTP layer.","outbound":[{"site":"workflow","path":"/docs/api-reference/workflow-api/get-run"},{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-hook"},{"site":"workflow","path":"/docs/api-reference/workflow-api/resume-webhook"},{"site":"workflow","path":"/docs/api-reference/workflow-api/start"},{"site":"workflow","path":"/docs/testing"}],"inbound":[{"site":"workflow","path":"/docs/testing"}],"requires":[{"site":"workflow","path":"/docs/testing"}],"neighbors":[{"site":"workflow","path":"/docs/testing","distance":0.1688},{"site":"workflow","path":"/docs/api-reference/vitest","distance":0.2468},{"site":"workflow","path":"/docs/getting-started/vite","distance":0.2758},{"site":"workflow","path":"/docs/how-it-works/framework-integrations","distance":0.2852},{"site":"nextjs","path":"/docs/app/guides/testing/vitest","distance":0.305}],"related":[{"site":"nextjs","path":"/docs/app/guides/testing/vitest","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/testing/vitest","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/testing","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/vitest","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/vitest","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/vite","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-vite/workflow","via":"neighbor"}]}]}
